Copyright: Copyright ® 1991 Ralf Brown and Wim Morrison.


Index

Version

Alphabetical Index

Numerical Index

Table Formats


Alphabetical Index
Alpbabetical Index

 This item is not yet available


Numerical Index

INTs 00-0F	INTs 80-8F
INTs 10-1F	INTs 90-9F
INTs 20-2F	INTs A0-AF
INTs 30-4F	INTs B0-BF
INTs 40-4F	INTs C0-CF
INTs 50-5F	INTs D0-DF
INTs 60-6F	INTs E0-EF
INTs 70-7F	INTs F0-FF


Version
File Version

Interrupt List	Release 33	Last change 1/3/93
This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
---------------------------------------------
Please redistribute the following files unmodified as a group, in a pair of
archives named INTER33A and INTER33B (preferably the original authenticated
PKZIP archives):
INTERRUP.1ST	the read-me file, containing credits, availability info
INTERRUP.A	INT 00 through INT 14	\
INTERRUP.B	INT 15 through INT 1F	 \   total 1037 pages at
INTERRUP.C	INT 20 thru INT 21/7F	  \  60 lines per page,
INTERRUP.D	INT 21/80 through INT 2E   \ 1110 with INTPRINT -p
INTERRUP.E	INT 2F through INT 2F/BF   / (4500 entries)
INTERRUP.F	INT 2F/C0 through INT 4F  /
INTERRUP.G	INT 50 through INT 67	 /
INTERRUP.H	INT 68 through INT FF	/
INTERRUP.PRI	a brief introduction to interrupts
INTPRINT.COM	a simple formatter that also generates a list summary
INTPRINT.DOC	instructions for INTPRINT
GLOSSARY.LST	a glossary of terms, abbreviations, and acronyms
MEMORY.LST	format of the BIOS data area
The following files should be distributed in an archive called INTER33C:
INT.COM	invoke interrupts from commandline
INT2GUID.*	convert list into TurboPower GUIDE or POPHELP database
INT2HLP.BAT	Perl script to convert list into QuickHelp database
INT2QH.*	program to convert list into QuickHelp database
INTHELP.*	convert list into TurboPower GUIDE database
INTLIST.E	Epsilon extension for handling list
INTPRINT.C	source code for INTPRINT
---------------------------------------------
If you notice any mistakes or omissions, please let me know!  It is only with
YOUR help that the list can continue to grow at the current rate.  Please send
all changes to me rather than distributing a modified version of the list.

Please read the file INTERRUP.1ST before asking me any questions.  You may find
that they have already been addressed.

 Ralf Brown

ARPA: ralf@cs.cmu.edu
UUCP: ucbvax,harvard!cs.cmu.edu!ralf
BIT:  ralf%cs.cmu.edu@carnegie
FIDO: Ralf Brown 1:129/26.1
or post a message to me in the DR_DEBUG echo (I probably won't see it
unless you address it to me)
CIS:  >INTERNET:ralf@cs.cmu.edu

I reply to all e-mail submissions and inquiries, but some of my replies bounce
because of bad return paths.  If you don't get a response from me within a
reasonable period of time, send it again with a better return path (starting at
harvard or ucbvax for UUCP, from the ARPA Internet for others).
---------------------------------------------
See INTERRUP.1ST for the key to system abbreviations and a list of the
trademarks mentioned here.
---------------------------------------------
DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".	 I verify the information
contained in this list to the best of my ability, but I cannot be held
responsible for any problems caused by use or misuse of the information,
especially for those functions not officially  documented.  If it is marked
"internal" or undocumented, you should check it carefully to make sure it
works the same way in your version of the software (and please let me know
whether or not it works the same way).	Information marked with "???" is
known to be incomplete or guesswork.
---------------------------------------------
The use of -> instead of = signifies that the indicated register or register
pair contains a pointer to the specified item, rather than the item itself.
One or more letters may follow the interrupt number; they have the following
meanings:  U - undocumented function, u - partially documented function,
P - available only in protected mode, R - available only in real or V86 mode


INTs 00-0F

INT 00  INT 00 - CPU-generated - DIVIDE ERROR

INT 01

INT 02  INT 02 - external hardware - NON-MASKABLE INTERRUPT

INT 03

INT 04  INT 04 - CPU-generated - INTO DETECTED OVERFLOW

INT 05

INT 06

INT 07  INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE

INT 08

INT 09

INT 0A

INT 0B

INT 0C

INT 0D

INT 0E

INT 0F


INTs 10-1F

INT 10

INT 11

INT 12

INT 13

INT 14

INT 15

INT 16

INT 17

INT 18

INT 19  INT 19 - SYSTEM - BOOTSTRAP LOADER

INT 1A

INT 1B  INT 1B C - KEYBOARD - CONTROL-BREAK HANDLER

INT 1C  INT 1C - TIME - SYSTEM TIMER TICK

INT 1D  INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES

INT 1E  INT 1E - SYSTEM DATA - DISKETTE PARAMETERS

INT 1F  INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT


INTs 20-2F

INT 20

INT 21

INT 22  INT 22 - DOS 1+ - PROGRAM TERMINATION ADDRESS

INT 23  INT 23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER

INT 24  INT 24 - DOS 1+ - CRITICAL ERROR HANDLER

INT 25

INT 26

INT 27  INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT

INT 28  INT 28 - DOS 2+ - DOS IDLE INTERRUPT

INT 29  INT 29 C - DOS 2+ - FAST CONSOLE OUTPUT

INT 2A

INT 2B  INT 2B - DOS 2+ - RESERVED

INT 2C

INT 2D

INT 2E

INT 2F


INTs 30-3F

INT 30  INT 30 - (NOT A VECTOR!) - DOS 1+ - FAR JMP instruction for CP/M-style calls

INT 31

INT 32  INT 32 - VIRUS - reportedly used by "Tiny" Viruses

INT 33

INT 34  INT 34 - FLOATING POINT EMULATION - OPCODE D8h

INT 35  INT 35 - FLOATING POINT EMULATION - OPCODE D9h

INT 36  INT 36 - FLOATING POINT EMULATION - OPCODE DAh

INT 37  INT 37 - FLOATING POINT EMULATION - OPCODE DBh

INT 38

INT 39  INT 39 - FLOATING POINT EMULATION - OPCODE DDh

INT 3A  INT 3A - FLOATING POINT EMULATION - OPCODE DEh

INT 3B  INT 3B - FLOATING POINT EMULATION - OPCODE DFh

INT 3C  INT 3C - FLOATING POINT EMULATION - INSTRUCTIONS WITH SEGMENT OVERRIDE

INT 3D  INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT

INT 3E  INT 3E - FLOATING POINT EMULATION - Borland LANGUAGES "SHORTCUT" CALL

INT 3F


INTs 40-4F

INT 40

INT 41

INT 42

INT 43

INT 44

INT 45

INT 46

INT 47

INT 48

INT 49

INT 4A

INT 4B

INT 4C

INT 4D  INT 4D - Z100 - Slave 8259 - S100 vectored line 5

INT 4E

INT 4F


INTs 50-5F

INT 50

INT 51

INT 53  INT 53 - ??? - API

INT 54

INT 58

INT 59

INT 5A

INT 5B

INT 5C

INT 5D

INT 5E

INT 5F


INTs 60-6F

INT 60

INT 61

INT 62

INT 63

INT 64

INT 65

INT 66

INT 67

INT 68

INT 69

INT 6A

INT 6B

INT 6C

INT 6D

INT 6E  INT 6E - DECnet DOS - DECnet NETWORK PROCESS API

INT 6F


INTs 70-7F

INT 70

INT 71  INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS

INT 72  INT 72 - IRQ10 - RESERVED

INT 73  INT 73 - IRQ11 - RESERVED

INT 74  INT 74 - IRQ12 - POINTING DEVICE (PS)

INT 75  INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)

INT 76  INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later)

INT 77

INT 78

INT 79

INT 7A

INT 7B

INT 7C

INT 7D

INT 7E

INT 7F


INTs 80-8F

INT 80

INT 81

INT 82

INT 83  INT 83 - reserved for BASIC

INT 84  INT 84 - reserved for BASIC

INT 85  INT 85 - reserved for BASIC

INT 86

INT 87

INT 88

INT 89  INT 89 - IBM ROM BASIC - used while in interpreter

INT 8A

INT 8B

INT 8C

INT 8D  INT 8D - IBM ROM BASIC - used while in interpreter

INT 8E  INT 8E - IBM ROM BASIC - used while in interpreter

INT 8F  INT 8F - IBM ROM BASIC - used while in interpreter


INTs 90-9F

INT 90

INT 91

INT 92

INT 93

INT 94  INT 94 - IBM ROM BASIC - used while in interpreter

INT 95

INT 96  INT 96 - IBM ROM BASIC - used while in interpreter

INT 97  INT 97 - IBM ROM BASIC - used while in interpreter

INT 98  INT 98 - IBM ROM BASIC - used while in interpreter

INT 99  INT 99 - IBM ROM BASIC - used while in interpreter

INT 9A  INT 9A - IBM ROM BASIC - used while in interpreter

INT 9B  INT 9B - IBM ROM BASIC - used while in interpreter

INT 9C  INT 9C - IBM ROM BASIC - used while in interpreter

INT 9D  INT 9D - IBM ROM BASIC - used while in interpreter

INT 9E  INT 9E - IBM ROM BASIC - used while in interpreter

INT 9F  INT 9F - IBM ROM BASIC - used while in interpreter


INTs A0-AF

INT A0

INT A1  INT A1 - IBM ROM BASIC - used while in interpreter

INT A2  INT A2 - IBM ROM BASIC - used while in interpreter

INT A3  INT A3 - IBM ROM BASIC - used while in interpreter

INT A4

INT A5  INT A5 - IBM ROM BASIC - used while in interpreter

INT A6  INT A6 - IBM ROM BASIC - used while in interpreter

INT A7  INT A7 - IBM ROM BASIC - used while in interpreter

INT A8  INT A8 - IBM ROM BASIC - used while in interpreter

INT A9  INT A9 - IBM ROM BASIC - used while in interpreter

INT AA  INT AA - IBM ROM BASIC - used while in interpreter

INT AB  INT AB - IBM ROM BASIC - used while in interpreter

INT AC  INT AC - IBM ROM BASIC - used while in interpreter

INT AD  INT AD - IBM ROM BASIC - used while in interpreter

INT AE  INT AE - IBM ROM BASIC - used while in interpreter

INT AF  INT AF - IBM ROM BASIC - used while in interpreter


INTs B0-BF

INT B0  INT B0 - IBM ROM BASIC - used while in interpreter

INT B1  INT B1 - IBM ROM BASIC - used while in interpreter

INT B2  INT B2 - IBM ROM BASIC - used while in interpreter

INT B3

INT B4

INT B5

INT B6  INT B6 - IBM ROM BASIC - used while in interpreter

INT B7  INT B7 - IBM ROM BASIC - used while in interpreter

INT B8  INT B8 - IBM ROM BASIC - used while in interpreter

INT B9  INT B9 - IBM ROM BASIC - used while in interpreter

INT BA  INT BA - IBM ROM BASIC - used while in interpreter

INT BB  INT BB - IBM ROM BASIC - used while in interpreter

INT BC  INT BC - IBM ROM BASIC - used while in interpreter

INT BD  INT BD - IBM ROM BASIC - used while in interpreter

INT BE

INT BF  INT BF - IBM ROM BASIC - used while in interpreter


INTs C0-CF

INT C0  INT C0 - IBM ROM BASIC - used while in interpreter

INT C1  INT C1 - IBM ROM BASIC - used while in interpreter

INT C2  INT C2 - IBM ROM BASIC - used while in interpreter

INT C3  INT C3 - IBM ROM BASIC - used while in interpreter

INT C4  INT C4 - IBM ROM BASIC - used while in interpreter

INT C5  INT C5 - IBM ROM BASIC - used while in interpreter

INT C6

INT C7

INT C8

INT C9

INT CA

INT CB

INT CC

INT CD

INT CE

INT CF


INTs D0-DF

INT D0

INT D1

INT D2

INT D3

INT D4

INT D5

INT D6

INT D7

INT D8

INT D9

INT DA

INT DB

INT DC

INT DD

INT DE

INT DF


INTs E0-EF

INT E0

INT E1

INT E2

INT E3  INT E3 - IBM ROM BASIC - used while in interpreter

INT E4

INT E5  INT E5 - IBM ROM BASIC - used while in interpreter

INT E6  INT E6 - IBM ROM BASIC - used while in interpreter

INT E7  INT E7 - IBM ROM BASIC - used while in interpreter

INT E8  INT E8 - IBM ROM BASIC - used while in interpreter

INT E9  INT E9 - IBM ROM BASIC - used while in interpreter

INT EA  INT EA - IBM ROM BASIC - used while in interpreter

INT EB  INT EB - IBM ROM BASIC - used while in interpreter

INT EC

INT ED  INT ED - IBM ROM BASIC - used while in interpreter

INT EE  INT EE - IBM ROM BASIC - used while in interpreter

INT EF


INTs F0-FF

INT F0  INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR

INT F1

INT F2

INT F3

INT F4

INT F5

INT F6

INT F7

INT F8

INT F9

INT FA

INT FB

INT FC

INT FD

INT FE

INT FF


Alphabetic - 'A'
Alphabetical Index - 'A'

AccessDOS

Acorn BBC Master 512

Acorn BBS Master 512

Ad Lib SOUND.COM

AD-DOS

Adaptec and OMTI controllers

Adaptec controllers

ADP-60 IDE adapter

ADP-60 IDE controller

Advanced Power Management Spec

Advanced Power Management Specification

Advanced SCSI Programming Interface (ASPI)

AI Architects

Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)

Alloy ANSK, NTNX (Slave)

Alloy ANSK, NTNX, MW386

Alloy MW386

Alloy MW386 v1.x only

Alloy MW386 v2+

Alloy NetWare Support Kit (ANSK) v2.2+

Alloy NTNX

Alloy NTNX (Host)

Alloy NTNX (Host), MW386

Alloy NTNX (Slave)

Alloy NTNX (Slave), MW386

Alloy NTNX, MW386

Alloy NTNX,MW386

ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.5]

Amstrad PC1512

ANARKEY.COM

ANARKEY.COM v2+

ANARKEY.COM v3+

ANARKEY.COM v4.0

Andy C. McGuire SPEECH.COM/SAY.COM

APL*PLUS/PC

APPC/PC

APPEND

AQUEDUCT, PIPELINE

ARTICOM

ASAP v1.0

AT&T 6300

AT&T Starlan Extended NetBIOS (var length names)

AT&T Starlan Extended NetBIOS (variable length names)

AT.COM version 8/26/87

AT/XT286/PS50+

ATALK.SYS

Atari Portfolio

ATI VGA Wonder

Attachmate Extra

AutoBraille v1.1A

AutoCAD 10 ADI for Plotters

AutoCAD ADI INTERFACE

AutoCAD Device Interface

AUTOPARK.COM

AVATAR Serial Dispatcher

AVATAR.SYS

AVATAR.SYS v0.11

AVATAR.SYS v0.11+

AX (Japanese AT) PRINTER


Alphabetic - 'B'
Alphabetical Index - 'B'

BACK&FORTH (before v1.62) API

Back&Forth v1.62+

Banyan VINES

Banyan VINES 2.1+

BANYAN VINES v4+

Banyan VINES, 3com

BASIC

BASICA.COM, GWBASIC, compiled BASIC

Biologic HRAMDEV.SYS

BIOS

BIOS Window Extension v1.1

BitFax Scheduler

BMB Compuscience Canada Utilities Interface

BNU FOSSIL

Borland C++ 2.0 DPMILOAD.EXE

Borland C++ 3.0 DPMILOAD.EXE

Borland C++ DPMILOAD.EXE

BORLAND TURBO LIGHTNING

Brian Antoine Seagate ST-01 SCSI.SYS

Btrieve API (single user)

Btrieve Multi-User


Alphabetic - 'C'
Alphabetical Index - 'C'

Canon IX-30F Image Scanner SI3.SYS

Canon IXHND2 Scanner Interface

CARBON COPY PLUS v5.0

CASSETTE

CBIS POWERLAN

CD-ROM

CD-ROM device driver

CD-ROM v2.00+

CD-ROM v2.10+

CED (Command EDitor)

CiriSOFT Spanish University of Valladolid TSR's Interface

Cluster adapter BIOS entry address

Columbia Data Products Standard Device Level Protocol (SDLP) 1.6

Common Access Method SCSI interface (draft revision 1.9)

Common Access Method SCSI interface rev 2.3

Communicating Applications Spec v1.2+

Communicating Applications Specification

COMMUNICATIONS FOSSIL

Compaq 386

Compaq 80286s

Compaq SLT/286

Compaq SLT/286 or Portable 386

Compaq Systempro

Comwave Microfax Specification

ConcCP/M,DR Multiuser DOS

Concurrent DOS v3.2+

CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR

Couriers LAN E-Mail

Couriers LAN E-Mail OPERATOR.EXE

COURIERS.COM

CP/M-86, Concurrent CP/M, DR Multiuser DOS

CPU-generated

CPU-generated (80186+)

CPU-generated (80286+)

CPU-generated (80286,80386)

CPU-generated (80386+ native mode)

CPU-generated (80386+)

CPU-generated (80486+)

Cswitch

CTask 2.0+

CtrlAlt Associates EGAPAL.COM v1.00

CtrlAlt Associates STACKEY.COM v3.00

CtrlAlt Associates VGAPAL.COM v1.00

CUCKOO.COM


Alphabetic - 'D'
Alphabetical Index - 'D'

Da Vinci eMail Dispatcher

Da Vinci eMail Dispatcher INTERFACE

Data General DG10

DECnet DOS

DECnet DOS (before 2.1)

DECnet DOS 2.1+

DECnet DOS CTERM

DECnet DOS LOCAL AREA TRANSPORT

DECnet DOS network scheduler

DESQ???

DESQview

DESQview (TopView???)

DESQview 1.x only

DESQview 2.20+

DESQview 2.50+

DESQview v2.00+

DESQview v2.00+ (TopView???)

DESQview v2.01+

DESQview v2.20+

DESQview v2.20-2.25

DESQview v2.23+

DESQview v2.23+ internal

DESQview v2.26+

DESQview v2.26+ External Dev Interface

DESQview v2.26+ External Device Interface

DESQview v2.26+ XDI

DESQview v2.31+

DESQview v2.40+

DESQview v2.42-2.52

DESQview v2.50+

DESQview v2.50+ External Dev Interface

DESQview/X

DESQview/X 1.02

DGIS

DIET v1.10+ (Overlay Mode)

Digiboard DigiCHANNEL PC/X

Digiboard DigiCHANNEL PC/X*

Digital Research DOS Plus

Direct Graphics Interface Standard (DGIS)

DISK

Disk Spool II v1.83

Disk Spool II v2.07

DISKETTE

DJ GO32.EXE 80386+ DOS extender

DJGPP GO32 DOS EXTENDER

DOS 1+

DOS 2+

DOS 2+ internal

DOS 2.25 only

DOS 2.25, Far East DOS 3.2+

DOS 2.x and 3.3+ only

DOS 2.x PRINT.COM

DOS 3+

DOS 3+ ASSIGN

DOS 3+ CRITICAL ERROR HANDLER

DOS 3+ internal

DOS 3+ PRINT.COM

DOS 3.0+

DOS 3.0+ internal

DOS 3.1+

DOS 3.1+ internal

DOS 3.1+ network

DOS 3.1+ network, Banyan VINES, LANtastic

DOS 3.1+ network, Banyan VINES, PC-NFS

DOS 3.1+ PRINT.COM

DOS 3.2 Realtime Clock update

DOS 3.2+

DOS 3.2+ internal

DOS 3.3+

DOS 3.3+ APPEND

DOS 3.3+ DISPLAY.SYS internal

DOS 3.3+ GRAFTABL.COM

DOS 3.3+ internal

DOS 3.3+ KEYB.COM

DOS 3.3+ KEYB.COM internal

DOS 3.3+ PRINT.COM

DOS 3.3, DOS 5.0 APPEND

DOS 3.31+

DOS 3.x+ internal

DOS 4 only SHARE internal

DOS 4+

DOS 4+ ANSI.SYS

DOS 4+ ANSI.SYS internal

DOS 4+ APPEND

DOS 4+ DRIVER.SYS support

DOS 4+ internal

DOS 4+ XMA2EMS.SYS extension internal

DOS 4.0

DOS 4.0 internal

DOS 4.00 GRAPHICS.COM

DOS 4.01+ GRAPHICS.COM

DOS 4.x + Microsoft Networks

DOS 4.x DISPLAY.SYS internal

DOS 4.x internal

DOS 4.x only

DOS 4.x only DISPLAY.SYS internal

DOS 4.x only internal

DOS 4.x only SHELLB.COM

DOS 5.0

DOS 5.0 DISPLAY.SYS internal

DOS 5.0 DOSSHELL

DOS 5.0 kernel

DOS 5.0 KEYB.COM

DOS EXTENDER INSTALLATION CHECK

DOS LAN Requester

DOS Protected-Mode Interface

DOS v2.11

DOS v5.0

DOS v5.0 DOSKEY

DOS v5.0 DOSSHELL TASK SWITCHER

DOS v5.0 TASK SWITCHER

DOSED.COM

DoubleDOS

DPMI 0.9+

DPMI 1.0+

DR Multiuser DOS

DR MultiUser DOS 5.0

DR-DOS 3.41+

DR-DOS 3.41+ internal

DR-DOS 5+

DR-DOS 5.0

DR-DOS 5.0 GRAFTABL

DR-DOS 5.0 internal

DR-DOS 5.0 NLSFUNC

DR-DOS 5.0+

DR-DOS 5.0+ internal

DR-DOS 6.0

DR-DOS 6.0 TaskMAX

DRIVER.SYS support

DUBLDISK.SYS v2.6


Alphabetic - 'E'
Alphabetical Index - 'E'

EASY-NET

EEMS

EGA Register Interface Library

Egberto Willies COMM-DRV

Eicon Access API (3270/5250 gateways)

EISA SYSTEM ROM

ELRES v1.0 only

ELRES v1.1

Ergo DOS extenders

ESDI FIXED DISK

European MSDOS 4.0

European MSDOS 4.0 POPUP

Everex Extended Video BIOS

Exact

Explosiv 2.00

Extended Batch Language v3.14+

EXTENDED MEMORY SPECIFICATION (XMS)

external hardware


Alphabetic - 'F'
Alphabetical Index - 'F'

F-DRIVER.SYS v1.14+

F-PROT v1.x only

FAKEY.COM

Far East DOS 3.2+

Far East MSDOS

FARTBELL.EXE

FAST!

FASTBUFF.COM

FaxBIOS interface

FGDRIVER v1.10

FIXED DISK

FlashTek X-32VM

FLASHUP.COM

FLOATING POINT EMULATION

FLOPPY

FLOPPY DISK

FLU_SHOT+ v1.83

FOSSIL

FOSSIL (Fido/Opus/Seadog Standard Interface Level)

FRIEZE v7.0+

FRIEZE v7.41+

FSBBS 2.0

FTP Packet Driver

FTP Packet Driver 1.09

FTP Packet Driver 1.09+

FTP Packet Driver 1.10+

FTP Packet Driver v1.10+

FTP Software NDIS-Packet Driver adapter

FTP Software PC/TCP

Future Domain SCSI BIOS

Future Domain SCSI CONTROLLER

Futurus Team


Alphabetic - 'G'
Alphabetical Index - 'G'

Gammafax DOS Dispatcher INTERFACE

GEM

Genius MOUSE

Genius Mouse 9.06

GOLD.COM

Greg Shenaut ASPITAPE.SYS

GRIDLOC.EXE

GSS Computer Graphics Interface (GSS*CGI)


Alphabetic - 'H'
Alphabetical Index - 'H'

Halo88

HARD DISK

HDILOAD.EXE

HEART.COM

HIGHUMM.SYS v1.17+

HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)

HP 95LX

HP 95LX GRAPHICS PRIMITIVES

HP 95LX System Manager

HP ES-12 EXTENDED BIOS

HP Vectra

HyperDisk v4.01+

HyperPAD v2.2

HyperWare programs


Alphabetic - 'I'
Alphabetical Index - 'I'

IBM 3270 Workstation Program API

IBM 3270-PC High Level Language API

IBM 802.2 INTERFACE (LLC)

IBM 8516 Touch Screen Device Driver

IBM PC 3270 EMULATION PROGRAM

IBM PC3270 EMUL PROG v3

IBM PC3270 EMULATION PROG v3

IBM Personal Communications/3270

IBM REXX88PC command language

IBM ROM BASIC

IBM SCSI interface

IBM SYSTEM 36/38 WORKSTATION EMULATION

IBM TOKEN RING ADAPTER

IBM XGA

IBM/Yale EBIOS SERIAL I/O

IBMCACHE.SYS

ICCTSR 1.0

IFSFUNC.EXE (DOS 4.x only)

InnerMission v1.7+

INSET

Intel Image Processing Interface

Intel SatisFAXtion CASMGR

Interconnections Inc. TES

internal hardware

INTRSPY/CMDSPY API

IRQ0

IRQ0 relocated by DESQview

IRQ0 relocated by DoubleDOS

IRQ0 relocated by IBM 3278 emulation control program

IRQ0 relocated by OS/2 v1.x

IRQ1

IRQ1 relocated by DoubleDOS

IRQ10

IRQ10 relocated by DESQview 2.26+

IRQ11

IRQ11 relocated by DESQview 2.26+

IRQ12

IRQ12 relocated by DESQview 2.26+

IRQ13

IRQ13 relocated by DESQview 2.26+

IRQ14

IRQ14 relocated by DESQview 2.26+

IRQ15

IRQ15 relocated by DESQview 2.26+

IRQ2

IRQ2 relocated by DoubleDOS

IRQ3

IRQ3 relocated by DoubleDOS

IRQ4

IRQ4 relocated by DoubleDOS

IRQ5

IRQ5 relocated by DoubleDOS

IRQ6

IRQ6 relocated by DoubleDOS

IRQ7

IRQ7 relocated by DoubleDOS

IRQ8

IRQ8 relocated by DESQview 2.26+

IRQ9

IRQ9 relocated by DESQview 2.26+

ISOLAN Multi Protocol Software

ISR.COM v1.00


Alphabetic - 'J'
Alphabetical Index - 'J'

John W. Ratcliff (The IBM Digitized Sound Package)

Jot-It! v1.50

JPI TopSPEED Modula-2 v1


Alphabetic - 'K'
Alphabetical Index - 'K'

KEYBOARD

KEYBOARD FOSSIL

KEYBUI v2.0+

Kingswood TSR INTERFACE

Kingswood TSR Windows

Kofax KF9X00 image manipulation card interface

Kraft Mouse


Alphabetic - 'L'
Alphabetical Index - 'L'

LAN Manager 2.0 DOS Enh NETWKSTA.EXE

LAN Manager 2.0 DOS Enhanced ENCRYPT.EXE

LAN Manager 2.0 DOS Enhanced MSRV.EXE

LAN Manager 2.0 DOS Enhanced NETPOPUP.EXE

LAN Manager Enhanced DOS API

LAN Manager Enhanced DOS API local interface

LANstep

LANtastic

LANtastic Network, NetWare Lite

LANtastic v3+

LANtastic v4.0+

LANtastic v4.1+

LapLink Quick Connect v6

LASTBYTE.SYS v1.19

later PS/2 models

License Service API

LIM EMS

LIM EMS 4.0

Logitech Modula v2.0

LOGITECH MOUSE

LOGITECH MOUSE v6.10+

Lotus CD/Networker


Alphabetic - 'M'
Alphabetical Index - 'M'

MAGic v1.16+

MAGic v1.23+

MAKEY.COM

MBBIOS

MDEBUG

MDEBUG command driver

MDEBUG display driver

MDEBUG v1.70+

METZTSR.COM

MICEMM v4D

MicroHelp Stay-Res Plus

MicroHelp Stay-Res/Stay-Res Plus

Microsoft Dynamic Link Library manager

Microsoft EMM386.EXE v4.20+

Microsoft Network Transport Layer Interface

Microsoft Networks

Microsoft Profiler (PROF.COM/VPROD.386)

Microsoft TSR Specification

Microsoft Windows VITD.386 Virtual Interval Timer

Microsoft Word internal

MIN-MEM v2.11

Minix

Mouse Systems MOUSE DRIVER

Mouse Systems MOUSE DRIVER v7.01

MS MOUSE

MS MOUSE v6.26+

MS MOUSE v7.0+

MS MOUSE v7.01+

MS MOUSE v7.02+

MS MOUSE v7.04+

MS MOUSE v7.05+

MS MOUSE v8.0+

MS MOUSE v8.10+

MS Networks or NETBIOS

MS SQL Server/Sybase DBLIBRARY interface

MS WINDOWS

MS WINDOWS "WINOLDAP"

MS WINDOWS 3+

MS Windows 3.0+

MS Windows 3.0, 386MAX v6.01

MS Windows 3.0, DOS 5.0 EGA.SYS

MS Windows 3.1

MS Windows debugging kernel

MS Windows v3.0

MS WINDOWS, DPMI, various

MS WINDOWS/386 2.x

MSCDEX (MS CD-ROM Extensions)

MTEZ XpressFax CASMGR

MTEZ XpressFax Hardware TSR (CLASS2)

MultiDOS Plus

MultiDOS Plus 4.0 IODRV

MultiDOS Plus IODRV

MultiDOS Plus v4.01

MultiLink Advanced

Multiplex


Alphabetic - 'N'
Alphabetical Index - 'N'

Nanosoft, Inc. TurboNET

Nanosoft, Inc. TurboNET redirector

Nanosoft, Inc. TurboNET server

NDOS

NEC PC-9800 series

NetBIOS

NetBIOS INTERFACE

NETBIOS, LANtastic

network

Network

NETWORK

NETWORK (Microsoft)

NETWORK (Microsoft, LANtastic)

NETWORK (Microsoft,LANtastic)

Network Driver Interface Spec 2.0.1

NETWORK REDIRECTOR

NETWORK REDIRECTOR (DOS 3.x only)

NETWORK REDIRECTOR (DOS 4+)

newer PS/2; various BIOSes

NewSpace

NLSFUNC.COM

Non-dedicated NetWare 2.x File Server

NorthNet Jetstream API

NORTON GUIDES

NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP

NORTON UTILITIES 5.0+ TSRs

Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O

Novell NetWare

Novell NetWare 4.0

Novell NetWare 4.0, Alloy NTNX

Novell NetWare 4.6, Alloy NTNX

Novell NetWare Lite

Novell NetWare shell 3.01

Novell NetWare to v2.0a

Novell NetWare v3.01+ shell interface

Novell NetWare, Banyan VINES

Novell ODI Link Support Layer (LSL.COM)

NOW!

NPC NCSI EXTENDED SERIAL I/O


Alphabetic - 'O'
Alphabetical Index - 'O'

Omniview Multitasker

OPTHELP.COM

OPTIMA 1024 VGA-Sync

Oracle SQL Protected Mode Executive

OS HOOK

OS/2 compatibility box

OS/2 v2.0 Virtual DOS Machine

OS/286, OS/386

OS/386 VMM

Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM)

overwritten by CP/M jump instruction in INT 30


Alphabetic - 'P'
Alphabetical Index - 'P'

Paradise VGA internal

PARKER v2.0+

PC Cluster Disk Server Information

PC Cluster Program

PC LAN PROG REDIR.SYS internal

PC LAN PROGRAM REDIR/REDIRIFS internal

PC LAN PROGRAM REDIRIFS.EXE internal

PC LAN Program, LAN Manager, DOS LAN Requester

PC Magazine PCSpool

PC Magazine PUSHDIR.COM

PC Network RECEIVER.COM

PC Paint Plus 2.0

PC Thuis Organizer Shell

PC Tools 7 COMMUTE

PC Tools v5.1+ BACKTALK

PC Tools v5.1+ DESKTOP API

PC Tools v5.1+ PCShell API

PC Tools v5.1-5.5 PCShell API

PC Tools v5.5+ DESKTOP API

PC Tools v5.x PC-Cache

PC Tools v6.0+ DESKTOP API

PC Tools v6.0+ PCRUN API

PC Tools v6.0+ PCShell API

PC Tools v7 only CPSCHED/DESKTOP

PC Tools v7+ CPSCHED

PC Tools v7+ CPSCHED/DESKTOP

PC Tools v7+ DATAMON

PC Tools v7+ DESKTOP

PC Tools v7+ VDEFEND, VSAFE, VWATCH

PC Tools v7.0+ DATAMON

PC Tools v7.0+ VDEFEND, VSAFE, VWATCH, DATAMON

PC Tools v8+ CPTASK

PC Tools v8+ CPTASK, VSAFE

PC Tools v8+ DATAMON, DRIVEMAP, CPSCHED, CPTASK

PC Tools v8+ DESKTOP

PC Tools v8+ DRIVEMAP

PC Tools v8+ VSAFE

PC Tools v8+ VSAFE, VWATCH

PC Tools v8.0 DRIVEMAP

PC Tools v8.0+ DATAMON

PC-Cache v6+

PC-CACHE.SYS

PC-IPC API

PC-MOS/386

PC-MOS/386 v3.0

PC-NET, Alloy NTNX

PC/370 v4.1-

PC/370 v4.2

PC/TCP IPCUST.SYS

PC/TCP kernel v2.05

PC/TCP kernel v2.1

PC/TCP PREDIR.EXE

pcANYWHERE III

pcANYWHERE IV/LAN

PCjr

PCMag PCMANAGE/DCOMPRES

PCMOUSE

PCW Weather Card interface

Pdisk by Scott Garfinkle

PGS1600.DEV

Phar Lap 286|DOS Extender Lite v2.5

Phar Lap 386/DOS-Extender

Phar Lap 386/DOS-Extender VMM

Phar Lap 386/DOS-Extender, Intel Code Builder

Phar Lap DOS EXTENDERS

PharLap 286|DOS-Extender Lite v2.5

Phoenix 386 BIOS

Priam EDVR.SYS DISK PARTITIONING SOFTWARE???

Priam HARD DISK CONTROLLER???

PRINT SCREEN

PRINTER

PS/2 Model 95

PTxxx.COM


Alphabetic - 'Q'
Alphabetical Index - 'Q'

Q-PRO4

QCACHE

QEMM-386

QEMM-386 v4.23+

QPC Software PKTINT.COM

Quadtel QMAPS

Qualitas 386MAX v6.00+

Qualitas 386MAX v6.01

Qualitas Qcach v4.00

Qualitas Qcache v4.00

Quarterdeck

Quarterdeck QDPMI.SYS v1.0


Alphabetic - 'R'
Alphabetical Index - 'R'

RAID

Rational Systems DOS/16M

Rational Systems DOS/4G

Rational Systems DOS/4GW

REDVIEW

reserved for BASIC

RESERVED FOR DIP, Ltd. ROM LIBRARY

reserved for user interrupt

RESPLAY

Right Hand Man

RighTime v1.1

RM Nimbus MSDOS 3.3

Ross Wentworth's Turbo Pascal POPUP LIBRARY


Alphabetic - 'S'
Alphabetical Index - 'S'

Sangoma CCIP (CCPOP 3270 resident module) INTERFACE

Sangoma CCPOP 3270 resident module

Sangoma X.25 INTERFACE PROGRAM

SCOUT v5.4

SCRNSAV2.COM

SCROLOCK.COM

SD.COM v6.2

Seagate

SERIAL

SERIAL I/O

SERIAL I/O- Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)

SETDRVER.COM

SETDRVER.COM v2.10+

Shamrock Software EMAIL

Shamrock Software NET.24 v3.11+

SHARE

Show Partner F/X v3.6

SilverNET

SMARTDRV v4.00+

SMARTDRV.SYS

Smooth Mouse Driver, PrecisePoint

SNAP.EXE 3.2+

SNAP.EXE 3.4

Soft-ICE BACK DOOR COMMANDS

SoftCom programs

SoftLogic Data Guardian

SOLLEX SuperVGA

SoundBlaster

SoundBlaster SBFM driver

SoundBlaster speech driver

SPEECH.COM

SPEEDSCR.COM

SQL Base

SRDISK v1.30

Stacker

STACKMAN

STARLITE architecture

START CASSETTE BASIC

STSC APL*PLUS/PC

STSC APL*PLUS/PC v9.0

Super PC Kwik

Super PC Kwik/PC-Cache 5.x

SuperStor PRO 2XON.COM

SuperStor PRO SSTORDRV.SYS

Swap Utilities

SWBIOS

SWELL.EXE

SYSTEM

SYSTEM DATA

SYSTEM FOSSIL

system resume vector (CONVERTIBLE)

SYS_PROF.EXE


Alphabetic - 'T'
Alphabetical Index - 'T'

TAME v2.10+

Tandon memory mapper

Tandy 2500, Tandy 1000L series

Tandy SCHOOLMATE PLUS

TANDY???

Tangram Arbiter

TARGA.DEV

TBSCANX

Telebit ACS SERIAL I/O

TeleReplica

TEMPLEXX

TesSeRact RAM-RESIDENT PROGRAM INTERFACE

Texas Instruments PC

TEXT WINDOWS

TEXTCAP 2.0

THELP v3.0

through 53

through 57

ThunderByte???

TI Professional PC

TIL Xpert AIM (X.25)

TIME

Tinytalk Personal v1.09f

TKERNEL (Borland DOS extender)

TOPS INTERFACE

TopView

TopView commands

Topware Network Operating System

TRAP.COM

Tseng ET-4000 BIOS v3.00

Turbo Debug HARDWARE BREAKPOINTS

Turbo Debugger 8086 v2.5+

TurboPower TSRs


Alphabetic - 'U'
Alphabetical Index - 'U'

UofSalford DBOS DOS extender

used by Alloy NTNX

Used by cluster adapter


Alphabetic - 'V'
Alphabetical Index - 'V'

Vanderaart TEXT WINDOWS

Vanderaart TEXT WINDOWS, PC Thuis Shell

VEDIT VSWAP

VESA SuperVGA BIOS

VESA SuperVGA BIOS v1.1

VESA SuperVGA BIOS v1.2+

VGA

Victor 9000

VIDCLOCK.COM

VIDEO

VIDEO DATA

VIDEO FOSSIL

Virtual Control Program Interface

Virtual DMA Specification

Virtual DMA Specification (VDS)

VIRUS

VIRUS "Stupid"

VMiX

VMiX v2+

VMiX v2.???+

VMIX v2.???+

VUIMAGE DISPLAY DRIVER (v2.20 and below)


Alphabetic - 'W'
Alphabetical Index - 'W'

WATCH.COM v2.x-v3.0

WATCH.COM v3.2+

Watstar PC Network data pointer 1

Watstar PC Network data pointer 2

WCED v1.6

WD7000 SDLP interface

WHOA!.COM

WILDUNIX.COM internal

Windows 3.0, DOS 5.0 EGA.SYS

Windows 3.x

Windows 3.x (OS/2 2.x???)

WORD PERFECT v5.0 Third Party Interface


Alphabetic - 'X'
Alphabetical Index - 'X'

X.PC Packet software interface

X00 FOSSIL


Alphabetic - 'Y'
Alphabetical Index - 'Y'

YTERM

YTERM 1.4


Alphabetic - 'Z'
Alphabetical Index - 'Z'

Z-NIX MOUSE DRIVER v7.04d

Z100

Zenith AT BIOS

ZIPKEY

ZIPKEY v2.0+

ZWmous

ZyXEL ZFAX


INT 52

Interrupt 52 is undefined in this file.


INT 55

Interrupt 55 is undefined in this file.


INT 56

Interrupt 56 is undefined in this file.


INT 57

Interrupt 57 is undefined in this file.


Table Formats

Emulator's data area (offset from interrupt handler's segment):	(INT 0C)

Record for DL=04h:	(INT 10 AX=0F56)

Palette register list:	(INT 10 AX=1002)

ATI VGA Wonder video mode table:	(INT 10 AH=12)

Display parameter table:	(INT 10 AH=15)

State information:	(INT 10 AH=1B)

Static Functionality Table:	(INT 10 AH=1B)

Video hardware state:	(INT 10 AH=1C)

DAC state:	(INT 10 AH=1C)

DMQS buffer:	(INT 10 AH=1D)

3270 PC configuration table:	(INT 10 AX=3000)

Control Program Level table:	(INT 10 AX=3000)

Configuration info:	(INT 10 AH=38)

Parameter table:	(INT 10 AH=4B)

SuperVGA information:	(INT 10 AX=4F00)

Mode information:	(INT 10 AX=4F01)

Data area:	(INT 10 AX=5555)

Mode information record:	(INT 10 AX=7000)

Info structure:	(INT 10 AX=7F00)

ResInfo:	(INT 10 AX=7F00)

Font info table [array] entry:	(INT 10 AX=7F00)

Register value table:	(INT 10 AX=7F05)

Palette register list:	(INT 10 AX=CD02)

Current font names table (v2+):	(INT 10 AX=CD02)

Current font names table (v1.x):	(INT 10 AX=CD02)

Entries in table of register records:	(INT 10 AH=F4)

Task info buffer:	(INT 12 AX=FFFE)

Address field buffer entry (one per sector in track):	(INT 13 AH=05)

Mode select data:	(INT 13 AH=05)

Defect table A:	(INT 13 AH=06)

Defect table B:	(INT 13 AH=06)

Defect table C:	(INT 13 AH=06)

SCSI disk information block:	(INT 13 AH=1B)

Status record:	(INT 13 AH=1D)

Error list:	(INT 13 AH=1D)

Information record:	(INT 13 AX=7B00)

Data structure:	(INT 13 AH=80)

Driver info:	(INT 14 AH=1B)

Configuration table:	(INT 14 AH=24)

Redirector status:	(INT 14 AX=8002)

Attachment structure:	(INT 14 AX=8004)

Resource information structure:	(INT 14 AX=8006)

Port information structure:	(INT 14 AX=8007)

Server name structure:	(INT 14 AX=8008)

Port control block:	(INT 14 AH=81)

VFOSSIL information:	(INT 14 AX=8100)

Application function table:	(INT 14 AX=8101)

Video mode data structure:	(INT 14 AX=8101)

Video configuration data:	(INT 14 AX=8101)

Cursor type record:	(INT 14 AX=8101)

Status array entry:	(INT 14 AH=A1)

NVRAM:	(INT 15 AH=01)

ABIOS System Parameter Table:	(INT 15 AH=04)

One entry of ABIOS Initialization Table:	(INT 15 AH=05)

Object:	(INT 15 AX=1016)

Register Save Record:	(INT 15 AX=1016)

.PIF/.DVP file:	(INT 15 AX=102C)

Variable length record:	(INT 15 AX=102C)

System memory block header (one paragraph before memory block):	(INT 15 AX=102E)

Panel file:	(INT 15 AH=12)

Pointer message:	(INT 15 AH=12)

MultiDOS Plus v4.0 task control block:	(INT 15 AH=13)

MultiDOS Plus 4.0 system block:	(INT 15 AH=15)

Global descriptor table:	(INT 15 AH=87)

XBRK structure:	(INT 15 AX=BF02)

ROM configuration table:	(INT 15 AH=C0)

Program entry in DESQVIEW.DVO:	(INT 15 AX=DE00)

Instance Item Structure [one element of list]:	(INT 15 AX=DE27)

Window information:	(INT 15 AX=DE2C)

Socket record:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 000Fh data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0010h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0011h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0012h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0013h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0016h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0018h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0019h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 001Ah data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 001Bh data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 001Dh return data [array]:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0024h return data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0030h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0034h data:	(INT 15 AX=DE2E)

Function 0026h/Subfunction 0038h return data:	(INT 15 AX=DE2E)

Socket Context Record:	(INT 15 AX=DE2E)

Tone array entries:	(INT 16 AH=73)

Event record:	(INT 16 AX=8765)

Data block:	(INT 16 AX=F0F0)

Buffer:	(INT 16 AX=FF97)

Overlay header:	(INT 16 AX=FF98)

Internal data:	(INT 16 AX=FFA5)

Window parameters:	(INT 16 AX=FFB5)

Data structure:	(INT 16 AX=FFC1)

Returned pointer list:	(INT 16 AX=FFDD)

Pulldown menu system description:	(INT 16 AX=FFEE)

Menu definition:	(INT 16 AX=FFEE)

Menu contents:	(INT 16 AX=FFEE)

Attribute data structure:	(INT 16 AX=FFF5)

Editor buffer structure:	(INT 16 AX=FFF6)

Hotkey table:	(INT 16 AX=FFFC)

Control block:	(INT 17 AH=C0)

VDISK header block (at beginning of INT 19 handler's segment):	(INT 19)

Hard disk master boot sector:	(INT 19)

Partition record:	(INT 19)

Cparms structure:	(INT 1A AX=6308)

Video parameters:	(INT 1D)

Diskette parameter table:	(INT 1E)

Input buffer:	(INT 21 AH=0A)

File Control Block:	(INT 21 AH=0F)

Reserved field for DOS 1.0:	(INT 21 AH=0F)

Reserved field for DOS 1.10-1.25:	(INT 21 AH=0F)

Reserved field for DOS 2.x:	(INT 21 AH=0F)

Reserved field for DOS 3.x:	(INT 21 AH=0F)

DOS 1.1 and MSDOS 1.25 drive parameter block:	(INT 21 AH=1F)

Selector structure:	(INT 21 AX=250D)

Parameter block:	(INT 21 AX=2510)

Parameter block:	(INT 21 AX=2511)

Parameter block:	(INT 21 AX=2512)

VM stats buffer:	(INT 21 AX=2520)

Parameter block:	(INT 21 AX=25C3)

PSP:	(INT 21 AH=26)

Environment block:	(INT 21 AH=26)

ELRES history structure:	(INT 21 AH=2B)

TAME 2.10-2.20 data area:	(INT 21 AX=2B01)

TAME 2.30 data area:	(INT 21 AX=2B01)

TAME 2.60 data area:	(INT 21 AX=2B01)

Initialization request structure:	(INT 21 AX=2B44)

Termination request structure:	(INT 21 AX=2B44)

DOS Drive Parameter Block:	(INT 21 AH=32)

PCDOS 2.x country info:	(INT 21 AH=38)

MSDOS 2.x,DOS 3+ country info:	(INT 21 AH=38)

Status block:	(INT 21 AH=3F)

Configuration data:	(INT 21 AH=3F)

Hardware breakpoint commands:	(INT 21 AH=40)

Request block for GetProtocolManagerInfo:	(INT 21 AX=4402)

Request block for RegisterModule:	(INT 21 AX=4402)

Request block for BindAndStart:	(INT 21 AX=4402)

Request block for GetProtocolManagerLinkage:	(INT 21 AX=4402)

Request block for GetProtocolIniPath:	(INT 21 AX=4402)

Request block for RegisterProtocolManagerInfo:	(INT 21 AX=4402)

Request block for InitAndRegister:	(INT 21 AX=4402)

Request block for UnbindAndStop:	(INT 21 AX=4402)

Request block for BindStatus:	(INT 21 AX=4402)

Request block for RegisterStatus:	(INT 21 AX=4402)

Common characteristics table:	(INT 21 AX=4402)

MAC Service-Specific Characteristics Table:	(INT 21 AX=4402)

NetBIOS Service-Specific Characteristics Table	(INT 21 AX=4402)

MAC Service-Specific Status Table:	(INT 21 AX=4402)

Returned data:	(INT 21 AX=4402)

SMARTDRV status record:	(INT 21 AX=4402)

Control block:	(INT 21 AX=4402)

Hooked vector table entry:	(INT 21 AX=4402)

SCSI Request Block (64 bytes):	(INT 21 AX=4402)

CCB:	(INT 21 AX=4402)

386MAX v6.01 state:	(INT 21 AX=4402)

High memory info record:	(INT 21 AX=4402)

ROM shadowing record:	(INT 21 AX=4402)

Memory speed record:	(INT 21 AX=4402)

Configuration information:	(INT 21 AX=4402)

Parameter record:	(INT 21 AX=4402)

Interface info:	(INT 21 AX=4402)

SMARTDRV control block:	(INT 21 AX=4403)

Control block:	(INT 21 AX=4403)

SCSITAPE control block:	(INT 21 AX=4403)

Buffer on return:	(INT 21 AX=4403)

Stacker buffer:	(INT 21 AX=4404)

Data record:	(INT 21 AX=4404)

Signature data table:	(INT 21 AX=4404)

Parameter block for function 00h:	(INT 21 AX=440C)

Parameter block for function 45h:	(INT 21 AX=440C)

Parameter block for functions 4Ah and 6Ah:	(INT 21 AX=440C)

Parameter block for function 4Dh:	(INT 21 AX=440C)

Parameter block for function 4Ch:	(INT 21 AX=440C)

Parameter block for functions 5Fh and 7Fh:	(INT 21 AX=440C)

Parameter block for function 6Bh:	(INT 21 AX=440C)

Mtop parameter block:	(INT 21 AX=440C)

Mtget parameter block:	(INT 21 AX=440C)

Parameter block for functions 40h, 60h:	(INT 21 AX=440D)

Parameter block for functions 41h, 61h:	(INT 21 AX=440D)

Parameter block for functions 42h, 62h:	(INT 21 AX=440D)

Parameter block for functions 46h, 66h:	(INT 21 AX=440D)

Parameter block for functions 47h, 67h:	(INT 21 AX=440D)

Parameter block for function 68h:	(INT 21 AX=440D)

Internal table:	(INT 21 AX=4458)

Jump table for DR-DOS 5.0-6.0:	(INT 21 AX=4458)

HMA Memory Block (DR-DOS 6.0 kernel loaded in HMA):	(INT 21 AX=4458)

EXEC parameter block for AL=00h,01h,04h:	(INT 21 AH=4B)

EXEC parameter block for AL=03h:	(INT 21 AH=4B)

EXEC parameter block for FlashTek X-32:	(INT 21 AH=4B)

.EXE file header:	(INT 21 AH=4B)

New executable header:	(INT 21 AH=4B)

Codeview trailer (at end of executable):	(INT 21 AH=4B)

New executable segment table record:	(INT 21 AH=4B)

New executable entry table item (list):	(INT 21 AH=4B)

New executable relocation data (immediately follows segment image):	(INT 21 AH=4B)

New executable resource data:	(INT 21 AH=4B)

New executable resource entry:	(INT 21 AH=4B)

New executable module reference table [one bundle of entries]:	(INT 21 AH=4B)

New executable resident/nonresident name table entry:	(INT 21 AH=4B)

Linear Executable (enhanced mode executable) header:	(INT 21 AH=4B)

Object table entry:	(INT 21 AH=4B)

Object page map table entry:	(INT 21 AH=4B)

Resident names table entry:	(INT 21 AH=4B)

Linear executable entry table:	(INT 21 AH=4B)

Linear executable fixup record:	(INT 21 AH=4B)

Borland debugging information header (following load image):	(INT 21 AH=4B)

Execution state structure:	(INT 21 AX=4B05)

FindFirst data block:	(INT 21 AH=4E)

List of Lists:	(INT 21 AH=52)

Memory control block (see also below):	(INT 21 AH=52)

MSDOS 5.0 UMB control block:	(INT 21 AH=52)

STARLITE (General Software's Embedded DOS) memory control block:	(INT 21 AH=52)

DOS 4.x data segment subsegment control blocks:	(INT 21 AH=52)

Data at start of STACKS code segment (if present):	(INT 21 AH=52)

Array elements in STACKS data segment:	(INT 21 AH=52)

Sharing record:	(INT 21 AH=52)

SHARE.EXE lock record:	(INT 21 AH=52)

DOS 2.x system file tables:	(INT 21 AH=52)

DOS 3.0 system file tables and FCB tables:	(INT 21 AH=52)

DOS 3.1-3.3x system file tables and FCB tables:	(INT 21 AH=52)

DOS 4.0-5.0 system file tables and FCB tables:	(INT 21 AH=52)

Current directory structure (CDS) (array, LASTDRIVE entries):	(INT 21 AH=52)

DR-DOS 5.0-6.0 current directory structure entry (array):	(INT 21 AH=52)

Device driver header:	(INT 21 AH=52)

CLOCK$ transfer record:	(INT 21 AH=52)

DOS 2.x disk buffer:	(INT 21 AH=52)

DOS 3.x disk buffer:	(INT 21 AH=52)

DOS 4.00 (pre UR 25066) disk buffer info:	(INT 21 AH=52)

DOS 4.01 (from UR 25066 Corrctive Services Disk on) disk buffer info:	(INT 21 AH=52)

DOS 4.x disk buffer hash chain head (array, one entry per chain):	(INT 21 AH=52)

DOS 4.0-5.0 disk buffer:	(INT 21 AH=52)

DOS 5.0 disk buffer info:	(INT 21 AH=52)

IFS driver list:	(INT 21 AH=52)

IFS request block:	(INT 21 AH=52)

IFS open file structure:	(INT 21 AH=52)

One item in DOS 4+ list of special program names:	(INT 21 AH=52)

BIOS Parameter Block:	(INT 21 AH=53)

Hard error information packet:	(INT 21 AH=59)

DOS parameter list:	(INT 21 AX=5D00)

DOS 3.10-3.30 Swappable Data Area:	(INT 21 AX=5D06)

DOS 4.x swappable data area list:	(INT 21 AX=5D0B)

DOS 4.0-5.0 swappable data area:	(INT 21 AX=5D0B)

User account structure:	(INT 21 AX=5F87)

Message buffer:	(INT 21 AX=5F98)

Queue entry:	(INT 21 AX=5FA0)

Printer status:	(INT 21 AX=5FA3)

Stream information:	(INT 21 AX=5FA4)

Active user entry:	(INT 21 AX=5FB0)

Time block:	(INT 21 AX=5FC0)

Lead byte table entry:	(INT 21 AX=6300)

DBCS table:	(INT 21 AX=6300)

Country information:	(INT 21 AH=65)

Uppercase table:	(INT 21 AH=65)

Collating table:	(INT 21 AH=65)

Filename terminator table:	(INT 21 AH=65)

Filename uppercase table:	(INT 21 AH=65)

DBCS lead byte table:	(INT 21 AH=65)

Disk info:	(INT 21 AH=69)

Data structure:	(INT 21 AX=7070)

Translate tables:	(INT 21 AH=AF)

Capture flags table:	(INT 21 AX=B800)

Reply buffer:	(INT 21 AH=DA)

Request buffer:	(INT 21 AH=E0)

Reply buffer:	(INT 21 AH=E0)

Request buffer:	(INT 21 AH=E0)

Reply buffer:	(INT 21 AH=E0)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E1)

Reply buffer:	(INT 21 AH=E1)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E2)

Reply buffer:	(INT 21 AH=E2)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Object property:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Login time:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Lock Status Information:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Request buffer:	(INT 21 AH=E3)

Reply buffer:	(INT 21 AH=E3)

Date/time buffer:	(INT 21 AH=E7)

Connection ID table [one entry of eight-element array]:	(INT 21 AX=EF03)

Request buffer:	(INT 21 AX=F244)

Request buffer:	(INT 21 AH=F3)

Disk read packet:	(INT 25)

Driver address buffer:	(INT 25 AX=CDCD)

Device driver:	(INT 25 AX=CDCD)

Stacker boot record:	(INT 25 AX=CDCD)

Disk write packet:	(INT 26)

Signature string:	(INT 2D)

Interrupt hook list [array]:	(INT 2D)

Hotkey list:	(INT 2D)

Interrupt sharing protocol interrupt handler entry point:	(INT 2D)

Commandline:	(INT 2E)

Vector table entry:	(INT 2F)

Author_name_ver table:	(INT 2F)

Vector_area table:	(INT 2F)

Extra_area table (needed only to improve relocation feature):	(INT 2F)

External_ctrl table:	(INT 2F)

Submit packet:	(INT 2F AX=0101)

Device driver request header:	(INT 2F AX=0802)

Character queue:	(INT 2F AX=0802)

DOS 3.30 drive data table:	(INT 2F AX=0803)

COMPAQ DOS 3.31 drive data table:	(INT 2F AX=0803)

DOS 4.0-5.0 drive data table:	(INT 2F AX=0803)

Parameter block:	(INT 2F AX=110A)

DOS 4.x error table:	(INT 2F AX=122E)

DOS 3.30 internal code page structure:	(INT 2F AX=1401)

Directory entry (direct copy):	(INT 2F AX=150F)

Directory entry (canonicalized):	(INT 2F AX=150F)

Startup Information Structure:	(INT 2F AX=1605)

One Instance Item in array:	(INT 2F AX=1605)

Patch table:	(INT 2F AX=1607)

TSR-to-Windows communication structure:	(INT 2F AX=160B)

Norton Utilities 6.0 TSR ID block:	(INT 2F AX=160B)

Bitmap:	(INT 2F AX=1703)

Metafile picture:	(INT 2F AX=1703)

Parameter block:	(INT 2F AX=1A02)

Parameter block:	(INT 2F AX=2707)

TSR modules:	(INT 2F AH=39)

Interrupt list entry:	(INT 2F AH=39)

EMM structure:	(INT 2F AX=4310)

Data table:	(INT 2F AX=4A10)

Callback info structure:	(INT 2F AX=4B01)

Task switcher version structure:	(INT 2F AX=4B02)

API info structure:	(INT 2F AX=4B02)

Startup info structure:	(INT 2F AX=4B05)

One instance data record in array:	(INT 2F AX=4B05)

User Parameter Block:	(INT 2F AX=5453)

TSR internal data area:	(INT 2F AX=5453)

SLSREQUEST structure:	(INT 2F AX=7001)

SLSCHALLENGE structure:	(INT 2F AX=7001)

SLSRELEASE structure:	(INT 2F AX=7002)

SLSUPDATE structure:	(INT 2F AX=7003)

SLSGETERROR structure:	(INT 2F AX=7004)

SLSQUERY structure:	(INT 2F AX=7005)

Device driver header:	(INT 2F AX=7200)

SYS_LOGIN command buffer:	(INT 2F AX=80FB)

SYS_LOGOUT command buffer:	(INT 2F AX=80FB)

SYS_GET_FAXAPP_INFO command buffer:	(INT 2F AX=80FB)

STAT_IO_GET command buffer:	(INT 2F AX=80FB)

STAT_FAXBIOS_GET command buffer:	(INT 2F AX=80FB)

PDIR_OPEN command buffer:	(INT 2F AX=80FB)

PDIR_CLOSE command buffer:	(INT 2F AX=80FB)

PDIR_READ_PERSON command buffer:	(INT 2F AX=80FB)

SCHED_OPEN, SCHED_CANCEL command buffer:	(INT 2F AX=80FB)

SCHED_ADD_DEST command buffer:	(INT 2F AX=80FB)

SCHED_ADD_FILE command buffer:	(INT 2F AX=80FB)

SCHED_SET_PARAMS command buffer:	(INT 2F AX=80FB)

SCHED_CLOSE command buffer:	(INT 2F AX=80FB)

SLOG_OPEN, SLOG_CLOSE, RLOG_OPEN, RLOG_CLOSE command buffer:	(INT 2F AX=80FB)

GRAPH_GET_FILE_TYPE command buffer:	(INT 2F AX=80FB)

GRAPH_CREATE_FILE command buffer:	(INT 2F AX=80FB)

GRAPH_CLOSE_FILE, GRAPH_END_PAGE command buffer:	(INT 2F AX=80FB)

GRAPH_CREATE_PAGE command buffer:	(INT 2F AX=80FB)

GRAPH_WRITE_PAGE command buffer:	(INT 2F AX=80FB)

GRAPH_OPEN_FILE command buffer:	(INT 2F AX=80FB)

GRAPH_GOTO_PAGE command buffer:	(INT 2F AX=80FB)

GRAPH_READ_PAGE command buffer:	(INT 2F AX=80FB)

IOCTL_ANSWER_FAX command buffer:	(INT 2F AX=80FB)

IOCTL_DIAL command buffer:	(INT 2F AX=80FB)

DOS 5.0 code page information:	(INT 2F AX=AD03)

KEYB internal data:	(INT 2F AX=AD80)

Code page table list entries:	(INT 2F AX=AD80)

Translation data:	(INT 2F AX=AD80)

Command line buffer:	(INT 2F AX=AE00)

Command name buffer:	(INT 2F AX=AE00)

Text header:	(INT 2F AX=B804)

Return data buffer:	(INT 2F AX=B80F)

Entry point record:	(INT 2F AX=C000)

External data block:	(INT 2F AX=CB0E)

Status area:	(INT 2F AX=CB10)

File transfer record:	(INT 2F AX=CB10)

Status buffer for Intel Connection CoProcessor:	(INT 2F AX=CB12)

Status buffer for Intel SatisFAXtion board:	(INT 2F AX=CB12)

Data area:	(INT 2F AX=CB15)

Structure:	(INT 2F AX=CD04)

Info buffer:	(INT 2F AX=CD07)

Structure:	(INT 2F AX=CD08)

Structure:	(INT 2F AX=CD09)

Palette structure:	(INT 2F AX=CD0A)

MDEBUG identification table:	(INT 2F AX=D100)

MDEBUG data structure:	(INT 2F AX=D102)

The driver identification table:	(INT 2F AX=D110)

Partial map context (EMS 3.2):	(INT 2F AX=D201)

Partial map context (EMS 4.0):	(INT 2F AX=D201)

EXEC record:	(INT 2F AX=D44D)

4DOS v4.0 data area:	(INT 2F AX=D44D)

Buffer:	(INT 2F AX=D600)

TSR info list:	(INT 2F AH=DD)

Information for one process (v1.00):	(INT 2F AX=DE01)

Information for one process (v1.10-v2.00):	(INT 2F AX=DE01)

XMS XDI structure:	(INT 2F AX=DE04)

Returned data structure for ANARKEY v2.0:	(INT 2F AX=E301)

Returned data structure for ANARKEY v3+:	(INT 2F AX=E301)

Memory block info:	(INT 2F AX=FB42)

DPMILOAD data:	(INT 2F AX=FB42)

Name list entry [array]:	(INT 2F AX=FB42)

6-byte objects:	(INT 2F AX=FB42)

Memory control record:	(INT 2F AX=FB42)

Response buffer:	(INT 2F AX=FBA1)

Response buffer:	(INT 2F AX=FBA1)

Entry point data structure:	(INT 2F AX=FBFB)

DISKMON.INI file:	(INT 2F AX=FE00)

FILESAVE.INI / EP.INI file:	(INT 2F AX=FE00)

Descriptor buffer entry (one per descriptor to get):	(INT 31 AX=000E)

Descriptor buffer entry (one per descriptor to set):	(INT 31 AX=000F)

Stack frame for 16-bit programs: (offset from SS:SP)	(INT 31 AX=0203)

Stack frame for 32-bit programs: (offset from SS:ESP)	(INT 31 AX=0203)

Real mode call structure:	(INT 31 AX=0300)

Buffer:	(INT 31 AX=0401)

Memory information:	(INT 31 AX=0500)

Page attribute words:	(INT 31 AX=0506)

Memory information:	(INT 31 AX=050B)

Resident service provider structure:	(INT 31 AX=0C00)

Shared memory allocation request structure:	(INT 31 AX=0D00)

Update region list:	(INT 33 AX=0010)

Acceleration profile data:	(INT 33 AX=002B)

Data buffer:	(INT 33 AX=0033)

Buffer:	(INT 33 AX=0043)

Microsoft version number:	(INT 33 AX=006D)

Data structure:	(INT 33 AX=0070)

Info structure:	(INT 33 AX=0070)

Parameter table:	(INT 33 AX=246C)

Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]	(INT 33 AX=3003)

Sacrifice Character Map [SMD_SMAP_STRUCT]	(INT 33 AX=3003)

Program Information [SMD_INFO_STRUCT]	(INT 33 AX=3003)

Task Control Block:	(INT 38 AH=04)

Fixed disk parameters:	(INT 41)

Control block:	(INT 41)

Control block:	(INT 45)

Translation table:	(INT 49)

Control block for function FAh:	(INT 4A)

DMA descriptor structure (DDS):	(INT 4B AX=8102)

Extended DMA descriptor structure (EDDS):	(INT 4B AX=8102)

Extended DMA descriptor structure (EDDS) with page table entries:	(INT 4B AX=8102)

CAM Control Block:	(INT 4F AX=8100)

Network Control Block	(INT 5B)

Transfer Control Block:	(INT 5B)

Network Control Block:	(INT 5C)

Structure "name":	(INT 5C)

Structure "astatus":	(INT 5C)

Structure "sstatus":	(INT 5C)

Structure "session":	(INT 5C)

AppleTalk control block:	(INT 5C)

Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:	(INT 5C)

BDS entries:	(INT 5C)

CCB:	(INT 5C)

Graphics info record:	(INT 5F AH=02)

Image buffer:	(INT 5F AH=0D)

Parameter block:	(INT 60)

Event record:	(INT 60)

Time change structure:	(INT 60)

Bridge record:	(INT 60)

Menu data:	(INT 60)

File menu structure:	(INT 60)

File list workspace entry:	(INT 60)

Edit record:	(INT 60)

Multi-line edit record:	(INT 60)

File state record:	(INT 60)

Pattern match control block:	(INT 60)

Alarm record:	(INT 60)

System settings:	(INT 60)

Comm settings:	(INT 60)

MDEBUG identification table:	(INT 60 AH=00)

Parameter table:	(INT 60 AH=0A)

IOCB:	(INT 60 AH=0C)

Statistics:	(INT 60 AH=18)

Network debugging information:	(INT 61 AH=00)

Control block:	(INT 61 AX=0001)

Argument block:	(INT 61 AX=0001)

IPC port:	(INT 61 AX=0001)

Control block:	(INT 61 AX=0001)

Argument block:	(INT 61 AX=0001)

Buffer descriptor:	(INT 61 AX=0001)

Socket address for unreliable datagrams:	(INT 61 AX=0001)

Control block:	(INT 61 AX=0001)

Argument block:	(INT 61 AX=0001)

Buffer descriptor:	(INT 61 AX=0001)

Control block:	(INT 61 AX=0001)

Argument block:	(INT 61 AX=0001)

Control block:	(INT 61 AX=0001)

Argument block:	(INT 61 AX=0001)

Control block:	(INT 61 AX=0001)

Control block:	(INT 61 AX=0001)

Argument block:	(INT 61 AX=0001)

Argument block for BH=03h,04h:	(INT 61 AX=0002)

Argument block for BH=05h:	(INT 61 AX=0002)

Argument block for BH=07h:	(INT 61 AX=0002)

Argument block for BH=08h:	(INT 61 AX=0002)

Argument block for BH=0Ah:	(INT 61 AX=0002)

Argument block for BH=0Fh:	(INT 61 AX=0002)

Argument block for BH=12h:	(INT 61 AX=0002)

Argument block for BH=13h:	(INT 61 AX=0002)

Argument block for BH=14h:	(INT 61 AX=0002)

Argument block for BH=16h:	(INT 61 AX=0002)

Argument block for BH=17h:	(INT 61 AX=0002)

Argument block for BH=18h:	(INT 61 AX=0002)

Argument block for BH=19h:	(INT 61 AX=0002)

Argument block for BH=1Ch,1Dh:	(INT 61 AX=0002)

Device block, argument block for BH=15h:	(INT 61 AX=0002)

Information block:	(INT 61 AX=0002)

Status line:	(INT 61 AX=0002)

Profile block:	(INT 61 AX=0002)

Argument block:	(INT 61 AX=0003)

Terminal status area:	(INT 61 AX=0003)

Request block:	(INT 61 AX=0004)

Request block:	(INT 61 AX=0005)

Window parameters:	(INT 61 AX=0005)

Zoom window description:	(INT 61 AX=0006)

Port record block:	(INT 61 AX=0007)

Port record block:	(INT 61 AX=0007)

NiceName block:	(INT 61 AX=0007)

Enumerate block:	(INT 61 AX=0007)

Category criteria block:	(INT 61 AX=0007)

Request block:	(INT 61 AX=0008)

Message storage area:	(INT 61 AX=0008)

Buffer:	(INT 61 AH=06)

Handle statistics:	(INT 61 AH=0C)

Kernel TCP statistics:	(INT 61 AH=0C)

Kernel IP statistics:	(INT 61 AH=0C)

Kernel UDP statistics:	(INT 61 AH=0C)

Kernel ICMP statistics:	(INT 61 AH=0C)

Configuration information:	(INT 61 AH=2A)

Variable pointer record:	(INT 62 AX=001C)

Variable pointer record:	(INT 62 AX=002E)

Variable pointers:	(INT 62 AX=0034)

Masking map:	(INT 62 AX=0051)

Copy record:	(INT 62 AX=005C)

Variable pointer record:	(INT 62 AX=006E)

Variable pointer record:	(INT 62 AX=006F)

Variable pointer record:	(INT 62 AX=0079)

Variable pointer record:	(INT 62 AX=007C)

Variable pointer record:	(INT 62 AX=007D)

Sounds array element:	(INT 62 AX=0089)

Tone array element:	(INT 62 AX=008B)

Interrupt handler entry:	(INT 63)

Signature block:	(INT 65)

Command block:	(INT 66 AH=05)

QEMM 6.0 memory statistics:	(INT 67 AH=3F)

Stealth ROM info [array]:	(INT 67 AH=3F)

Mapping array entry:	(INT 67 AH=50)

Handle directory entry:	(INT 67 AH=54)

EMS copy data:	(INT 67 AH=57)

Mappable physical address entry:	(INT 67 AH=58)

Hardware configuration array:	(INT 67 AH=59)

System register values for switch to protected mode:	(INT 67 AX=DE0C)

Control block:	(INT 68 AH=01)

ACCESS_LU_LU_PW verb:	(INT 68 AH=01)

CREATE_TP verb:	(INT 68 AH=01)

SYSLOG verb:	(INT 68 AH=01)

Control block:	(INT 68 AH=02)

Control block:	(INT 68 AH=03)

Control block:	(INT 68 AH=04)

Control block:	(INT 68 AH=05)

Control block:	(INT 68 AH=06)

Control block:	(INT 68 AH=FB)

Trace Statistics Record:	(INT 68 AH=FE)

Datalink Communication Block	(INT 69 AH=0A)

Signature area:	(INT 6A)

LAT Session Control Block:	(INT 6A AH=D0)

Signature area:	(INT 6A AX=D600)

Signature area:	(INT 6C)

Signature area:	(INT 6D)

Signature area:	(INT 6E)

Login record:	(INT 6F AH=00)

Node status record:	(INT 6F AH=02)

Configuration table:	(INT 6F AH=03)

Receive buffer:	(INT 6F AH=05)

Submit record:	(INT 6F AH=09)

Control parameters:	(INT 6F AH=0A)

Chat message:	(INT 6F AH=0A)

Station record:	(INT 6F AH=0D)

Spool/Print record:	(INT 6F AH=0E)

$SCNTL record:	(INT 6F AH=0E)

Shared device table entry:	(INT 6F AX=1501)

SCSI Command:	(INT 78 AH=10)

SCSI Command:	(INT 78 AH=11)

SCSI Command:	(INT 78 AH=12)

SCSI Command:	(INT 78 AH=13)

SCSI Command:	(INT 78 AH=14)

Event Control Block:	(INT 7A)

IPX header:	(INT 7A)

Service Advertising Protocol Service Query Packet:	(INT 7A)

Service Advertising Protocol Server Identification Packet:	(INT 7A)

Internetwork address:	(INT 7A)

Internetwork address:	(INT 7A)

SPX header:	(INT 7A)

Status buffer:	(INT 7A)

Diagnostic element:	(INT 7A)

Signature block:	(INT 7A AX=FDCB)

Btrieve parameter record:	(INT 7B)

HyperPAD data area:	(INT 7D)

Telebit ACS parameter block:	(INT 7F)

Parameter control block:	(INT 7F AX=0104)

User information record:	(INT 7F AH=05)

Drive info record:	(INT 7F AH=06)

Shared drive list:	(INT 7F AH=07)

System flags:	(INT 7F AH=0A)

Request block:	(INT 7F AH=11)

Busy structure:	(INT 7F AH=14)

Status structure:	(INT 7F AH=15)

Full-channel structure:	(INT 7F AH=15)

Status structure:	(INT 7F AH=15)

Transfer structure:	(INT 7F AH=16)

Control packet:	(INT 7F AH=21)

Parameter block for function 00h:	(INT 7F AX=ABCD)

Results buffer for function 00h:	(INT 7F AX=ABCD)

Reset packet:	(INT 7F AH=D6)

Shape model:	(INT 88 AX=00)

Parameter block:	(INT 92 AX=E100)

Parameter block:	(INT 92 AX=E104)

Parameter block:	(INT 92 AX=E105)

Parameter block:	(INT 92 AX=E108)

Command buffer:	(INT 92 AX=E108)

Message header buffer:	(INT 92 AX=E108)

Parameter block:	(INT 92 AX=E10A)

Parameter block:	(INT 92 AX=E10B)

Parameter block:	(INT 92 AX=E10C)

Parameter block:	(INT 92 AX=E10D)

Parameter block:	(INT 92 AX=E10E)

Queue descriptor:	(INT E0)

Queue parameter block:	(INT E0)

Character control block (CHCB):	(INT E0)

AUX device parameter block:	(INT E0)

AUX device control block:	(INT E0)


INT 01

INT 01  INT 01 - CPU-generated - SINGLE STEP

INT 01  INT 01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS


INT 03

INT 03  INT 03 - CPU-generated - BREAKPOINT

INT 03 AH=09  INT 03 - Soft-ICE BACK DOOR COMMANDS


INT 05

INT 05  INT 05 - PRINT SCREEN

INT 05  INT 05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED


INT 06

INT 06  INT 06 - CPU-generated (80286+) - INVALID OPCODE

INT 06  INT 06 C - HP 95LX - SLEEP/WAKEUP


INT 08

INT 08  INT 08 - IRQ0 - SYSTEM TIMER

INT 08  INT 08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED


INT 09

INT 09  INT 09 - IRQ1 - KEYBOARD DATA READY

INT 09  INT 09 - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR

INT 09  INT 09 P - internal hardware - RESERVED BY Intel (80486)


INT 0A

INT 0A  INT 0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)

INT 0A  INT 0A - IRQ2 - Tandy 1000-series HARD DISK

INT 0A  INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE

INT 0A  INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT


INT 0B

INT 0B  INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)

INT 0B  INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT

INT 0B  INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER


INT 0C

INT 0C  INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)

INT 0C  INT 0C - CPU-generated (80286+) - STACK FAULT

INT 0C  INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER


INT 0D

INT 0D  INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)

INT 0D  INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH

INT 0D  INT 0D - HP 95LX - INFRARED INTERRUPT

INT 0D  INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION


INT 0E

INT 0E  INT 0E - IRQ6 - DISKETTE CONTROLLER

INT 0E  INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT

INT 0E  INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT


INT 0F

INT 0F  INT 0F - IRQ7 - PARALLEL PRINTER

INT 0F  INT 0F - HP 95LX - REAL-TIME CLOCK


INT 10

INT 10  INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR

INT 10 AH=00

INT 10 AH=01  INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE

INT 10 AH=02  INT 10 - VIDEO - SET CURSOR POSITION

INT 10 AH=03  INT 10 - VIDEO - GET CURSOR POSITION AND SIZE

INT 10 AH=04  INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)

INT 10 AH=05

INT 10 AH=06  INT 10 - VIDEO - SCROLL UP WINDOW

INT 10 AH=07  INT 10 - VIDEO - SCROLL DOWN WINDOW

INT 10 AH=08  INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION

INT 10 AH=09  INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION

INT 10 AH=0A  INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION

INT 10 AH=0B

INT 10 AH=0C  INT 10 - VIDEO - WRITE GRAPHICS PIXEL

INT 10 AH=0D  INT 10 - VIDEO - READ GRAPHICS PIXEL

INT 10 AH=0E  INT 10 - VIDEO - TELETYPE OUTPUT

INT 10 AH=0F

INT 10 AH=10

INT 10 AH=11

INT 10 AH=12

INT 10 AH=13  INT 10 - VIDEO - WRITE STRING (AT and later,EGA)

INT 10 AX=1400

INT 10 AH=15

INT 10 AH=1A  INT 10 - VIDEO - DISPLAY COMBINATION (PS,VGA/MCGA)

INT 10 AH=1B  INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)

INT 10 AH=1C  INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)

INT 10 AH=1D  INT 10 - Tseng ET-4000 BIOS v3.00 - BUG

INT 10 AX=3000  INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)

INT 10 AH=38  INT 10 - Tinytalk Personal v1.09f - GET CONFIGURATION INFO

INT 10 AH=40  INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)

INT 10 AH=41  INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)

INT 10 AH=42  INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)

INT 10 AH=43  INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)

INT 10 AH=44  INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)

INT 10 AH=45  INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)

INT 10 AH=46  INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)

INT 10 AH=47  INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)

INT 10 AH=48  INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)

INT 10 AH=49  INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)

INT 10 AH=4A  INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)

INT 10 AH=4B

INT 10 AH=4C  INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)

INT 10 AH=4D  INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)

INT 10 AH=4E  INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)

INT 10 AX=4F00

INT 10 AH=50

INT 10 AH=51

INT 10 AX=5200

INT 10 AH=53  INT 10 - Show Partner F/X v3.6 - START PRESENTATION

INT 10 AH=55

INT 10 AX=6A00

INT 10 AX=6E00

INT 10 AX=6F00

INT 10 AH=70

INT 10 AH=71  INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM

INT 10 AH=72  INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN

INT 10 AH=73  INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN

INT 10 AX=7F00

INT 10 AH=80  INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER

INT 10 AH=81  INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???

INT 10 AH=82

INT 10 AX=8300  INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS

INT 10 AH=8B  INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE

INT 10 AH=90  INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE

INT 10 AH=91  INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE

INT 10 AH=92  INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES

INT 10 AH=93  INT 10 - Alloy MW386 - REDRAW SCREEN

INT 10 AX=BF00

INT 10 AX=CC00

INT 10 AX=CD00

INT 10 AH=EF  INT 10 - VIDEO - MSHERC.COM - INSTALLATION CHECK???

INT 10 AH=F0  INT 10 - EGA Register Interface Library - READ ONE REGISTER

INT 10 AH=F1  INT 10 - EGA Register Interface Library - WRITE ONE REGISTER

INT 10 AH=F2  INT 10 - EGA Register Interface Library - READ REGISTER RANGE

INT 10 AH=F3  INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE

INT 10 AH=F4  INT 10 - EGA Register Interface Library - READ REGISTER SET

INT 10 AH=F5  INT 10 - EGA Register Interface Library - WRITE REGISTER SET

INT 10 AH=F6  INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS

INT 10 AH=F7  INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE

INT 10 AH=FA

INT 10 AH=FE  INT 10 - TopView - GET SHADOW BUFFER

INT 10 AH=FF


INT 11

INT 11  INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK

INT 11  INT 11 - BIOS - GET EQUIPMENT LIST

INT 11  INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6

INT 11 AH=BC  INT 11 - BNU FOSSIL - INSTALLATION CHECK

INT 11 AH=FF


INT 12

INT 12  INT 12 - BIOS - GET MEMORY SIZE

INT 12  INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK

INT 12  INT 12 - PARKER v2.0+ - INSTALLATION CHECK

INT 12 AX=FFFE  INT 12 - Back&Forth v1.62+ - API


INT 13

INT 13 AH=00  INT 13 - DISK - RESET DISK SYSTEM

INT 13 AH=01  INT 13 - DISK - GET STATUS OF LAST OPERATION

INT 13 AH=02  INT 13 - DISK - READ SECTOR(S) INTO MEMORY

INT 13 AH=03  INT 13 - DISK - WRITE DISK SECTOR(S)

INT 13 AH=04  INT 13 - DISK - VERIFY DISK SECTOR(S)

INT 13 AH=05

INT 13 AH=06

INT 13 AH=07

INT 13 AH=08  INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)

INT 13 AH=09  INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)

INT 13 AH=0A  INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)

INT 13 AH=0B  INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)

INT 13 AH=0C  INT 13 - HARD DISK - SEEK TO CYLINDER

INT 13 AH=0D  INT 13 - HARD DISK - RESET HARD DISKS

INT 13 AH=0E  INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)

INT 13 AH=0F  INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)

INT 13 AH=10  INT 13 - HARD DISK - CHECK IF DRIVE READY

INT 13 AH=11  INT 13 - HARD DISK - RECALIBRATE DRIVE

INT 13 AH=12

INT 13 AH=13  INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)

INT 13 AH=14  INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC

INT 13 AH=15  INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)

INT 13 AH=16  INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)

INT 13 AH=17  INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)

INT 13 AH=18

INT 13 AH=19

INT 13 AH=1A

INT 13 AH=1B

INT 13 AH=1C

INT 13 AH=1D  INT 13 - IBMCACHE.SYS - CACHE STATUS

INT 13 AH=20

INT 13 AH=21  INT 13 - QCACHE - FLUSH CACHE

INT 13 AH=22  INT 13 - QCACHE - ENABLE/DISABLE CACHE

INT 13 AH=24  INT 13 - QCACHE - SET SECTORS

INT 13 AH=25  INT 13 - QCACHE - SET FLUSH INTERVAL

INT 13 AH=27  INT 13 - QCACHE - INSTALLATION CHECK

INT 13 AH=2A  INT 13 - QCACHE - SET BUFFER SIZE

INT 13 AH=2C  INT 13 - QCACHE - SET BUFFERED WRITES

INT 13 AH=2D  INT 13 - QCACHE - SET BUFFERED READ

INT 13 AH=2E  INT 13 - QCACHE - SET FLUSH COUNT

INT 13 AH=30  INT 13 - QCACHE - GET INFO

INT 13 AX=5504

INT 13 AH=70  INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???

INT 13 AH=75  INT 13 - ???

INT 13 AH=76  INT 13 - ???

INT 13 AX=7B00

INT 13 AH=80  INT 13 - FAST! - API

INT 13 AH=81  INT 13 - Super PC Kwik/PC-Cache 5.x - ???

INT 13 AH=82  INT 13 - Super PC Kwik/PC-Cache 5.x - ???

INT 13 AH=83  INT 13 - Super PC Kwik/PC-Cache 5.x - ???

INT 13 AH=84  INT 13 - Super PC Kwik/PC-Cache 5.x - ???

INT 13 AH=85  INT 13 - Super PC Kwik/PC-Cache 5.x - ???

INT 13 AH=86  INT 13 - Qualitas Qcache v4.00 - ???

INT 13 AH=87  INT 13 - Qualitas Qcache v4.00 - ???

INT 13 AH=88  INT 13 - Qualitas Qcache v4.00 - ???

INT 13 AX=8EED

INT 13 AH=A0  INT 13 - Super PC Kwik - GET RESIDENT CODE SEGMENT

INT 13 AH=A1  INT 13 - Super PC Kwik - FLUSH CACHE

INT 13 AH=A2  INT 13 - Super PC Kwik - ???

INT 13 AH=A5  INT 13 C - Super PC Kwik - ???

INT 13 AH=AA  INT 13 - Qualitas Qcache v4.00 - ???

INT 13 AH=AB  INT 13 - Qualitas Qcache v4.00 - ???

INT 13 AH=AC  INT 13 - Qualitas Qcache v4.00 - ???

INT 13 AH=AD

INT 13 AH=B0  INT 13 - Super PC Kwik - ???

INT 13 AH=EE  INT 13 - SWBIOS - SET 1024 CYLINDER FLAG

INT 13 AH=EF  INT 13 - NOW! - ???

INT 13 AH=F9  INT 13 - SWBIOS - INSTALLATION CHECK

INT 13 AH=FA  INT 13 - PC Tools v8+ VSAFE, VWATCH - API

INT 13 AH=FE  INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT


INT 14

INT 14  INT 14 - SERIAL I/O- Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)

INT 14 AH=00

INT 14 AH=01  INT 14 - SERIAL - WRITE CHARACTER TO PORT

INT 14 AH=02

INT 14 AH=03  INT 14 - SERIAL - GET PORT STATUS

INT 14 AH=04

INT 14 AH=05

INT 14 AH=06

INT 14 AH=07

INT 14 AH=08

INT 14 AH=09

INT 14 AH=0A

INT 14 AH=0B

INT 14 AH=0C  INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD

INT 14 AH=0D

INT 14 AH=0E

INT 14 AH=0F

INT 14 AH=10

INT 14 AH=11

INT 14 AH=12

INT 14 AH=13  INT 14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN

INT 14 AH=14  INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING

INT 14 AH=15  INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES

INT 14 AH=16

INT 14 AH=17  INT 14 - FOSSIL - REBOOT SYSTEM

INT 14 AH=18

INT 14 AH=19

INT 14 AH=1A

INT 14 AH=1B  INT 14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER

INT 14 AH=1C  INT 14 - X00 FOSSIL - ACTIVATE PORT

INT 14 AH=1D  INT 14 - X00 FOSSIL - DEACTIVATE PORT

INT 14 AH=1E  INT 14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION

INT 14 AH=1F  INT 14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL

INT 14 AH=20

INT 14 AH=21

INT 14 AH=22

INT 14 AH=23

INT 14 AH=24

INT 14 AH=25  INT 14 - MultiDOS Plus - CLEAR BUFFERS

INT 14 AH=27  INT 14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT

INT 14 AH=7E  INT 14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION

INT 14 AH=7F  INT 14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION

INT 14 AH=80

INT 14 AH=81

INT 14 AH=82

INT 14 AH=83

INT 14 AH=84  INT 14 - COURIERS.COM - READ CHARACTER

INT 14 AH=85  INT 14 - COURIERS.COM - FLUSH PENDING INPUT

INT 14 AH=86  INT 14 - COURIERS.COM - START OUTPUT

INT 14 AH=87  INT 14 - COURIERS.COM - OUTPUT STATUS

INT 14 AH=88  INT 14 - COURIERS.COM - ABORT OUTPUT

INT 14 AH=89  INT 14 - COURIERS.COM - SEND SINGLE CHARACTER

INT 14 AH=8A  INT 14 - COURIERS.COM - SEND BREAK

INT 14 AH=8C  INT 14 - COURIERS.COM - SET SPEED

INT 14 AH=8D  INT 14 - COURIERS.COM - DECONFIGURE PORT

INT 14 AH=A0

INT 14 AH=A1

INT 14 AH=A2  INT 14 - Interconnections Inc. TES - GET LIST OF SERVER NAMES

INT 14 AH=A3  INT 14 - Interconnections Inc. TES - START A NEW SESSION

INT 14 AH=A4

INT 14 AH=A5

INT 14 AH=A6

INT 14 AH=A7

INT 14 AH=A8  INT 14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER

INT 14 AX=AF00  INT 14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK

INT 14 AH=B0  INT 14 - 3com BAPI SERIAL I/O - ENABLE/DISABLE "ENTER COMMAND MODE" CHARACTER

INT 14 AH=B1  INT 14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE

INT 14 AX=F0F0

INT 14 AX=F4FF  INT 14 - IBM/Yale EBIOS SERIAL I/O - INSTALLATION CHECK

INT 14 AH=F9  INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL

INT 14 AH=FA  INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK

INT 14 AH=FB  INT 14 - IBM/Yale EBIOS SERIAL I/O - SET OUTGOING MODEM SIGNALS

INT 14 AH=FC  INT 14 - IBM/Yale EBIOS SERIAL I/O - READ CHARACTER, NO WAIT

INT 14 AX=FD02  INT 14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS

INT 14 AX=FF02  INT 14 - IBM/Yale EBIOS SERIAL I/O - BUFFERED READ


INT 15

INT 15  INT 15 - Microsoft TSR Specification

INT 15 AH=00

INT 15 AH=01

INT 15 AH=02

INT 15 AH=03

INT 15 AH=04

INT 15 AH=05

INT 15 AH=06

INT 15 AH=07

INT 15 AH=08

INT 15 AH=09

INT 15 AH=0A

INT 15 AH=0B

INT 15 AH=0C

INT 15 AH=0D

INT 15 AH=0E

INT 15 AH=0F

INT 15 AH=10

INT 15 AH=11

INT 15 AH=12

INT 15 AH=13

INT 15 AH=14

INT 15 AH=15

INT 15 AH=16

INT 15 AH=17

INT 15 AH=18

INT 15 AH=19

INT 15 AH=1A

INT 15 AH=1B

INT 15 AH=1C

INT 15 AH=1D

INT 15 AH=1E

INT 15 AH=1F

INT 15 AH=20

INT 15 AH=21  INT 15 - SYSTEM - POWER-ON SELF-TEST ERROR LOG (PS50+)

INT 15 AH=22  INT 15 U - SYSTEM - LOCATE ROM BASIC (later PS/2's only)

INT 15 AX=2400

INT 15 AH=40

INT 15 AH=41  INT 15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE)

INT 15 AH=42

INT 15 AH=43  INT 15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE)

INT 15 AH=44  INT 15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE)

INT 15 AX=4600

INT 15 AX=4900  INT 15 - Far East MSDOS - GET DOS TYPE

INT 15 AX=4DD4  INT 15 - HP 95LX - INSTALLATION CHECK

INT 15 AH=4E  INT 15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP

INT 15 AH=4F  INT 15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)

INT 15 AH=50  INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE

INT 15 AH=51  INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE

INT 15 AH=52  INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT

INT 15 AX=5300

INT 15 AX=5400

INT 15 AH=80  INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)

INT 15 AH=81  INT 15 C - OS HOOK - DEVICE CLOSE

INT 15 AH=82  INT 15 C - OS HOOK - PROGRAM TERMINATION

INT 15 AH=83  INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)

INT 15 AH=84  INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)

INT 15 AH=85  INT 15 C - OS HOOK - SysRq KEY ACTIVITY (AT,PS)

INT 15 AH=86  INT 15 - BIOS - WAIT (AT,PS)

INT 15 AH=87  INT 15 - SYSTEM - COPY EXTENDED MEMORY

INT 15 AH=88  INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)

INT 15 AH=89  INT 15 - SYSTEM - SWITCH TO PROTECTED MODE

INT 15 AH=90  INT 15 - OS HOOK - DEVICE BUSY (AT,PS)

INT 15 AH=91  INT 15 - OS HOOK - DEVICE POST (AT,PS)

INT 15 AH=BC  INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED

INT 15 AX=BF00

INT 15 AH=C0  INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)

INT 15 AH=C1  INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)

INT 15 AX=C200

INT 15 AH=C3  INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)

INT 15 AH=C4  INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)

INT 15 AH=C5  INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)

INT 15 AH=C6  INT 15 U - later PS/2 models - GET POS DATA

INT 15 AH=C7  INT 15 U - PS/2 Model 95 - ???

INT 15 AH=C8  INT 15 U - PS/2 Model 95 - ???

INT 15 AH=C9  INT 15 U - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION

INT 15 AH=CA  INT 15 U - PS/2 Model 95 - ???

INT 15 AH=CB  INT 15 U - PS/2 Model 95 - ???

INT 15 AH=CC  INT 15 U - PS/2 Model 95 - ???

INT 15 AH=CD  INT 15 U - PS/2 Model 95 - ???

INT 15 AH=CE  INT 15 U - PS/2 Model 95 - ???

INT 15 AH=CF  INT 15 U - PS/2 Model 95 - ???

INT 15 AX=D800

INT 15 AX=DE00

INT 15 AX=E00F  INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH

INT 15 AX=E10E  INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH

INT 15 AX=E200  INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE

INT 15 AH=E4  INT 15 - ???

INT 15 AX=F200  INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALISATION CHECK ???


INT 16

INT 16 AH=00  INT 16 - KEYBOARD - GET KEYSTROKE

INT 16 AH=01  INT 16 - KEYBOARD - CHECK FOR KEYSTROKE

INT 16 AH=02  INT 16 - KEYBOARD - GET SHIFT FLAGS

INT 16 AH=03  INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY

INT 16 AH=04  INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)

INT 16 AH=05

INT 16 AH=09  INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY

INT 16 AH=0A  INT 16 - KEYBOARD - GET KEYBOARD ID

INT 16 AH=10  INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)

INT 16 AH=11  INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)

INT 16 AH=12  INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)

INT 16 AH=20  INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE???

INT 16 AH=21  INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE???

INT 16 AH=22  INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS???

INT 16 AX=4252

INT 16 AX=4500

INT 16 AX=5000

INT 16 AH=51  INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS

INT 16 AX=5500

INT 16 AX=6969

INT 16 AX=6F00

INT 16 AH=70  INT 16 - FAKEY.COM - INSTALLATION CHECK

INT 16 AH=71  INT 16 - FAKEY.COM - PUSH KEYSTROKES

INT 16 AH=72  INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES

INT 16 AH=73  INT 16 - FAKEY.COM - PLAY TONES

INT 16 AH=75  INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING

INT 16 AH=76  INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE

INT 16 AH=77

INT 16 AH=79  INT 16 - pcANYWHERE III - CHECK STATUS

INT 16 AH=7A  INT 16 - pcANYWHERE III - CANCEL SESSION

INT 16 AX=7B00

INT 16 AH=7C  INT 16 - pcANYWHERE III - GET PORT CONFIGURATION

INT 16 AH=7D  INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS

INT 16 AH=7E  INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT

INT 16 AH=7F  INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE

INT 16 AH=80  INT 16 - MAKEY.COM - INSTALLATION CHECK

INT 16 AX=8765  INT 16 - AT.COM version 8/26/87 - API

INT 16 AH=92  INT 16 - ???

INT 16 AH=99  INT 16 - SCOUT v5.4 - GET ???

INT 16 AH=9E  INT 16 - SCOUT v5.4 - INSTALLATION CHECK

INT 16 AH=A2  INT 16 - ???

INT 16 AH=AA  INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS

INT 16 AH=CA

INT 16 AX=E0E0  INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK

INT 16 AH=ED  INT 16 - BORLAND TURBO LIGHTNING - API

INT 16 AH=F0

INT 16 AH=F1  INT 16 - Compaq 386 - READ CURRENT CPU SPEED

INT 16 AH=F2  INT 16 - Compaq 386 - DETERMINE ATTACHED KEYBOARD TYPE

INT 16 AH=F3

INT 16 AX=F400

INT 16 AX=FA00

INT 16 AX=FE55

INT 16 AH=FF


INT 17

INT 17  INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK

INT 17  INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK

INT 17  INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK

INT 17  INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK

INT 17 AH=00  INT 17 - PRINTER - WRITE CHARACTER

INT 17 AH=01  INT 17 - PRINTER - INITIALIZE PORT

INT 17 AH=02

INT 17 AH=20  INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER

INT 17 AX=2400

INT 17 AX=5000

INT 17 AH=51  INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION

INT 17 AH=52  INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION

INT 17 AH=60  INT 17 - FLASHUP.COM - INSTALLATION CHECK

INT 17 AH=61  INT 17 - SPEEDSCR.COM - INSTALLATION CHECK

INT 17 AH=81  INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER

INT 17 AH=82  INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER

INT 17 AH=83  INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES

INT 17 AH=84

INT 17 AH=85  INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION

INT 17 AH=87  INT 17 - Alloy NTNX - SET INDOS POINTER

INT 17 AH=88  INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER

INT 17 AH=89  INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER

INT 17 AH=8A  INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER

INT 17 AH=8B  INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME

INT 17 AH=8C  INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER

INT 17 AH=8D  INT 17 - Alloy NTNX,MW386 - RESET SPOOLER

INT 17 AH=8E  INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT

INT 17 AH=8F  INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT

INT 17 AH=90  INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME

INT 17 AH=91  INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER

INT 17 AH=92  INT 17 - Alloy NTNX - CHECK PRINTER DRIVER

INT 17 AH=94  INT 17 - Alloy NTNX, MW386 - SELECT PRINTER

INT 17 AH=95  INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER

INT 17 AH=96  INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS

INT 17 AH=97  INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK

INT 17 AH=98  INT 17 - Alloy NTNX,MW386 - RESTART PRINTER

INT 17 AH=99  INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE

INT 17 AH=9A  INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION

INT 17 AH=9B  INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT

INT 17 AH=A0  INT 17 - Alloy MW386 - SPOOL COPY OF FILE

INT 17 AH=A4  INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED

INT 17 AH=A6  INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE

INT 17 AH=A7  INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS

INT 17 AH=A8  INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME

INT 17 AH=A9  INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE

INT 17 AH=AA  INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS

INT 17 AH=AF  INT 17 - Alloy MW386 - CHECK SPOOLER

INT 17 AH=C0  INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS

INT 17 AH=C1  INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD

INT 17 AH=C2  INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES

INT 17 AH=C3  INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)

INT 17 AH=C4  INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE

INT 17 AH=C5  INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE

INT 17 AH=C6  INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS

INT 17 AH=C7  INT 17 - PC Magazine PCSpool - CLOSE QUEUE

INT 17 AX=CD00

INT 17 AH=F0  INT 17 - NorthNet Jetstream API - INSTALLATION CHECK

INT 17 AH=F1  INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER

INT 17 AH=F2  INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS

INT 17 AH=F3  INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION

INT 17 AH=F4  INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS

INT 17 AH=F5  INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY


INT 18

INT 18  INT 18 - START CASSETTE BASIC

INT 18 AH=00  INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE

INT 18 AH=01  INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE

INT 18 AH=02  INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS

INT 18 AH=03  INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE

INT 18 AH=04  INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED

INT 18  INT 18 - NEC PC-9800 series - VIDEO


INT 1A

INT 1A AH=00  INT 1A - TIME - GET SYSTEM TIME

INT 1A AH=01  INT 1A - TIME - SET SYSTEM TIME

INT 1A AH=02  INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)

INT 1A AH=03  INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)

INT 1A AH=04  INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)

INT 1A AH=05  INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)

INT 1A AH=06  INT 1A - TIME - SET ALARM (AT,XT286,PS)

INT 1A AH=07  INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)

INT 1A AH=08  INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)

INT 1A AH=09  INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)

INT 1A AH=0A  INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)

INT 1A AH=0B  INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)

INT 1A AH=10  INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE

INT 1A AH=11  INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER

INT 1A AH=12  INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS

INT 1A AX=3601  INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK

INT 1A AX=6108  INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY

INT 1A AX=6205  INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY

INT 1A AX=6308  INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION

INT 1A AX=6405  INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION

INT 1A AX=6900  INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT

INT 1A AX=6A01  INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT

INT 1A AX=6B01  INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT

INT 1A AX=6C04  INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE

INT 1A AX=6D04  INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE

INT 1A AX=6E01  INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???

INT 1A AX=6F01  INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK

INT 1A AX=7002  INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"

INT 1A AX=7101  INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"

INT 1A AX=7202  INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS

INT 1A AX=7302  INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???

INT 1A AX=7400  INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION

INT 1A AH=75  INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???

INT 1A AH=76  INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???

INT 1A AH=77  INT 1A - SNAP.EXE 3.4 - ???

INT 1A AX=7802  INT 1A - SNAP.EXE 3.4 - ???

INT 1A AH=7F  INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???

INT 1A AH=80  INT 1A - PCjr - SET UP SOUND MULTIPLEXOR

INT 1A AX=8100  INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK

INT 1A AH=83  INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND

INT 1A AH=84  INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND

INT 1A AH=85  INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???

INT 1A AH=A0  INT 1A - Disk Spool II v2.07 - INSTALLATION CHECK

INT 1A AH=AB  INT 1A - Disk Spool II v1.83 - INSTALLATION CHECK

INT 1A AH=AC  INT 1A - Disk Spool II v1.83 - INSTALLATION CHECK

INT 1A AH=AD  INT 1A - Disk Spool II v1.83 - FUNCTION CALLS

INT 1A AH=C0  INT 1A - Disk Spool II v2.07 - ALTERNATE INSTALLATION CHECK

INT 1A AH=D0  INT 1A - Disk Spool II v2.07 - FUNCTION CALLS

INT 1A AH=F7  INT 1A - RighTime v1.1 - TEMPORARILY DISABLE

INT 1A AH=F8  INT 1A - RighTime v1.1 - ENABLE

INT 1A AH=FE  INT 1A - AT&T 6300 - READ TIME AND DATE

INT 1A AH=FF


INT 20

INT 20  INT 20 - Minix - SEND/RECEIVE MESSAGE

INT 20  INT 20 - DOS 1+ - TERMINATE PROGRAM


INT 21

INT 21 AH=00  INT 21 - DOS 1+ - TERMINATE PROGRAM

INT 21 AH=01  INT 21 - DOS 1+ - READ CHARACTER FROM STANDARD INPUT, WITH ECHO

INT 21 AH=02  INT 21 - DOS 1+ - WRITE CHARACTER TO STANDARD OUTPUT

INT 21 AH=03  INT 21 - DOS 1+ - READ CHARACTER FROM STDAUX

INT 21 AH=04  INT 21 - DOS 1+ - WRITE CHARACTER TO STDAUX

INT 21 AH=05  INT 21 - DOS 1+ - WRITE CHARACTER TO PRINTER

INT 21 AH=06

INT 21 AH=07  INT 21 - DOS 1+ - DIRECT CHARACTER INPUT, WITHOUT ECHO

INT 21 AH=08  INT 21 - DOS 1+ - CHARACTER INPUT WITHOUT ECHO

INT 21 AH=09  INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT

INT 21 AH=0A

INT 21 AH=0B

INT 21 AH=0C  INT 21 - DOS 1+ - FLUSH BUFFER AND READ STANDARD INPUT

INT 21 AH=0D

INT 21 AH=0E  INT 21 - DOS 1+ - SELECT DEFAULT DRIVE

INT 21 AH=0F  INT 21 - DOS 1+ - OPEN FILE USING FCB

INT 21 AH=10  INT 21 - DOS 1+ - CLOSE FILE USING FCB

INT 21 AH=11  INT 21 - DOS 1+ - FIND FIRST MATCHING FILE USING FCB

INT 21 AH=12  INT 21 - DOS 1+ - FIND NEXT MATCHING FILE USING FCB

INT 21 AH=13  INT 21 - DOS 1+ - DELETE FILE USING FCB

INT 21 AH=14  INT 21 - DOS 1+ - SEQUENTIAL READ FROM FCB FILE

INT 21 AH=15  INT 21 - DOS 1+ - SEQUENTIAL WRITE TO FCB FILE

INT 21 AH=16  INT 21 - DOS 1+ - CREATE OR TRUNCATE FILE USING FCB

INT 21 AH=17  INT 21 - DOS 1+ - RENAME FILE USING FCB

INT 21 AH=18  INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

INT 21 AH=19  INT 21 - DOS 1+ - GET CURRENT DEFAULT DRIVE

INT 21 AH=1A  INT 21 - DOS 1+ - SET DISK TRANSFER AREA ADDRESS

INT 21 AH=1B  INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR DEFAULT DRIVE

INT 21 AH=1C  INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR SPECIFIC DRIVE

INT 21 AH=1D  INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

INT 21 AH=1E  INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

INT 21 AH=1F  INT 21 - DOS 1+ - GET DRIVE PARAMETER BLOCK FOR DEFAULT DRIVE

INT 21 AH=20  INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

INT 21 AH=21  INT 21 - DOS 1+ - READ RANDOM RECORD FROM FCB FILE

INT 21 AH=22  INT 21 - DOS 1+ - WRITE RANDOM RECORD TO FCB FILE

INT 21 AH=23  INT 21 - DOS 1+ - GET FILE SIZE FOR FCB

INT 21 AH=24  INT 21 - DOS 1+ - SET RANDOM RECORD NUMBER FOR FCB

INT 21 AH=25

INT 21 AH=26  INT 21 - DOS 1+ - CREATE NEW PROGRAM SEGMENT PREFIX

INT 21 AH=27  INT 21 - DOS 1+ - RANDOM BLOCK READ FROM FCB FILE

INT 21 AH=28  INT 21 - DOS 1+ - RANDOM BLOCK WRITE TO FCB FILE

INT 21 AH=29  INT 21 - DOS 1+ - PARSE FILENAME INTO FCB

INT 21 AH=2A  INT 21 - DOS 1+ - GET SYSTEM DATE

INT 21 AH=2B

INT 21 AH=2C  INT 21 - DOS 1+ - GET SYSTEM TIME

INT 21 AH=2D  INT 21 - DOS 1+ - SET SYSTEM TIME

INT 21 AH=2E  INT 21 - DOS 1+ - SET VERIFY FLAG

INT 21 AH=2F  INT 21 - DOS 2+ - GET DISK TRANSFER AREA ADDRESS

INT 21 AH=30

INT 21 AH=31  INT 21 - DOS 2+ - TERMINATE AND STAY RESIDENT

INT 21 AH=32  INT 21 - DOS 2+ - GET DOS DRIVE PARAMETER BLOCK FOR SPECIFIC DRIVE

INT 21 AH=33

INT 21 AH=34  INT 21 - DOS 2+ - GET ADDRESS OF INDOS FLAG

INT 21 AH=35

INT 21 AH=36  INT 21 - DOS 2+ - GET FREE DISK SPACE

INT 21 AX=3700

INT 21 AH=38

INT 21 AH=39  INT 21 - DOS 2+ - "MKDIR" - CREATE SUBDIRECTORY

INT 21 AH=3A  INT 21 - DOS 2+ - "RMDIR" - REMOVE SUBDIRECTORY

INT 21 AH=3B  INT 21 - DOS 2+ - "CHDIR" - SET CURRENT DIRECTORY

INT 21 AH=3C  INT 21 - DOS 2+ - "CREAT" - CREATE OR TRUNCATE FILE

INT 21 AH=3D

INT 21 AH=3E  INT 21 - DOS 2+ - "CLOSE" - CLOSE FILE

INT 21 AH=3F

INT 21 AH=40

INT 21 AH=41

INT 21 AH=42

INT 21 AX=4300

INT 21 AX=4400

INT 21 AH=45  INT 21 - DOS 2+ - "DUP" - DUPLICATE FILE HANDLE

INT 21 AH=46  INT 21 - DOS 2+ - "DUP2", "FORCEDUP" - FORCE DUPLICATE FILE HANDLE

INT 21 AH=47  INT 21 - DOS 2+ - "CWD" - GET CURRENT DIRECTORY

INT 21 AH=48  INT 21 - DOS 2+ - ALLOCATE MEMORY

INT 21 AH=49  INT 21 - DOS 2+ - FREE MEMORY

INT 21 AH=4A  INT 21 - DOS 2+ - RESIZE MEMORY BLOCK

INT 21 AH=4B

INT 21 AH=4C  INT 21 - DOS 2+ - "EXIT" - TERMINATE WITH RETURN CODE

INT 21 AH=4D  INT 21 - DOS 2+ - GET RETURN CODE

INT 21 AH=4E

INT 21 AH=4F  INT 21 - DOS 2+ - "FINDNEXT" - FIND NEXT MATCHING FILE

INT 21 AH=50  INT 21 - DOS 2+ internal - SET CURRENT PROCESS ID (SET PSP ADDRESS)

INT 21 AH=51  INT 21 - DOS 2+ internal - GET CURRENT PROCESS ID (GET PSP ADDRESS)

INT 21 AH=52

INT 21 AH=53  INT 21 - DOS 2+ internal - TRANSLATE BIOS PARAMETER BLOCK TO DRIVE PARAM BLOCK

INT 21 AH=54  INT 21 - DOS 2+ - GET VERIFY FLAG

INT 21 AH=55  INT 21 - DOS 2+ internal - CREATE CHILD PSP

INT 21 AH=56  INT 21 - DOS 2+ - "RENAME" - RENAME FILE

INT 21 AX=5700

INT 21 AH=58

INT 21 AH=59

INT 21 AH=5A  INT 21 - DOS 3+ - CREATE TEMPORARY FILE

INT 21 AH=5B  INT 21 - DOS 3+ - CREATE NEW FILE

INT 21 AH=5C  INT 21 - DOS 3+ - "FLOCK" - RECORD LOCKING

INT 21 AX=5D00

INT 21 AX=5E00

INT 21 AX=5F00

INT 21 AH=60  INT 21 - DOS 3.0+ - CANONICALIZE FILENAME OR PATH

INT 21 AH=61  INT 21 - DOS 3+ - UNUSED

INT 21 AH=62  INT 21 - DOS 3+ - GET CURRENT PSP ADDRESS

INT 21 AX=6300

INT 21 AH=64

INT 21 AH=65

INT 21 AX=6601

INT 21 AH=67  INT 21 - DOS 3.3+ - SET HANDLE COUNT

INT 21 AH=68  INT 21 - DOS 3.3+ - "FFLUSH" - COMMIT FILE

INT 21 AH=69

INT 21 AH=6A  INT 21 U - DOS 4+ - COMMIT FILE

INT 21 AH=6B

INT 21 AX=6C00  INT 21 - DOS 4+ - EXTENDED OPEN/CREATE

INT 21 AX=7070

INT 21 AH=76  INT 21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK

INT 21 AX=7761

INT 21 AH=7F  INT 21 - VIRUS - "Squeaker" - INSTALLATION CHECK

INT 21 AH=80

INT 21 AH=81  INT 21 - European MSDOS 4.0 - "FREEZE" - STOP A PROCESS

INT 21 AH=82  INT 21 - European MSDOS 4.0 - "RESUME" - RESTART A PROCESS

INT 21 AH=83

INT 21 AH=84

INT 21 AH=85  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=86  INT 21 - European MSDOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE

INT 21 AH=87  INT 21 - European MSDOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER

INT 21 AH=88  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=89

INT 21 AH=8A  INT 21 - European MSDOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE

INT 21 AH=8B  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=8C  INT 21 - European MSDOS 4.0 - SET SIGNAL HANDLER

INT 21 AH=8D  INT 21 - European MSDOS 4.0 - SEND SIGNAL

INT 21 AX=8E00  INT 21 - European MSDOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY

INT 21 AH=8F  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=90

INT 21 AH=91  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=92  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=93  INT 21 - European MSDOS 4.0 - "PIPE" - CREATE A NEW PIPE

INT 21 AH=94  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=95  INT 21 - European MSDOS 4.0 - HARD ERROR PROCESSING

INT 21 AH=96  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=97

INT 21 AH=98  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=99  INT 21 u - European MSDOS 4.0 - "PBLOCK" - BLOCK A PROCESS

INT 21 AH=9A  INT 21 u - European MSDOS 4.0 - "PRUN" - UNBLOCK A PROCESS

INT 21 AH=A0  INT 21 - Attachmate Extra - GET 3270 DISPLAY STATE

INT 21 AH=A1

INT 21 AH=A2  INT 21 - Attachmate Extra - SET HOST WINDOW STATE

INT 21 AH=A3  INT 21 - Attachmate Extra - SEND KEYSTROKES TO HOST WINDOW

INT 21 AH=A4  INT 21 - Attachmate Extra - GET HOST WINDOW BUFFER ADDRESS

INT 21 AH=A5

INT 21 AX=AA00

INT 21 AH=AB  INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK

INT 21 AH=AF  INT 21 - Attachmate Extra - GET TRANSLATE TABLE ADDRESS

INT 21 AH=B5  INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL

INT 21 AH=B6  INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES

INT 21 AH=B8

INT 21 AH=BB

INT 21 AH=BC  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD

INT 21 AH=BD  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD

INT 21 AH=BE

INT 21 AH=BF  INT 21 - Novell NetWare 4.6, Alloy NTNX - LOG/LOCK RECORD (FCB)

INT 21 AH=C0

INT 21 AH=C1

INT 21 AH=C2

INT 21 AH=C3

INT 21 AH=C4  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET

INT 21 AX=C500

INT 21 AH=C6

INT 21 AX=C700

INT 21 AH=C8  INT 21 - Novell NetWare 4.0 - BEGIN LOGICAL FILE LOCKING

INT 21 AH=C9  INT 21 - Novell NetWare 4.0 - END LOGICAL FILE LOCKING

INT 21 AH=CA

INT 21 AH=CB

INT 21 AH=CC

INT 21 AH=CD

INT 21 AH=CE  INT 21 - Novell NetWare 4.0, Alloy NTNX - CLEAR FILE (FCB)

INT 21 AH=CF

INT 21 AH=D0

INT 21 AH=D1  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET

INT 21 AH=D2  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD

INT 21 AH=D3  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET

INT 21 AH=D4  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD

INT 21 AH=D5

INT 21 AH=D6  INT 21 - Novell NetWare - WORKSTATION - END OF JOB

INT 21 AH=D7  INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT

INT 21 AH=D8  INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE

INT 21 AH=D9  INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE

INT 21 AH=DA

INT 21 AH=DB  INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES

INT 21 AH=DC

INT 21 AH=DD

INT 21 AH=DE

INT 21 AH=DF

INT 21 AH=E0

INT 21 AH=E1

INT 21 AH=E2

INT 21 AH=E3

INT 21 AH=E4

INT 21 AH=E5

INT 21 AH=E6

INT 21 AH=E7

INT 21 AH=E8

INT 21 AH=E9

INT 21 AH=EA

INT 21 AH=EB

INT 21 AH=EC

INT 21 AH=ED

INT 21 AH=EE

INT 21 AX=EF00

INT 21 AH=F0

INT 21 AH=F1

INT 21 AH=F2

INT 21 AH=F3

INT 21 AX=F400  INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS

INT 21 AH=F5  INT 21 - DoubleDOS - OTHER PROGRAM STATUS

INT 21 AH=F7  INT 21 - VIRUS - "GP1" - INSTALLATION CHECK

INT 21 AH=F8

INT 21 AH=F9

INT 21 AH=FA

INT 21 AH=FB

INT 21 AH=FC

INT 21 AH=FD

INT 21 AH=FE

INT 21 AH=FF


INT 25

INT 25  INT 25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M)

INT 25  INT 25 - DOS 3.31+ - ABSOLUTE DISK READ (>32M hard-disk partition)

INT 25 AX=CDCD  INT 25 - Stacker - GET DEVICE DRIVER ADDRESS

INT 25  INT 25 - PC-CACHE.SYS - INSTALLATION CHECK


INT 26

INT 26  INT 26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M)

INT 26  INT 26 - DOS 3.31+ - ABSOLUTE DISK WRITE (>32M hard-disk partition)


INT 2A

INT 2A AH=00

INT 2A AH=01  INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NETBIOS REQUEST,NO ERROR RETRY

INT 2A AH=02  INT 2A - NETWORK (Microsoft) - SET NET PRINTER MODE

INT 2A AX=0300  INT 2A - NETWORK (Microsoft,LANtastic) - CHECK DIRECT I/O

INT 2A AH=04  INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NetBIOS REQUEST

INT 2A AX=0500  INT 2A - NETWORK (Microsoft,LANtastic) - GET NETWORK RESOURCE AVAILABILITY

INT 2A AH=06  INT 2A - NETBIOS, LANtastic - NETWORK PRINT-STREAM CONTROL

INT 2A AX=2001

INT 2A AX=7802  INT 2A - NETWORK - PC LAN PROG v1.31+ - GET LOGGED ON USER NAME

INT 2A AH=80  INT 2A C - NETWORK - BEGIN DOS CRITICAL SECTION

INT 2A AH=81  INT 2A C - NETWORK - END DOS CRITICAL SECTION

INT 2A AH=82  INT 2A C - NETWORK - END DOS CRITICAL SECTIONS 0 THROUGH 7

INT 2A AH=84  INT 2A C - Microsoft Networks - KEYBOARD BUSY LOOP

INT 2A AH=87  !!!

INT 2A AH=89  INT 2A - Network - ???

INT 2A AH=90  INT 2A - IBM PC 3270 EMULATION PROGRAM - ???

INT 2A AH=C2  INT 2A - Network - ???

INT 2A AX=FF90


INT 2C

INT 2C  INT 2C - DOS 2+ - RESERVED

INT 2C  INT 2C - STARLITE architecture - KERNEL API


INT 2D

INT 2D  INT 2D - DOS 2+ - RESERVED

INT 2D  INT 2D - ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.5]


INT 2E

INT 2E  INT 2E - DOS 2+ - PASS COMMAND TO COMMAND INTERPRETER FOR EXECUTION

INT 2E  INT 2E - 4DOS v2.x-3.03 SHELL2E.COM - UNINSTALL


INT 2F

INT 2F  INT 2F - Multiplex - NOTES

INT 2F  INT 2F - BMB Compuscience Canada Utilities Interface

INT 2F  INT 2F - Ross Wentworth's Turbo Pascal POPUP LIBRARY

INT 2F  INT 2F - CiriSOFT Spanish University of Valladolid TSR's Interface

INT 2F AH=00

INT 2F AH=01

INT 2F AX=0200

INT 2F  INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

INT 2F AX=0500

INT 2F AX=0600

INT 2F AX=0800

INT 2F AX=1000

INT 2F AX=1100

INT 2F AX=1200

INT 2F AH=13  INT 2F U - DOS 3.2+ - SET DISK INTERRUPT HANDLER

INT 2F AX=1400

INT 2F AX=1500

INT 2F AX=1600

INT 2F AX=1700

INT 2F AX=1900

INT 2F AX=1A00

INT 2F AX=1B00

INT 2F AX=2300

INT 2F AX=2700

INT 2F AH=2A  INT 2F - Gammafax DOS Dispatcher INTERFACE

INT 2F AX=3900

INT 2F AX=4000

INT 2F AH=41  INT 2F - LAN Manager 2.0 DOS Enhanced NETPOPUP.EXE - NETWORK POP-UP SERVICE

INT 2F AH=42  INT 2F - LAN Manager 2.0 DOS Enhanced MSRV.EXE - MESSENGER SERVICE

INT 2F AX=4300

INT 2F AH=44  INT 2F U - ???

INT 2F AX=4500

INT 2F AX=4601

INT 2F AX=4800

INT 2F AX=4A00

INT 2F AH=4B

INT 2F AX=4E53  INT 2F U - SilverNET - API

INT 2F AH=53  INT 2F U - ???

INT 2F AH=54

INT 2F AX=5500  INT 2F U - DOS v5.0 - COMMAND.COM INTERFACE

INT 2F AX=6282

INT 2F AX=6400  INT 2F - SCRNSAV2.COM - INSTALLATION CHECK

INT 2F AX=7000

INT 2F AX=7200  INT 2F - SRDISK v1.30 - INSTALLATION CHECK

INT 2F AX=7A00

INT 2F AX=7F24

INT 2F AX=8000

INT 2F AX=8100

INT 2F AH=82

INT 2F AH=86  INT 2F U - ???

INT 2F AX=8900

INT 2F AX=9000

INT 2F AH=92

INT 2F AH=93  INT 2F - InnerMission v1.7+ - INSTALLATION CHECK

INT 2F AH=9C  INT 2F - Couriers LAN E-Mail OPERATOR.EXE - API

INT 2F AH=A1

INT 2F AX=A4E0  INT 2F - Futurus Team - INSTALLATION CHECK

INT 2F AX=A900

INT 2F AX=AA00  INT 2F - VIDCLOCK.COM - INSTALLATION CHECK

INT 2F AX=AB00

INT 2F AX=AC00  INT 2F - DOS 4.01+ GRAPHICS.COM - INSTALLATION CHECK

INT 2F AX=AD00

INT 2F AX=AE00

INT 2F AX=B000

INT 2F AX=B400

INT 2F AX=B700

INT 2F AX=B800

INT 2F AX=B900

INT 2F AX=BC00

INT 2F AX=BE00  INT 2F - REDVIEW - INSTALLATION CHECK

INT 2F AX=BF00

INT 2F AH=C0

INT 2F AX=0C06

INT 2F AX=C900

INT 2F AX=CA00

INT 2F AX=CB00

INT 2F AH=CC  INT 2F U - Qualitas Qcach v4.00

INT 2F AX=CD00

INT 2F AX=CF00  INT 2F - TEMPLEXX - INSTALLATION CHECK

INT 2F AX=D000

INT 2F AX=D100

INT 2F AX=D200

INT 2F AX=D300

INT 2F AX=D44D

INT 2F AX=D600

INT 2F AX=D701

INT 2F AX=D800

INT 2F AX=DA00

INT 2F AX=DC00

INT 2F AH=DD  INT 2F - SoftCom programs - API

INT 2F AX=DE00

INT 2F AX=DF00  INT 2F - HyperWare programs - INSTALLATION CHECK

INT 2F AX=E000

INT 2F AX=E300

INT 2F AX=E44D

INT 2F AX=ED00

INT 2F AX=EE00  INT 2F - GRIDLOC.EXE - INSTALLATION CHECK

INT 2F AX=F000

INT 2F AH=F1

INT 2F AX=F700

INT 2F AX=F800

INT 2F AH=FB

INT 2F AX=FE00

INT 2F AX=FF00


INT 31

INT 31  INT 31 - overwritten by CP/M jump instruction in INT 30

INT 31 AX=0000

INT 31 AX=0100

INT 31 AX=0200

INT 31 AX=0300

INT 31 AX=0400

INT 31 AX=0500

INT 31 AX=0600

INT 31 AX=0700

INT 31 AX=0800

INT 31 AX=0900

INT 31 AX=0A00  INT 31 P - DPMI 0.9+ - GET VENDOR SPECIFIC API ENTRY POINT

INT 31 AX=0B00

INT 31 AX=0C00

INT 31 AX=0D00

INT 31 AX=0E00


INT 33

INT 33 AX=0000

INT 33 AX=012E  INT 33 - MS MOUSE v8.10+ - ???

INT 33 AX=022E  INT 33 - MS MOUSE v8.10+ - ???

INT 33 AX=136C  INT 33 - LOGITECH MOUSE v6.10+ - ???

INT 33 AX=146C  INT 33 - LOGITECH MOUSE v6.10+ - GET/SET ???

INT 33 AX=156C  INT 33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS

INT 33 AX=166C  INT 33 - LOGITECH MOUSE v6.10+ - ???

INT 33 AX=176C  INT 33 - LOGITECH MOUSE v6.10+ - ???

INT 33 AX=186C  INT 33 - LOGITECH MOUSE v6.10+ - ???

INT 33 AX=196C  INT 33 - LOGITECH MOUSE v6.10+ - ???

INT 33 AX=1A6C  INT 33 - LOGITECH MOUSE v6.10+ - GET ???

INT 33 AX=1B6C  INT 33 - LOGITECH MOUSE v6.10+ - SET ???

INT 33 AX=1C6C  INT 33 - LOGITECH MOUSE v6.10+ - ???

INT 33 AX=1D6C  INT 33 - LOGITECH MOUSE - GET COMPASS PARAMETER

INT 33 AX=1E6C  INT 33 - LOGITECH MOUSE - SET COMPASS PARAMETER

INT 33 AX=1F6C  INT 33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION

INT 33 AX=206C  INT 33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER

INT 33 AX=216C  INT 33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER

INT 33 AX=226C  INT 33 - LOGITECH MOUSE - REMOVE DRIVER FROM MEMORY

INT 33 AX=236C  INT 33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION

INT 33 AX=246C  INT 33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE

INT 33 AX=256C  INT 33 - LOGITECH MOUSE - SET PARAMETERS

INT 33 AX=266C  INT 33 - LOGITECH MOUSE - GET VERSION???

INT 33 AX=276C  INT 33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400

INT 33 AX=3000

INT 33  INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION

INT 33  INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION

INT 33 AX=4F00


INT 38

INT 38  INT 38 - FLOATING POINT EMULATION - OPCODE DCh

INT 38 AH=02  INT 38 - PC-MOS/386 v3.0 - GET MOS INTERNAL DATA POINTER

INT 38 AH=04  INT 38 - PC-MOS/386 v3.0 - GET TASK CONTROL BLOCK

INT 38 AX=0703  INT 38 - PC-MOS/386 v3.0 - WAIT FOR KEYPRESS OR TIMEOUT

INT 38 AH=10  INT 38 - PC-MOS/386 v3.0 - ENTER NATIVE 386 EXECUTION MODE

INT 38 AH=11  INT 38 - PC-MOS/386 v3.0 - ALLOCATE NATIVE MODE MEMORY BLOCK

INT 38 AH=12  INT 38 - PC-MOS/386 v3.0 - FREE NATIVE MODE MEMORY BLOCK


INT 3F

INT 3F  INT 3F - Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM)

INT 3F  INT 3F - Microsoft Dynamic Link Library manager


INT 40

INT 40  INT 40 - DISKETTE - ROM BIOS DISKETTE HANDLER RELOCATED BY HARD DISK BIOS

INT 40  INT 40 - Z100 - Master 8259 - Parity error or S100 error

INT 40  INT 40 - Acorn BBC Master 512 - "OSFIND" - OPEN FILE


INT 41

INT 41  INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE

INT 41  INT 41 - Z100 - Master 8259 - Processor Swap

INT 41  INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT

INT 41 AH=12  INT 41 P - MS Windows debugging kernel - "OutputDebugString"

INT 41 AH=50  INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"


INT 42

INT 42  INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA)

INT 42  INT 42 - Z100 - Master 8259 - Timer

INT 42  INT 42 - Acorn BBS Master 512 - "OSBPUT" - WRITE SINGLE BYTE TO FILE


INT 43

INT 43  INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA)

INT 43  INT 43 - Z100 - Master 8259 - Slave 8259 input

INT 43  INT 43 - Acorn BBC Master 512 - "OSBGET" - READ SINGLE BYTE FROM FILE


INT 44

INT 44  INT 44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr)

INT 44  INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE API

INT 44  INT 44 - IBM 3270-PC High Level Language API

INT 44  INT 44 - Z100 - Master 8259 - Serial A

INT 44  INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE


INT 45

INT 45  INT 45 - Z100 - Master 8259 - Serial B

INT 45  INT 45 - Acorn BBC Master 512 - "OSFILE" - READ/WRITE FILE OR DIRECTORY INFO


INT 46

INT 46  INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE

INT 46  INT 46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen

INT 46  INT 46 - Acorn BBC Master 512 - "OSRDCH" - GET CHARACTER FROM CUR INPUT STREAM


INT 47

INT 47  INT 47 - Z100 - Master 8259 - Printer

INT 47  INT 47 - Acorn BBC Master 512 - "OSWRCH" - WRITE CHARACTER TO CUR OUTPUT STREAM

INT 47 AX=8000


INT 48

INT 48  INT 48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr)

INT 48  INT 48 - Z100 - Slave 8259 - S100 vectored line 0

INT 48  INT 48 - Watstar PC Network data pointer 1

INT 48  INT 48 - Acorn BBC Master 512 - "OSNEWL" - SEND NEWLINE TO OUTPUT STREAM


INT 49

INT 49  INT 49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr)

INT 49  INT 49 - Z100 - Slave 8259 - S100 vectored line 1

INT 49  INT 49 - Texas Instruments PC - VIDEO I/O???

INT 49  INT 49 - Watstar PC Network data pointer 2

INT 49  INT 49 - Acorn BBC Master 512 - "OSASCI" - WRITE CHARACTER TO CUR OUTPUT STREAM

INT 49 AX=0001


INT 4A

INT 4A  INT 4A C - SYSTEM - USER ALARM HANDLER

INT 4A  INT 4A - Z100 - Slave 8259 - S100 vectored line 2

INT 4A  INT 4A - Acorn BBC Master 512 - "OSWORD" - MISC FUNCTIONS USING CONTROL BLOCK


INT 4B

INT 4B  INT 4B - Z100 - Slave 8259 - S100 vectored line 3

INT 4B  INT 4B - Common Access Method SCSI interface (draft revision 1.9)

INT 4B  INT 4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS

INT 4B AH=80  INT 4B - IBM SCSI interface

INT 4B AX=8102


INT 4C

INT 4C  INT 4C - Z100 - Slave 8259 - S100 vectored line 4

INT 4C  INT 4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE


INT 4E

INT 4E  INT 4E - TI Professional PC - DISK I/O

INT 4E  INT 4E - Z100 - Slave 8259 - S100 vectored line 6


INT 4F

INT 4F  INT 4F - Z100 - Slave 8259 - S100 vectored line 7

INT 4F AX=8100  INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM

INT 4F AX=8200  INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK


INT 50

INT 50  INT 50 - TIL Xpert AIM (X.25)

INT 50  INT 50 - IRQ0 relocated by DESQview

INT 50  INT 50 - IRQ0 relocated by IBM 3278 emulation control program

INT 50  INT 50 - IRQ0 relocated by OS/2 v1.x

INT 50 AX=0000


INT 51

INT 51  INT 51 - through 53 - IRQ1-IRQ3 relocated by DESQview

INT 51  INT 51 - through 53 - IRQ1-IRQ3 relocated by IBM 3278 emulation control program

INT 51  INT 51 - through 53 - IRQ1-IRQ3 relocated by OS/2 v1.x


INT 54

INT 54  INT 54 - through 57 - IRQ4-IRQ7 relocated by DESQview

INT 54  INT 54 - through 57 - IRQ4-IRQ7 relocated by IBM 3278 emulation control program

INT 54  INT 54 - through 57 - IRQ4-IRQ7 relocated by OS/2 v1.x


INT 58

INT 58  INT 58 - IRQ8 relocated by DESQview 2.26+

INT 58  INT 58 - IRQ0 relocated by DoubleDOS


INT 59

INT 59  INT 59 - IRQ9 relocated by DESQview 2.26+

INT 59  INT 59 - IRQ1 relocated by DoubleDOS

INT 59  INT 59 - GSS Computer Graphics Interface (GSS*CGI)


INT 5A

INT 5A  INT 5A - IRQ10 relocated by DESQview 2.26+

INT 5A  INT 5A - IRQ2 relocated by DoubleDOS

INT 5A  INT 5A - Cluster adapter BIOS entry address


INT 5B

INT 5B  INT 5B - IRQ11 relocated by DESQview 2.26+

INT 5B  INT 5B - IRQ3 relocated by DoubleDOS

INT 5B  INT 5B - Used by cluster adapter

INT 5B  INT 5B - AT&T Starlan Extended NetBIOS (variable length names)

INT 5B  INT 5B - Microsoft Network Transport Layer Interface

INT 5B  INT 5B - used by Alloy NTNX

INT 5B  INT 5B - ISOLAN Multi Protocol Software


INT 5C

INT 5C  INT 5C - IRQ12 relocated by DESQview 2.26+

INT 5C  INT 5C - IRQ4 relocated by DoubleDOS

INT 5C  INT 5C - NetBIOS INTERFACE

INT 5C  INT 5C - TOPS INTERFACE

INT 5C  INT 5C - ATALK.SYS - AppleTalk INTERFACE

INT 5C  INT 5C - IBM 802.2 INTERFACE (LLC)

INT 5C  INT 5C - $25 LAN - INSTALLATION CHECK

INT 5C AH=04  INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE


INT 5D

INT 5D  INT 5D - IRQ13 relocated by DESQview 2.26+

INT 5D  INT 5D - IRQ5 relocated by DoubleDOS


INT 5E

INT 5E  INT 5E - IRQ14 relocated by DESQview 2.26+

INT 5E  INT 5E - IRQ6 relocated by DoubleDOS


INT 5F

INT 5F  INT 5F - IRQ15 relocated by DESQview 2.26+

INT 5F  INT 5F - IRQ7 relocated by DoubleDOS

INT 5F AH=00  INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET VIDEO MODE

INT 5F AH=01  INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET FILL MASK

INT 5F AH=02  INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFORMATION

INT 5F AH=03  INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN

INT 5F AH=04  INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET CLIP REGION

INT 5F AH=05  INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW RECTANGLE

INT 5F AH=06  INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW LINE

INT 5F AH=07  INT 5F - HP 95LX GRAPHICS PRIMITIVES - PLOT POINT

INT 5F AH=08  INT 5F - HP 95LX GRAPHICS PRIMITIVES - MOVE PEN

INT 5F AH=09  INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET PEN COLOR

INT 5F AH=0A  INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE

INT 5F AH=0B  INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LINE TYPE

INT 5F AH=0C  INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET PIXEL

INT 5F AH=0D  INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET IMAGE

INT 5F AH=0E  INT 5F - HP 95LX GRAPHICS PRIMITIVES - PUT IMAGE

INT 5F AH=0F  INT 5F - HP 95LX GRAPHICS PRIMITIVES - WRITE TEXT


INT 60

INT 60  INT 60 - reserved for user interrupt

INT 60  INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK

INT 60  INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA

INT 60  INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS

INT 60  INT 60 - PC-IPC API

INT 60  INT 60 - Tangram Arbiter - API

INT 60  INT 60 U - INTRSPY/CMDSPY API

INT 60  INT 60 U - PC/370 v4.2 - ???

INT 60  INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP

INT 60  INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification

INT 60  INT 60 u - HP 95LX System Manager - WAIT FOR EVENT

INT 60  INT 60 u - HP 95LX System Manager - CHECK FOR EVENT

INT 60  INT 60 u - HP 95LX System Manager - "SH_STATUS"

INT 60  INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES

INT 60  INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER

INT 60  INT 60 u - HP 95LX System Manager - YIELD CPU

INT 60  INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST

INT 60  INT 60 u - HP 95LX System Manager - SETUP MENU

INT 60  INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU

INT 60  INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU

INT 60  INT 60 u - HP 95LX System Manager - REMOVE MENU

INT 60  INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE

INT 60  INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU

INT 60  INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU

INT 60  INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE

INT 60  INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU

INT 60  INT 60 u - HP 95LX System Manager - DISPLAY STRING

INT 60  INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN

INT 60  INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN

INT 60  INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"

INT 60  INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"

INT 60  INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"

INT 60  INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"

INT 60  INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"

INT 60  INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE

INT 60  INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE

INT 60  INT 60 u - HP 95LX System Manager - SET CURSOR POSITION

INT 60  INT 60 u - HP 95LX System Manager - "EDIT_INIT"

INT 60  INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE

INT 60  INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD

INT 60  INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_INI"

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_DIS"

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_KEY"

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_FIL"

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_MARK"

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"

INT 60  INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"

INT 60  INT 60 u - HP 95LX System Manager - OPEN FILE

INT 60  INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE

INT 60  INT 60 u - HP 95LX System Manager - CREATE NEW FILE

INT 60  INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE

INT 60  INT 60 u - HP 95LX System Manager - READ FROM FILE

INT 60  INT 60 - HP 95LX System Manager - WRITE TO FILE

INT 60  INT 60 u - HP 95LX System Manager - SET FILE POSITION

INT 60  INT 60 u - HP 95LX System Manager - GET FILE POSITION

INT 60  INT 60 u - HP 95LX System Manager - CLOSE FILE

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"

INT 60  INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT

INT 60  INT 60 u - HP 95LX System Manager - DELETE FILE

INT 60  INT 60 u - HP 95LX System Manager - RENAME FILE

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"

INT 60  INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY

INT 60  INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY

INT 60  INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE

INT 60  INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"

INT 60  INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES

INT 60  INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"

INT 60  INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"

INT 60  INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING

INT 60  INT 60 u - HP 95LX System Manager - PROCESS TERMINATION

INT 60  INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES

INT 60  INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES

INT 60  INT 60 u - HP 95LX System Manager - "M_SPAWN"

INT 60  INT 60 u - HP 95LX System Manager - "M_APPCOUNT"

INT 60  INT 60 u - HP 95LX System Manager - "M_REBOOT"

INT 60  INT 60 u - HP 95LX System Manager - "M_SPAWNARG"

INT 60  INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"

INT 60  INT 60 u - HP 95LX System Manager - "M_APP_NAME"

INT 60  INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD

INT 60  INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD

INT 60  INT 60 u - HP 95LX System Manager - RESET CLIPBOARD

INT 60  INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???

INT 60  INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"

INT 60  INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"

INT 60  INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"

INT 60  INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD

INT 60  INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD

INT 60  INT 60 u - HP 95LX System Manager - BEEP

INT 60  INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"

INT 60  INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN

INT 60  INT 60 u - HP 95LX System Manager - TURN OFF SOUND

INT 60  INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK

INT 60  INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK

INT 60  INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK

INT 60  INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"

INT 60  INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"

INT 60  INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION

INT 60  INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION

INT 60  INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE

INT 60  INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"

INT 60  INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"

INT 60  INT 60 u - HP 95LX System Manager - OPEN PRINTER

INT 60  INT 60 u - HP 95LX System Manager - CLOSE PRINTER

INT 60  INT 60 u - HP 95LX System Manager - WRITE TO PRINTER

INT 60  INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER

INT 60  INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"

INT 60  INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"

INT 60  INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"

INT 60  INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL

INT 60  INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"

INT 60  INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"

INT 60  INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL

INT 60  INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE

INT 60  INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE

INT 60  INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"

INT 60  INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS

INT 60  INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"

INT 60  INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"

INT 60  INT 60 u - HP 95LX System Manager - "M_ERRMSG"

INT 60  INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX

INT 60  INT 60 u - HP 95LX System Manager - "SHOWNAME"

INT 60  INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX

INT 60  INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX

INT 60  INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"

INT 60  INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"

INT 60  INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"

INT 60  INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"

INT 60  INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX

INT 60  INT 60 u - HP 95LX System Manager - DISABLE MACROS

INT 60  INT 60 u - HP 95LX System Manager - ENABLE MACROS

INT 60  INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"

INT 60  INT 60 u - HP 95LX System Manager - "M_FORM_FT"

INT 60  INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"

INT 60  INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE

INT 60  INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"

INT 60  INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"

INT 60  INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"

INT 60  INT 60 u - HP 95LX System Manager - "INIT_SYSGMR_RSRCS"

INT 60  INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM

INT 60  INT 60 u - HP 95LX System Manager - DISPLAY HELP

INT 60  INT 60 u - HP 95LX System Manager - "M_HELP_KEY"

INT 60  INT 60 u - HP 95LX System Manager - "M_HELP_TERM"

INT 60  INT 60 u - HP 95LX System Manager - "M_ColInit"

INT 60  INT 60 u - HP 95LX System Manager - "M_ColCpStr"

INT 60  INT 60 u - HP 95LX System Manager - "M_ColLicsStr"

INT 60  INT 60 u - HP 95LX System Manager - "M_ColLicsChar"

INT 60  INT 60 u - HP 95LX System Manager - "M_ColToLower"

INT 60  INT 60 u - HP 95LX System Manager - "M_ColCpSearch"

INT 60  INT 60 u - HP 95LX System Manager - "M_ColToUpper"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispInit"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispClear"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispDot"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispDraw"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispFill"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispRead"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispString"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispPan"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispZoom"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispSave"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispRestore"

INT 60  INT 60 u - HP 95LX System Manager - "GrDispCorner"

INT 60  INT 60 u - HP 95LX System Manager - "CP_TO_LICS"

INT 60 AH=00

INT 60 AH=01

INT 60 AH=02

INT 60 AH=03

INT 60 AH=04

INT 60 AH=05

INT 60 AH=06

INT 60 AH=07

INT 60 AH=08  INT 60 - MDEBUG - UNUSED

INT 60 AH=0A  INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS

INT 60 AH=0B  INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET

INT 60 AH=0C

INT 60 AH=0D  INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE

INT 60 AH=11  INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT

INT 60 AH=12  INT 60 - 3com, 10NET, Banyan VINES - LOCK

INT 60 AH=13  INT 60 - 3com, 10NET, Banyan VINES - UNLOCK

INT 60 AH=14  INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE

INT 60 AH=15  INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE

INT 60 AH=16  INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST

INT 60 AH=17  INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST

INT 60 AH=18  INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS

INT 60 AH=19  INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS

INT 60 AH=1A  INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES

INT 60 AH=1B  INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED

INT 60 AH=1C  INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED

INT 60 AH=AD  INT 60 - AccessDOS - API


INT 61

INT 61  INT 61 - reserved for user interrupt

INT 61  INT 61 - Atari Portfolio - EXTENDED BIOS

INT 61  INT 61 - HP 95LX System Manager - LOAD DS

INT 61  INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP

INT 61  INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA

INT 61  INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE

INT 61  INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE

INT 61  INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface

INT 61 AH=00

INT 61 AH=01  INT 61 - Banyan VINES - CHECK SERVICE

INT 61 AH=02  INT 61 - Banyan VINES - GET REVISION NUMBER

INT 61 AH=05  INT 61 u - PC/TCP kernel v2.05 - "get_addr" - ???

INT 61 AH=06  INT 61 u - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS

INT 61 AH=07  INT 61 u - PC/TCP kernel v2.05 - "net_globalize" - ???

INT 61 AH=08  INT 61 u - PC/TCP kernel v2.05 - "net_release" - ???

INT 61 AH=09  INT 61 u - PC/TCP kernel v2.05 - "net_releaseall" - ??? ALL

INT 61 AH=0A  INT 61 - PC/TCP kernel v2.05 - "net_send" - ???

INT 61 AH=0B  INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???

INT 61 AH=0C  INT 61 u - PC/TCP kernel v2.05 - "net_stat" - GET CONNECTION STATISTICS

INT 61 AH=0D  INT 61 u - PC/TCP kernel v2.05 - "is_netnd" - CHECK IF CONNECTION HANDLE VALID

INT 61 AH=0E  INT 61 u - PC/TCP kernel v2.05 - "net_select" - ???

INT 61 AH=0F  INT 61 u - PC/TCP kernel v2.05 - "get_netversion" - GET SOFTWARE VERSION

INT 61 AH=10  INT 61 u - PC/TCP kernel v2.05 - "net_shutdown" - UNINSTALL

INT 61 AH=11  INT 61 u - PC/TCP kernel v2.05 - "disable_async" - ???

INT 61 AH=12  INT 61 u - PC/TCP kernel v2.05 - "enable_async" - ???

INT 61 AH=13  INT 61 u - PC/TCP kernel v2.05 - "net_connect" - ???

INT 61 AH=14  INT 61 u - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED

INT 61 AH=15  INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???

INT 61 AH=16  INT 61 u - PC/TCP kernel v2.05 - "net_peer" - GET ADDRESS OF REMOTE PEER???

INT 61 AH=17  INT 61 u - PC/TCP kernel v2.05 - "net_reconfig" - ???

INT 61 AH=18  INT 61 u - PC/TCP kernel v2.05 - "net_eof" - ???

INT 61 AH=19  INT 61 u - PC/TCP kernel v2.05 - "net_abort" - ???

INT 61 AH=1A  INT 61 u - PC/TCP kernel v2.05 - "net_write" - ???

INT 61 AH=1B  INT 61 u - PC/TCP kernel v2.05 - "net_read" - ???

INT 61 AH=1C  INT 61 u - PC/TCP kernel v2.05 - "net_readfrom" - ???

INT 61 AH=1D  INT 61 u - PC/TCP kernel v2.05 - "net_writeto" - ???

INT 61 AH=1E  INT 61 u - PC/TCP kernel v2.05 - "net_flush" - ???

INT 61 AH=1F  INT 61 u - PC/TCP kernel v2.05 - "net_asynch" - ???

INT 61 AH=20  INT 61 u - PC/TCP kernel v2.05 - "set_option" - ???

INT 61 AH=21  INT 61 u - PC/TCP kernel v2.05 - "get_option" - ???

INT 61 AH=22  INT 61 u - PC/TCP kernel v2.05 - "net_getdesc" - ???

INT 61 AH=23  INT 61 u - PC/TCP kernel v2.05 - "net_listen" - ???

INT 61 AH=24  INT 61 u - PC/TCP kernel v2.05 - "net_abortall" - ???

INT 61 AH=25  INT 61 u - PC/TCP kernel v2.05 - "ad_res_name" - ???

INT 61 AH=26  INT 61 u - PC/TCP kernel v2.05 - "ad_htable" - ???

INT 61 AH=27  INT 61 u - PC/TCP kernel v2.05 - "ad_domain" - ???

INT 61 AH=28  INT 61 u - PC/TCP kernel v2.05 - "net_swap" - ???

INT 61 AH=29  INT 61 u - PC/TCP kernel v2.05 - "net_getglobdesc" - OPEN CONNECTION???

INT 61 AH=2A  INT 61 U - PC/TCP kernel v2.05 - GET CONFIGURATION INFORMATION

INT 61 AH=2B  INT 61 U - PC/TCP kernel v2.05 - ???

INT 61 AH=30  INT 61 u - PC/TCP kernel v2.05 - "icmp_ping" ???

INT 61  INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel

INT 61 AH=34  INT 61 u - PC/TCP kernel v2.1 - "icmp_destun" - ???

INT 61 AH=50  INT 61 u - PC/TCP kernel v2.05 - "nm_prs_addr" - ???

INT 61 AH=51  INT 61 u - PC/TCP kernel v2.05 - "nm_htable" - ???

INT 61 AH=52  INT 61 u - PC/TCP kernel v2.05 - "nm_domain" - ???

INT 61 AH=53  INT 61 u - PC/TCP kernel v2.05 - "nm_ien116" - ???

INT 61 AH=54  INT 61 u - PC/TCP kernel v2.05 - "nm_res_name" - RESOLVE HOST NAME


INT 62

INT 62  INT 62 - reserved for user interrupt

INT 62  INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA

INT 62  INT 62 - HP 95LX - USED BY CALCULATOR

INT 62  INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???

INT 62 AX=0000

INT 62 AH=01  INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE

INT 62 AH=02  INT 62 - Cswitch - WAIT FOR SEMAPHORE

INT 62 AH=03  INT 62 - Cswitch - CHECK SEMAPHORE

INT 62 AH=04  INT 62 - Cswitch - TRIGGER SEMAPHORE

INT 62 AH=05  INT 62 - Cswitch - SLEEP

INT 62 AH=06  INT 62 - Cswitch - SUSPEND

INT 62 AH=07  INT 62 - Cswitch - SPAWN

INT 62 AH=08

INT 62 AH=09  INT 62 - Cswitch - SET PRIORITY

INT 62 AH=0A  INT 62 - Cswitch - TEST MESSAGE QUEUE

INT 62 AH=0B  INT 62 - Cswitch - SEND MESSAGE

INT 62 AH=0C  INT 62 - Cswitch - READ MESSAGE

INT 62 AH=0D  INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT

INT 62 AH=0E  INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT

INT 62 AH=0F  INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK

INT 62 AH=10  INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM

INT 62 AH=11  INT 62 - Cswitch - GET TCB INFORMATION

INT 62 AH=12  INT 62 - Cswitch - GET TCB ADDRESS

INT 62 AH=13  INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK

INT 62 AH=47  INT 62 - PC Tools 7 COMMUTE - ???

INT 62 AH=48  INT 62 - PC Tools 7 COMMUTE - ???

INT 62 AH=49  INT 62 - PC Tools 7 COMMUTE - ???

INT 62 AH=4A  INT 62 - PC Tools 7 COMMUTE - ???

INT 62 AH=4B  INT 62 - PC Tools 7 COMMUTE - ???

INT 62 AH=4C  INT 62 - PC Tools 7 COMMUTE - ???

INT 62 AX=6262  INT 62 - PC Tools 7 COMMUTE - INSTALLATION CHECK


INT 63

INT 63  INT 63 - reserved for user interrupt

INT 63  INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA

INT 63  INT 63 - Oracle SQL Protected Mode Executive - ???

INT 63  INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40

INT 63  INT 63 - Kofax KF9X00 image manipulation card interface

INT 63  INT 63 - DESQview/X - SOCKET API


INT 64

INT 64  INT 64 - reserved for user interrupt

INT 64  INT 64 - Adaptec controllers - DRIVE 1 DATA

INT 64  INT 64 - Oracle SQL Protected Mode Executive - ???

INT 64  INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API

INT 64  INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE

INT 64  INT 64 - Extended Batch Language v3.14+

INT 64  INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information


INT 65

INT 65  INT 65 - reserved for user interrupt

INT 65  INT 65 - Adaptec controllers - DRIVE 1 DATA

INT 65  INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE

INT 65  INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT

INT 65  INT 65 - SD.COM v6.2

INT 65  INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information

INT 65  INT 65 - Ad Lib SOUND.COM - INTERFACE

INT 65  INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)

INT 65  INT 65 - Ad Lib SOUND.COM - SET STATE

INT 65  INT 65 - Ad Lib SOUND.COM - GET STATE

INT 65  INT 65 - Ad Lib SOUND.COM - SET MODE

INT 65  INT 65 - Ad Lib SOUND.COM - GET MODE

INT 65  INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE

INT 65  INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE


INT 66

INT 66  INT 66 - reserved for user interrupt

INT 66  INT 66 - Adaptec controllers - DRIVE 1 DATA

INT 66  INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE

INT 66  INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???

INT 66  INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information

INT 66  INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer

INT 66 AH=01  INT 66 - BitFax Scheduler - SET MODE???

INT 66 AH=02  INT 66 - BitFax Scheduler - SET MODE???

INT 66 AH=03  INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS

INT 66 AH=04  INT 66 - BitFax Scheduler - GET STATUS???

INT 66 AH=05  INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX

INT 66 AH=06

INT 66 AX=3345  INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY

INT 66 AX=FFFB


INT 67

INT 67  INT 67 - Adaptec controllers - DRIVE 1 DATA

INT 67  INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information

INT 67  INT 67 - Sangoma CCPOP 3270 resident module

INT 67  INT 67 - CUCKOO.COM - INSTALLATION CHECK

INT 67 AH=00  INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT

INT 67 AH=01  INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE

INT 67 AH=02  INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE

INT 67 AH=3F  INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK

INT 67 AH=40  INT 67 - LIM EMS - GET MANAGER STATUS

INT 67 AH=41  INT 67 - LIM EMS - GET PAGE FRAME SEGMENT

INT 67 AH=42  INT 67 - LIM EMS - GET NUMBER OF PAGES

INT 67 AH=43  INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY

INT 67 AH=44  INT 67 - LIM EMS - MAP MEMORY

INT 67 AH=45  INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY

INT 67 AH=46  INT 67 - LIM EMS - GET EMM VERSION

INT 67 AH=47  INT 67 - LIM EMS - SAVE MAPPING CONTEXT

INT 67 AH=48  INT 67 - LIM EMS - RESTORE MAPPING CONTEXT

INT 67 AH=49  INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES

INT 67 AH=4A  INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY

INT 67 AH=4B  INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES

INT 67 AH=4C  INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE

INT 67 AH=4D  INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES

INT 67 AH=4E  INT 67 - LIM EMS - GET OR SET PAGE MAP

INT 67 AH=4F  INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP

INT 67 AH=50  INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES

INT 67 AH=51  INT 67 - LIM EMS 4.0 - REALLOCATE PAGES

INT 67 AH=52  INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES

INT 67 AH=53  INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME

INT 67 AH=54  INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY

INT 67 AH=55  INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP

INT 67 AH=56  INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL

INT 67 AH=57  INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION

INT 67 AH=58  INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY

INT 67 AH=59  INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION

INT 67 AH=5A  INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES

INT 67 AH=5B

INT 67 AH=5C  INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT

INT 67 AH=5D  INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS

INT 67 AH=60  INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY

INT 67 AH=61  INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT

INT 67 AH=68  INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM

INT 67 AH=69  INT 67 - EEMS - MAP PAGE INTO FRAME

INT 67 AH=6A  INT 67 - EEMS - PAGE MAPPING

INT 67 AH=DD  INT 67 - Quadtel QMAPS - API

INT 67 AX=DE00

INT 67 AX=FFA5  INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK


INT 68

INT 68  INT 68 - Sangoma CCPOP 3270 resident module

INT 68 AH=01  INT 68 - APPC/PC - NETWORK DEVICE CONTROL

INT 68 AH=02  INT 68 - APPC/PC - CONNECTION CONTROL

INT 68 AH=03  INT 68 - APPC/PC

INT 68 AH=04  INT 68 - APPC/PC

INT 68 AH=05  INT 68 - APPC/PC - TRANSFER MSG DATA

INT 68 AH=06  INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS

INT 68 AH=07  INT 68 - APPC/PC - PASSTHROUGH

INT 68 AH=FA  INT 68 - APPC/PC - ENABLE/DISABLE APPC

INT 68 AH=FB  INT 68 - APPC/PC - CONVERT

INT 68 AH=FC  INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING

INT 68 AH=FD  INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING

INT 68 AH=FE  INT 68 - APPC/PC - SET TRACE DESTINATION

INT 68 AH=FF  INT 68 - APPC/PC - SET PASSTHROUGH


INT 69

INT 69  INT 69 - Zenith AT BIOS - ???

INT 69 AX=0100

INT 69 AH=0A  INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER

INT 69 AX=4001

INT 69 AX=4101

INT 69 AH=42  INT 69 - 10NET v5.0 - SYSSVC.COM - ???

INT 69 AH=43  INT 69 - 10NET v5.0 - SYSSVC.COM - ???

INT 69 AH=44  INT 69 - 10NET v5.0 - SYSSVC.COM - ???

INT 69 AH=49  INT 69 - 10NET v5.0 - SYSSVC.COM - BUG

INT 69 AX=6996  INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER

INT 69 AH=FF  INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR


INT 6A

INT 6A  INT 6A - OPTHELP.COM

INT 6A  INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM

INT 6A AH=01  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE

INT 6A AH=02  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE

INT 6A AH=03  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS

INT 6A AH=D0

INT 6A AX=D100  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK

INT 6A AX=D300  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS

INT 6A AX=D400  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS

INT 6A AX=D500  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME

INT 6A AX=D600  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET


INT 6B

INT 6B AX=0000  INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE

INT 6B AX=0100  INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ

INT 6B AH=02  INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK

INT 6B AX=0600  INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL

INT 6B AX=0700  INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS

INT 6B AH=10  INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS

INT 6B AH=11  INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT

INT 6B AH=12  INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS

INT 6B AH=13  INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME

INT 6B AH=14  INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS

INT 6B AH=15  INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG

INT 6B AH=16  INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT

INT 6B AH=17  INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT

INT 6B AH=18  INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT

INT 6B AH=19  INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT

INT 6B AH=1A  INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS

INT 6B AH=1B  INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS

INT 6B AH=1C  INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL

INT 6B AH=1D  INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL

INT 6B AH=1E  INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST

INT 6B AH=1F  INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS

INT 6B AH=21  INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE

INT 6B AH=6B  INT 6B - Tandy SCHOOLMATE PLUS - API

INT 6B  INT 6B - VIRUS - "Saddam" - ???


INT 6C

INT 6C  INT 6C - system resume vector (CONVERTIBLE)

INT 6C  INT 6C - DOS 3.2 Realtime Clock update

INT 6C  INT 6C - DECnet DOS network scheduler


INT 6D

INT 6D  INT 6D - VGA - internal

INT 6D  INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT

INT 6D  INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM


INT 6F

INT 6F AH=22

INT 6F AH=24  INT 6F - HP ES-12 EXTENDED BIOS - WRITE CMOS MEMORY

INT 6F  INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)

INT 6F AH=00  INT 6F - 10NET - LOGIN

INT 6F AH=01  INT 6F - 10NET - LOGOFF

INT 6F AH=02  INT 6F - 10NET - STATUS OF NODE

INT 6F AH=03  INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE

INT 6F AH=04  INT 6F - 10NET - SEND

INT 6F AH=05  INT 6F - 10NET - RECEIVE

INT 6F AH=07  INT 6F - 10NET - LOCK HANDLE

INT 6F AH=08  INT 6F - 10NET - UNLOCK HANDLE

INT 6F AH=09  INT 6F - 10NET - SUBMIT

INT 6F AH=0A  INT 6F - 10NET - CHAT

INT 6F AH=0B  INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY

INT 6F AH=0C  INT 6F - 10NET - UNLOCK SEMAPHORE

INT 6F AH=0D  INT 6F - 10NET - WHO

INT 6F AH=0E  INT 6F - 10NET - SPOOL/PRINT

INT 6F AH=0F  INT 6F - 10NET v5.0 - "RM LOCK" - ???

INT 6F AH=10  INT 6F - 10NET - ATTACH/DETACH PRINTER

INT 6F AH=11  INT 6F - 10NET - LOCK FCB

INT 6F AH=12  INT 6F - 10NET - UNLOCK FCB

INT 6F AH=13  INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS

INT 6F AH=14  INT 6F - 10NET v3.3+ - GET REMOTE MEMORY

INT 6F AX=1501

INT 6F AH=16  INT 6F - 10NET v5.0 - "GL WHO" - ???

INT 6F AH=17  INT 6F - 10NET v3.3+ - MOUNT

INT 6F AH=18  INT 6F - 10NET v3.3+ - UNMOUNT

INT 6F AH=19  INT 6F - 10NET v5.0 - "AUDIT" - ???

INT 6F AH=1A  INT 6F - 10NET v5.0 - "BULL" - ???

INT 6F AH=1B  INT 6F - 10NET v5.0 - "GMOUNT" - ???

INT 6F AH=1C  INT 6F - 10NET v5.0 - "GLOGIN" - ???

INT 6F AH=1D  INT 6F - 10NET v5.0 - "TABDATA" - ???

INT 6F AH=1E  INT 6F - 10NET v5.0 - "SCHED" - ???

INT 6F AH=1F  INT 6F - 10NET v5.0 - "WHOAMI" - ???

INT 6F AH=20  INT 6F - 10NET v5.0 - ???

INT 6F AH=21  INT 6F - 10NET v5.0 - ???


INT 70

INT 70  INT 70 - IRQ8 - CMOS REAL-TIME CLOCK

INT 70  INT 70 - VIRUS "Stupid" - ???


INT 77

INT 77  INT 77 - IRQ15 - RESERVED (AT,PS)

INT 77  INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)


INT 78

INT 78  INT 78 - UofSalford DBOS DOS extender - API

INT 78  INT 78 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ0

INT 78  INT 78 - AutoCAD 10 ADI for Plotters

INT 78  INT 78 - ADP-60 IDE controller - ORIGINAL INT 13

INT 78 AH=00  INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT

INT 78 AH=01  INT 78 - TARGA.DEV - GET I/O PORT

INT 78 AH=02  INT 78 - TARGA.DEV - SET DMA CHANNEL

INT 78 AH=03  INT 78 - TARGA.DEV - GET DMA CHANNEL

INT 78 AH=04  INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER

INT 78 AH=05  INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER

INT 78 AH=06  INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE

INT 78 AH=08  INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST

INT 78 AH=09  INT 78 - TARGA.DEV - RESET SCSI BUS

INT 78 AH=10  INT 78 - TARGA.DEV - SEND SCSI COMMAND

INT 78 AH=11  INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)

INT 78 AH=12  INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)

INT 78 AH=13  INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)

INT 78 AH=14  INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)

INT 78 AH=15  INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)


INT 79

INT 79  INT 79 - AVATAR.SYS - FAST GET KEYSTROKE

INT 79  INT 79 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ1

INT 79  INT 79 U - ADP-60 IDE adapter - ???

INT 79 AX=0001


INT 7A

INT 7A  INT 7A U - Topware Network Operating System - ???

INT 7A  INT 7A - AutoCAD Device Interface

INT 7A  INT 7A - X.PC Packet software interface

INT 7A  INT 7A - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ2

INT 7A  INT 7A - Novell NetWare - LOW-LEVEL API - Notes

INT 7A  INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET

INT 7A  INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET

INT 7A  INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET

INT 7A  INT 7A - Novell NetWare - IPX Driver - SEND PACKET

INT 7A  INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET

INT 7A  INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT

INT 7A  INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT

INT 7A  INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT

INT 7A  INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER

INT 7A  INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS

INT 7A  INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL

INT 7A  INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET

INT 7A  INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS

INT 7A  INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE

INT 7A  INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS

INT 7A  INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET

INT 7A  INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK

INT 7A  INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION

INT 7A  INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION

INT 7A  INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION

INT 7A  INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION

INT 7A  INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS

INT 7A  INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET

INT 7A  INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET

INT 7A  INT 7A U - Novell NetWare - SPX Driver - internal - ADD DIAGNOSTIC ELEMENT

INT 7A  INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT

INT 7A  INT 7A U - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT

INT 7A  INT 7A U - Novell NetWare - IPX Driver - INTERNAL

INT 7A AH=04  INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE

INT 7A AH=06  INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE

INT 7A AH=09

INT 7A AH=13  INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE

INT 7A AH=7A  INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE

INT 7A AH=81  INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME

INT 7A AH=83  INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS

INT 7A AX=FDCB  INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK

INT 7A AX=FE01

INT 7A AX=FF01


INT 7B

INT 7B  INT 7B - Btrieve API (single user)

INT 7B  INT 7B - Eicon Access API (3270/5250 gateways)

INT 7B  INT 7B CU - AutoCAD ADI INTERFACE

INT 7B  INT 7B - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ3


INT 7C

INT 7C  INT 7C U - IBM REXX88PC command language

INT 7C  INT 7C - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ4


INT 7D

INT 7D  INT 7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT

INT 7D  INT 7D U - YTERM 1.4 - CLOCK SUPPORT

INT 7D  INT 7D - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ5

INT 7D  INT 7D - HyperPAD v2.2 - API ACCESS


INT 7E

INT 7E  INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY

INT 7E  INT 7E U - YTERM 1.4 - ???

INT 7E  INT 7E - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ6


INT 7F

INT 7F  INT 7F - IBM XGA - ???

INT 7F  INT 7F - Halo88 - API

INT 7F  INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR

INT 7F  INT 7F - Telebit ACS SERIAL I/O

INT 7F  INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE

INT 7F  INT 7F U - YTERM - ???

INT 7F  INT 7F - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ7

INT 7F  INT 7F - Canon IXHND2 Scanner Interface

INT 7F  INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)

INT 7F  INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK

INT 7F AH=00  INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT

INT 7F AH=01

INT 7F AH=02

INT 7F AH=03  INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER

INT 7F AH=04  INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS

INT 7F AH=05

INT 7F AH=06

INT 7F AH=07  INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES

INT 7F AH=08

INT 7F AH=09

INT 7F AH=0A  INT 7F - Alloy NTNX - GET SYSTEM FLAGS

INT 7F AH=0B  INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE

INT 7F AH=10

INT 7F AH=11  INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM

INT 7F AH=12  INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM

INT 7F AH=13  INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS

INT 7F AH=14

INT 7F AH=15

INT 7F AH=16  INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER

INT 7F AH=21  INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)

INT 7F AH=22  INT 7F - Alloy NTNX - GET MESSAGE

INT 7F AH=24

INT 7F AH=25

INT 7F AH=26

INT 7F AH=30  INT 7F - Alloy MW386 - GET PORT INFORMATION

INT 7F AH=31  INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT

INT 7F AH=37

INT 7F AH=38  INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER

INT 7F AH=39  INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER

INT 7F AH=3A  INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS

INT 7F AH=3B  INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS

INT 7F AH=3C  INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT

INT 7F AH=3D  INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES

INT 7F AH=41

INT 7F AH=42

INT 7F AH=4E  INT 7F - Alloy MW386 v2+ - SET ERROR MODE

INT 7F AH=4F  INT 7F - Alloy MW386 v2+ - SET FCB MODE

INT 7F AH=81  INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER

INT 7F AH=82  INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER

INT 7F AH=A0  INT 7F - Alloy MW386 - GET USER NAME

INT 7F AH=A1  INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER

INT 7F AH=A2  INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL

INT 7F AH=A3  INT 7F - Alloy MW386 - GET USER LOGIN STATE

INT 7F AH=A4  INT 7F - Alloy MW386 - VERIFY USER PASSWORD

INT 7F AH=A5  INT 7F - Alloy MW386 - GET/SET USER STATUS

INT 7F AX=ABCD  INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY

INT 7F AH=B0  INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER

INT 7F AH=B1  INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER

INT 7F AH=B2  INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER

INT 7F AH=B3  INT 7F - Alloy NTNX - RELEASE FILES FOR USER

INT 7F AH=B4  INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER

INT 7F AH=C3  INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT

INT 7F AH=C5  INT 7F - Alloy MW386 - CHANGE CONSOLE MODE

INT 7F AH=C6  INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT

INT 7F AH=C7  INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE

INT 7F AH=C8  INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER

INT 7F AH=CF  INT 7F - Alloy NTNX - REBOOT USER PROCESSOR

INT 7F AH=D6  INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE

INT 7F AH=D7  INT 7F - Alloy MW386 - POST EVENT

INT 7F AH=D8  INT 7F - Alloy MW386 - FLUSH DISK BUFFERS

INT 7F AH=DB  INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE

INT 7F AH=E0  INT 7F - Alloy MW386 - CREATE DOS TASK

INT 7F AH=E1  INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID

INT 7F AH=E2  INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK

INT 7F AH=E3  INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK

INT 7F AH=E4  INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER

INT 7F AH=E5  INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME

INT 7F AH=E6  INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS

INT 7F AH=E7  INT 7F - Alloy MW386 - REMOVE DOS TASK

INT 7F AH=E8  INT 7F - Alloy MW386 - DOS TASK DELAY

INT 7F AH=F0  INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP

INT 7F AH=F1  INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP

INT 7F AH=F2  INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY

INT 7F AH=F3  INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP

INT 7F AH=F8  INT 7F - Alloy MW386 - ASSIGN USER TO GROUP

INT 7F AH=F9  INT 7F - Alloy MW386 - REMOVE USER FROM GROUP

INT 7F AH=FA  INT 7F - Alloy MW386 - GET USER GROUP LIST

INT 7F AH=FB  INT 7F - Alloy MW386 - ASSIGN GROUP NAME

INT 7F AH=FC  INT 7F - Alloy MW386 - GET GROUP NAME


INT 80

INT 80  INT 80 - Q-PRO4 - ???

INT 80  INT 80 - reserved for BASIC

INT 80  INT 80 - SoundBlaster SBFM driver - GET VERSION

INT 80  INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS

INT 80  INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE

INT 80  INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE

INT 80  INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE

INT 80  INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC

INT 80  INT 80 - SoundBlaster SBFM driver - PLAY MUSIC

INT 80  INT 80 - SoundBlaster SBFM driver - STOP MUSIC

INT 80  INT 80 - SoundBlaster SBFM driver - RESET DRIVER

INT 80  INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC

INT 80  INT 80 - SoundBlaster SBFM driver - RESUME MUSIC

INT 80  INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS

INT 80 AH=01  INT 80 - QPC Software PKTINT.COM - INITIALIZE

INT 80 AH=02  INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES

INT 80 AH=03  INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT

INT 80 AH=04  INT 80 - QPC Software PKTINT.COM - ENABLE???

INT 80 AH=05  INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS

INT 80 AH=06  INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET


INT 81

INT 81  INT 81 - reserved for BASIC

INT 81  INT 81 - IBM TOKEN RING ADAPTER - ???


INT 82

INT 82  INT 82 - reserved for BASIC

INT 82  INT 82 - IBM TOKEN RING ADAPTER - ???


INT 86

INT 86  INT 86 - NetBIOS - ORIGINAL INT 18

INT 86  INT 86 - IBM ROM BASIC - used while in interpreter

INT 86  INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS


INT 87

INT 87  INT 87 - IBM ROM BASIC - used while in interpreter

INT 87  INT 87 - APL*PLUS/PC - ???


INT 88

INT 88  INT 88 - IBM ROM BASIC - used while in interpreter

INT 88  INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE

INT 88  INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE

INT 88  INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE

INT 88  INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE

INT 88  INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL

INT 88  INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING

INT 88  INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING

INT 88  INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING

INT 88  INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS

INT 88  INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION

INT 88  INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY

INT 88  INT 88 - APL*PLUS/PC - CREATE NAME

INT 88  INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS


INT 8A

INT 8A  INT 8A - IBM ROM BASIC - used while in interpreter

INT 8A  INT 8A - APL*PLUS/PC - PRINT SCREEN


INT 8B

INT 8B  INT 8B - IBM ROM BASIC - used while in interpreter

INT 8B  INT 8B - APL*PLUS/PC - BEEP


INT 8C

INT 8C  INT 8C - IBM ROM BASIC - used while in interpreter

INT 8C  INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY


INT 90

INT 90  INT 90 - IBM ROM BASIC - used while in interpreter

INT 90  INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER


INT 91

INT 91  INT 91 - IBM ROM BASIC - used while in interpreter

INT 91  INT 91 - IBM TOKEN RING ADAPTER - ???


INT 92

INT 92  INT 92 - IBM ROM BASIC - used while in interpreter

INT 92  INT 92 - Sangoma X.25 INTERFACE PROGRAM

INT 92 AH=E1


INT 93

INT 93  INT 93 - IBM ROM BASIC - used while in interpreter

INT 93  INT 93 - IBM TOKEN RING ADAPTER - ???


INT 95

INT 95  INT 95 - IBM ROM BASIC - used while in interpreter

INT 95  INT 95 - APL*PLUS/PC - DETERMINE R= SPACE


INT A0

INT A0  INT A0 - IBM ROM BASIC - used while in interpreter

INT A0  INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE


INT A4

INT A4  INT A4 - IBM ROM BASIC - used while in interpreter

INT A4  INT A4 U - Right Hand Man - API


INT B3

INT B3  INT B3 - IBM ROM BASIC - used while in interpreter

INT B3 AH=70  INT B3 - ZIPKEY - GET VERSION

INT B3 AH=71  INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE

INT B3 AH=72  INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION

INT B3 AH=73  INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME

INT B3 AH=74  INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS

INT B3 AH=75  INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE

INT B3 AH=76  INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE

INT B3 AH=77  INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE

INT B3 AH=78  INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY

INT B3 AH=79  INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY

INT B3 AH=7A  INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP

INT B3 AH=7B  INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT

INT B3 AH=7C  INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT

INT B3 AH=7D  INT B3 - ZIPKEY - REQUEST POP UP

INT B3 AH=7E  INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION

INT B3 AH=7F  INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS

INT B3 AH=80  INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE


INT B4

INT B4  INT B4 - IBM ROM BASIC - used while in interpreter

INT B4  INT B4 - STACKMAN - REQUEST NEW STACK


INT B5

INT B5  INT B5 - IBM ROM BASIC - used while in interpreter

INT B5  INT B5 - STACKMAN - RESTORE ORIGINAL STACK


INT BE

INT BE  INT BE - IBM ROM BASIC - used while in interpreter

INT BE  INT BE - DESQview/X - ???


INT C6

INT C6  INT C6 - IBM ROM BASIC - used while in interpreter

INT C6  INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86


INT C7

INT C7  INT C7 - IBM ROM BASIC - used while in interpreter

INT C7  INT C7 - APL*PLUS/PC - ???


INT C8

INT C8  INT C8 - IBM ROM BASIC - used while in interpreter

INT C8  INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88


INT C9

INT C9  INT C9 - IBM ROM BASIC - used while in interpreter

INT C9  INT C9 - APL*PLUS/PC - ???


INT CA

INT CA  INT CA - IBM ROM BASIC - used while in interpreter

INT CA  INT CA - APL*PLUS/PC - PRINT SCREEN


INT CB

INT CB  INT CB - IBM ROM BASIC - used while in interpreter

INT CB  INT CB - APL*PLUS/PC - BEEP


INT CC

INT CC  INT CC - IBM ROM BASIC - used while in interpreter

INT CC  INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY


INT CD

INT CD  INT CD - IBM ROM BASIC - used while in interpreter

INT CD  INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT CE

INT CE  INT CE - IBM ROM BASIC - used while in interpreter

INT CE  INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT CF

INT CF  INT CF - IBM ROM BASIC - used while in interpreter

INT CF  INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION


INT D0

INT D0  INT D0 - IBM ROM BASIC - used while in interpreter

INT D0  INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES

INT D0  INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR


INT D1

INT D1  INT D1 - IBM ROM BASIC - used while in interpreter

INT D1  INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D2

INT D2  INT D2 - IBM ROM BASIC - used while in interpreter

INT D2  INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D3

INT D3  INT D3 - IBM ROM BASIC - used while in interpreter

INT D3  INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D4

INT D4  INT D4 - IBM ROM BASIC - used while in interpreter

INT D4  INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES

INT D4  INT D4 - PC-MOS/386 - API


INT D5

INT D5  INT D5 - IBM ROM BASIC - used while in interpreter

INT D5  INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D6

INT D6  INT D6 - IBM ROM BASIC - used while in interpreter

INT D6  INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D7

INT D7  INT D7 - IBM ROM BASIC - used while in interpreter

INT D7  INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D8

INT D8  INT D8 - IBM ROM BASIC - used while in interpreter

INT D8  INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D9

INT D9  INT D9 - IBM ROM BASIC - used while in interpreter

INT D9  INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DA

INT DA  INT DA - IBM ROM BASIC - used while in interpreter

INT DA  INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DB

INT DB  INT DB - IBM ROM BASIC - used while in interpreter

INT DB  INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DC

INT DC  INT DC - PC/370 v4.1- - API

INT DC  INT DC - IBM ROM BASIC - used while in interpreter

INT DC  INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DD

INT DD  INT DD - IBM ROM BASIC - used while in interpreter

INT DD  INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER


INT DE

INT DE  INT DE - IBM ROM BASIC - used while in interpreter

INT DE  INT DE - APL*PLUS/PC - ???


INT DF

INT DF  INT DF - Victor 9000 - SuperBIOS

INT DF  INT DF - IBM ROM BASIC - used while in interpreter

INT DF  INT DF - APL*PLUS/PC - SAME AS INT 10


INT E0

INT E0  INT E0 - IBM ROM BASIC - used while in interpreter

INT E0  INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION

INT E0  INT E0 - VIRUS - "Micro-128" - ???

INT E0  INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS

INT E0  INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY

INT E0  INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE

INT E0  INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER

INT E0  INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER

INT E0  INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS

INT E0  INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS

INT E0  INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE

INT E0  INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION


INT E1

INT E1  INT E1 - IBM ROM BASIC - used while in interpreter

INT E1  INT E1 - PC Cluster Disk Server Information


INT E2

INT E2  INT E2 - IBM ROM BASIC - used while in interpreter

INT E2  INT E2 - PC Cluster Program


INT E4

INT E4 AX=0005

INT E4  INT E4 - IBM ROM BASIC - used while in interpreter


INT EC

INT EC  INT EC - IBM ROM BASIC - used while in interpreter

INT EC  INT EC - used by Alloy NTNX

INT EC  INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR


INT EF

INT EF  INT EF - BASIC - ORIGINAL INT 09 VECTOR

INT EF  INT EF - GEM - INTERFACE


INT F1

INT F1  INT F1 - reserved for user interrupt

INT F1  INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH

INT F1  INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM

INT F1  INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS


INT F2

INT F2  INT F2 - reserved for user interrupt

INT F2  INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM

INT F2  INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API


INT F3

INT F3  INT F3 - reserved for user interrupt

INT F3  INT F3 - SoundBlaster - POINTER TO ECHO VALUE

INT F3  INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR


INT F4

INT F4  INT F4 - reserved for user interrupt

INT F4  INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK


INT F5

INT F5  INT F5 - reserved for user interrupt

INT F5  INT F5 - DoubleDOS - ???


INT F6

INT F6  INT F6 - reserved for user interrupt

INT F6  INT F6 - DoubleDOS - ???


INT F7

INT F7  INT F7 - reserved for user interrupt

INT F7  INT F7 - DoubleDOS - ???

INT F7 AH=00  INT F7 - FSBBS 2.0 - CONFIGURATION RECORD

INT F7 AH=01  INT F7 - FSBBS 2.0 - USER RECORD

INT F7 AH=02  INT F7 - FSBBS 2.0 - GET ACCOUNT NAME

INT F7 AH=03  INT F7 - FSBBS 2.0 - TERMINAL NUMBER

INT F7 AH=04  INT F7 - FSBBS 2.0 - PASSDATA BUFFER

INT F7 AH=05  INT F7 - FSBBS 2.0 - TIMER FUNCTIONS

INT F7 AH=06  INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY

INT F7 AH=07  INT F7 - FSBBS 2.0 - DUMP FUNCTIONS


INT F8

INT F8  INT F8 - TANDY??? - 100 HZ INTERRUPT

INT F8  INT F8 - DoubleDOS - ???


INT F9

INT F9  INT F9 - reserved for user interrupt

INT F9  INT F9 - DoubleDOS - ???


INT FA

INT FA  INT FA - TANDY??? - SERIAL PORT USART INTERRUPT

INT FA  INT FA - DoubleDOS - TURN OFF TIMESHARING


INT FB

INT FB  INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT

INT FB  INT FB - DoubleDOS - TURN ON TIMESHARING


INT FC

INT FC  INT FC - reserved for user interrupt

INT FC  INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS


INT FD

INT FD  INT FD - reserved for user interrupt

INT FD  INT FD - DoubleDOS - ???


INT FE

INT FE  INT FE - AT/XT286/PS50+ - destroyed by return from protected mode

INT FE  INT FE - DoubleDOS - GIVE UP TIME

INT FE  INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER


INT FF

INT FF  INT FF - AT/XT286/PS50+ - destroyed by return from protected mode

INT FF  INT FF - Z100 - WARM BOOT


INT 1000
INT 10 AH=00

INT 10 AH=00  INT 10 - VIDEO - SET VIDEO MODE

INT 10 AX=0070  INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET

INT 10 AX=007E  INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE

INT 10 AX=007F  INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS


INT 1005
INT 10 AH=05

INT 10 AH=05  INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE

INT 10 AH=05  INT 10 - VIDEO - PCjr - MANIPULATE CRT/CPU PAGE REGISTERS

INT 10 AH=05  INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER


INT 100B
INT 10 AH=0B

INT 10 AH=0B  INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR

INT 10 AH=0B  INT 10 - VIDEO - SET PALETTE


INT 100F
INT 10 AH=0F

INT 10 AH=0F  INT 10 - VIDEO - GET CURRENT VIDEO MODE

INT 10 AX=0F56  INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)

INT 10 AH=0F  INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK


INT 1010
INT 10 AH=10

INT 10 AH=10  INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES

INT 10 AH=10  INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED

INT 10 AX=1000  INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,EGA,MCGA,VGA)

INT 10 AX=1001  INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,EGA,VGA)

INT 10 AX=1002  INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,EGA,VGA)

INT 10 AX=1003  INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)

INT 10 AX=1007  INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)

INT 10 AX=1008  INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)

INT 10 AX=1009  INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)

INT 10 AX=1010  INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)

INT 10 AX=1012  INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)

INT 10 AX=1013  INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)

INT 10 AX=1015  INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)

INT 10 AX=1017  INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)

INT 10 AX=1018  INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)

INT 10 AX=1019  INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)

INT 10 AX=101A  INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)

INT 10 AX=101B  INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)

INT 10 AX=10E0  INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE

INT 10 AX=10F0  INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE

INT 10 AX=10F1  INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE

INT 10 AX=10F2  INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF IN HiColor MODE


INT 1011
INT 10 AH=11

INT 10 AH=11  INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES

INT 10 AH=11  INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)

INT 10 AH=11  INT 10 - VIDEO - GRAPHICS-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)

INT 10 AX=1130  INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)


INT 1012
INT 10 AH=12

INT 10 AH=12  INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC

INT 10 AH=12  INT 10 - Tseng ET-4000 BIOS v3.00 - BUG

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL

INT 10 AH=12  INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES

INT 10 AH=12  INT 10 - Tseng ET-4000 BIOS v3.00 - BUG

INT 10 AH=12  INT 10 - Tseng ET-4000 BIOS v3.00 - BUG

INT 10 AH=12  INT 10 - Tseng ET-4000 BIOS v3.00 - BUG

INT 10 AH=12  INT 10 - Tseng ET-4000 BIOS v3.00 - BUG

INT 10 AH=12  INT 10 - Tseng ET-4000 BIOS v3.00 - BUG


INT 1014
INT 10 AH=14

INT 10 AX=1400  INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)

INT 10 AX=1401  INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)

INT 10 AX=1402  INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)


INT 1015
INT 10 AH=15

INT 10 AH=15  INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)

INT 10 AH=15  INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)


INT 104B
INT 10 AH=4B

INT 10 AH=4B  INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)

INT 10 AH=4B  INT 10 - FRIEZE v7.0+ - API


INT 104F
INT 10 AH=4F

INT 10 AX=4F00  INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION

INT 10 AX=4F01  INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION

INT 10 AX=4F02  INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE

INT 10 AX=4F03  INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE

INT 10 AX=4F04  INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE

INT 10 AX=4F05  INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL

INT 10 AX=4F06  INT 10 - VESA SuperVGA BIOS v1.1 - GET/SET LOGICAL SCAN LINE LENGTH

INT 10 AX=4F07  INT 10 - VESA SuperVGA BIOS v1.1 - GET/SET DISPLAY START

INT 10 AX=4F08  INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL

INT 10 AX=4FFF  INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF


INT 1050
INT 10 AH=50

INT 10 AH=50  INT 10 - SCROLOCK.COM - INSTALLATION CHECK

INT 10 AX=5000  INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE

INT 10 AX=5001  INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE

INT 10 AX=5049  INT 10 - VIDEO - SCREENR v1.55+ - API


INT 1051
INT 10 AH=51

INT 10 AH=51  INT 10 - SCROLOCK.COM - ENABLE/DISABLE

INT 10 AX=5100  INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER

INT 10 AX=5101  INT 10 - VIDEO - AX PC - READ CHARACTER


INT 1052
INT 10 AH=52

INT 10 AX=5200  INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER

INT 10 AX=5201  INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER


INT 1055
INT 10 AH=55

INT 10 AH=55  INT 10 - Show Partner F/X v3.6 - UNINSTALL

INT 10 AX=5555  INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK


INT 106A
INT 10 AH=6A

INT 10 AX=6A00  INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES

INT 10 AX=6A01  INT 10 - DGIS - REDIRECT CHARACTER OUTPUT

INT 10 AX=6A02  INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE


INT 106E
INT 10 AH=6E

INT 10 AX=6E00  INT 10 - Paradise VGA internal - GET ???

INT 10 AX=6E04  INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???

INT 10 AX=6E05  INT 10 - Paradise VGA internal - SET MODE


INT 106F
INT 10 AH=6F

INT 10 AX=6F00  INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK

INT 10 AX=6F01  INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO

INT 10 AX=6F04  INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION

INT 10 AX=6F05  INT 10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE

INT 10 AX=6F06  INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE

INT 10 AX=6F07  INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION


INT 1070
INT 10 AH=70

INT 10 AH=70  INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM

INT 10 AX=7000

INT 10 AX=7000

INT 10 AX=7000


INT 107F
INT 10 AH=7F

INT 10 AX=7F00  INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO

INT 10 AX=7F01

INT 10 AX=7F01

INT 10 AX=7F01

INT 10 AX=7F02

INT 10 AX=7F02

INT 10 AX=7F03

INT 10 AX=7F03

INT 10 AX=7F03

INT 10 AX=7F04

INT 10 AX=7F04

INT 10 AX=7F04

INT 10 AX=7F04

INT 10 AX=7F05  INT 10 - SOLLEX SuperVGA - LOAD REGISTER

INT 10 AX=7F06  INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL

INT 10 AX=7F07  INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM


INT 1082
INT 10 AH=82

INT 10 AH=82  INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO

INT 10 AX=8200  INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE


INT 10BF
INT 10 AH=BF

INT 10 AX=BF00  INT 10 - VIDEO - Compaq Portable Extensions - SELECT EXTERNAL MONITOR

INT 10 AX=BF01  INT 10 - VIDEO - Compaq Portable Extensions - SELECT INTERNAL MONITOR

INT 10 AX=BF02  INT 10 - VIDEO - Compaq Portable Extensions - SET MASTER MODE OF CURRENT CTRLR

INT 10 AX=BF03  INT 10 - VIDEO - Compaq Portable/Systempro Extensions - GET ENVIRONMENT

INT 10 AX=BF04  INT 10 - VIDEO - Compaq Portable Extensions - SET MODE SWITCH DELAY

INT 10 AX=BF05  INT 10 - VIDEO - Compaq Systempro Extensions - ENABLE/DISABLE DISPLAY

INT 10 AX=BF06  INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE

INT 10 AX=BF07  INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE

INT 10 AX=BF08  INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS


INT 10CC
INT 10 AH=CC

INT 10 AX=CC00  INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)

INT 10 AX=CC01  INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS

INT 10 AX=CC02  INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS


INT 10CD
INT 10 AH=CD

INT 10 AX=CD00  INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)

INT 10 AX=CD01  INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)

INT 10 AX=CD02  INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)

INT 10 AX=CD03  INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)

INT 10 AX=CD04  INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)

INT 10 AX=CD05  INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)

INT 10 AX=CD06  INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)

INT 10 AX=CD07  INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)

INT 10 AX=CD08  INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)

INT 10 AX=CD10  INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)

INT 10 AH=CD  INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)


INT 10FA
INT 10 AH=FA

INT 10 AH=FA  INT 10 - EGA Register Interface Library - INTERROGATE DRIVER

INT 10 AH=FA  INT 10 - FASTBUFF.COM - INSTALLATION CHECK


INT 10FF
INT 10 AH=FF

INT 10 AH=FF  INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER

INT 10 AH=FF  INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS

INT 10 AX=FF00  INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP

INT 10 AX=FF01  INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE

INT 10 AX=FF02  INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED


INT 11FF
INT 11 AH=FF

INT 11 AH=FF  INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND

INT 11 AX=FFFE  INT 11 - BACK&FORTH (before v1.62) API


INT 1305
INT 13 AH=05

INT 13 AH=05  INT 13 - FLOPPY - FORMAT TRACK

INT 13 AH=05  INT 13 - FIXED DISK - FORMAT TRACK

INT 13 AH=05  INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND


INT 1306
INT 13 AH=06

INT 13 AH=06  INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)

INT 13 AH=06  INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING


INT 1307
INT 13 AH=07

INT 13 AH=07  INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)

INT 13 AH=07  INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE


INT 1312
INT 13 AH=12

INT 13 AH=12  INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)

INT 13 AH=12  INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK


INT 1318
INT 13 AH=18

INT 13 AH=18  INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)

INT 13 AH=18  INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION


INT 1319
INT 13 AH=19

INT 13 AH=19  INT 13 - FIXED DISK - PARK HEADS (XT286,PS)

INT 13 AH=19  INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE


INT 131A
INT 13 AH=1A

INT 13 AH=1A  INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)

INT 13 AH=1A  INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY


INT 131B
INT 13 AH=1B

INT 13 AH=1B  INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER

INT 13 AH=1B  INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK


INT 131C
INT 13 AH=1C

INT 13 AH=1C  INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM

INT 13 AX=1C0A  INT 13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION

INT 13 AX=1C0B  INT 13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION

INT 13 AX=1C0C  INT 13 - ESDI FIXED DISK - GET POS INFORMATION

INT 13 AX=1C0E  INT 13 - ESDI FIXED DISK - TRANSLATE RBA TO ABA


INT 1320
INT 13 AH=20

INT 13 AH=20  INT 13 - DISK - ??? (Western Digital "Super BIOS")

INT 13 AX=20FF  INT 13 - QCACHE - DISMOUNT


INT 1355
INT 13 AH=55

INT 13 AX=5504  INT 13 - Seagate - GET CONTROLLER TYPE???

INT 13 AX=5505  INT 13 - Seagate - PARK HEADS???

INT 13 AX=5514  INT 13 - Seagate - ???

INT 13 AX=5515  INT 13 - Seagate - PARK HEADS???


INT 137B
INT 13 AH=7B

INT 13 AX=7B00  INT 13 - NOW! - GET INFORMATION

INT 13 AX=7B01  INT 13 - NOW! - ???

INT 13 AX=7B02  INT 13 - NOW! - SET INFORMATION

INT 13 AX=7B03  INT 13 - NOW! - ???

INT 13 AX=7B04  INT 13 - NOW! - ???

INT 13 AX=7B05  INT 13 - NOW! - GET ???

INT 13 AX=7B06  INT 13 - NOW! - GET ???

INT 13 AX=7B07  INT 13 - NOW! - GET ???

INT 13 AX=7B08  INT 13 - NOW! - ???


INT 138E
INT 13 AH=8E

INT 13 AX=8EED  INT 13 - HyperDisk v4.01+ - ???

INT 13 AX=8EEE  INT 13 - HyperDisk v4.01+ - ???

INT 13 AX=8EEF  INT 13 - HyperDisk v4.01+ - ???


INT 13AD
INT 13 AH=AD

INT 13 AH=AD  INT 13 - Priam HARD DISK CONTROLLER???

INT 13 AH=AD  INT 13 - Qualitas Qcache v4.00 - ???


INT 1400
INT 14 AH=00

INT 14 AH=00  INT 14 - SERIAL - INITIALIZE PORT

INT 14 AH=00  INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE

INT 14 AH=00  INT 14 - MBBIOS - INITIALIZE PORT


INT 1402
INT 14 AH=02

INT 14 AH=02  INT 14 - SERIAL - READ CHARACTER FROM PORT

INT 14 AH=02  INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT


INT 1404
INT 14 AH=04

INT 14 AH=04  INT 14 - SERIAL I/O - EXTENDED INITIALIZE (CONVERTIBLE,PS)

INT 14 AH=04  INT 14 - FOSSIL - INITIALIZE DRIVER

INT 14 AH=04  INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT

INT 14 AH=04  INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE

INT 14 AH=04  INT 14 - MBBIOS - INQUIRY


INT 1405
INT 14 AH=05

INT 14 AH=05  INT 14 - SERIAL I/O - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)

INT 14 AH=05  INT 14 - FOSSIL - DEINITIALIZE DRIVER

INT 14 AH=05  INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT

INT 14 AH=05  INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL

INT 14 AH=05  INT 14 - MBBIOS - DROP DTR AND RTS


INT 1406
INT 14 AH=06

INT 14 AH=06  INT 14 - FOSSIL - RAISE/LOWER DTR

INT 14 AH=06  INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT

INT 14 AH=06  INT 14 - MBBIOS - RAISE DTR AND RTS


INT 1407
INT 14 AH=07

INT 14 AH=07  INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS

INT 14 AH=07  INT 14 - MultiDOS Plus IODRV - GET PORT STATUS

INT 14 AH=07  INT 14 - MBBIOS - SEND BREAK


INT 1408
INT 14 AH=08

INT 14 AH=08  INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE

INT 14 AH=08  INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS

INT 14 AH=08  INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK

INT 14 AH=08  INT 14 - MBBIOS - NON-DESTRUCTIVE READ


INT 1409
INT 14 AH=09

INT 14 AH=09  INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT

INT 14 AH=09  INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS

INT 14 AH=09  INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS

INT 14 AH=09  INT 14 - MBBIOS - GET/SET OPTIONS


INT 140A
INT 14 AH=0A

INT 14 AH=0A  INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT

INT 14 AH=0A  INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK

INT 14 AH=0A  INT 14 - MBBIOS - WRITE BUFFER


INT 140B
INT 14 AH=0B

INT 14 AH=0B  INT 14 - FOSSIL - TRANSMIT NO WAIT

INT 14 AH=0B  INT 14 - MBBIOS - READ BUFFER


INT 140D
INT 14 AH=0D

INT 14 AH=0D  INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT

INT 14 AH=0D  INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG


INT 140E
INT 14 AH=0E

INT 14 AH=0E  INT 14 - FOSSIL - KEYBOARD READ WITH WAIT

INT 14 AH=0E  INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING


INT 140F
INT 14 AH=0F

INT 14 AH=0F  INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL

INT 14 AH=0F  INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING


INT 1410
INT 14 AH=10

INT 14 AH=10  INT 14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF

INT 14 AH=10  INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER


INT 1411
INT 14 AH=11

INT 14 AH=11  INT 14 - FOSSIL - SET CURRENT CURSOR LOCATION

INT 14 AH=11  INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER


INT 1412
INT 14 AH=12

INT 14 AH=12  INT 14 - FOSSIL - READ CURRENT CURSOR LOCATION

INT 14 AH=12  INT 14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE


INT 1416
INT 14 AH=16

INT 14 AH=16  INT 14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN

INT 14 AH=16  INT 14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND


INT 1418
INT 14 AH=18

INT 14 AH=18  INT 14 - FOSSIL - READ BLOCK

INT 14 AH=18  INT 14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND


INT 1419
INT 14 AH=19

INT 14 AH=19  INT 14 - FOSSIL - WRITE BLOCK

INT 14 AH=19  INT 14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT


INT 141A
INT 14 AH=1A

INT 14 AH=1A  INT 14 - FOSSIL - BREAK BEGIN OR END

INT 14 AH=1A  INT 14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER


INT 1420
INT 14 AH=20

INT 14 AH=20  INT 14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT

INT 14 AH=20  INT 14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT

INT 14 AH=20  INT 14 - MultiDOS Plus - INITIALIZE PORT


INT 1421
INT 14 AH=21

INT 14 AH=21  INT 14 - X00 FOSSIL - STUFF RECEIVE BUFFER

INT 14 AH=21  INT 14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT

INT 14 AH=21  INT 14 - MultiDOS Plus - TRANSMIT CHARACTER


INT 1422
INT 14 AH=22

INT 14 AH=22  INT 14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT

INT 14 AH=22  INT 14 - MultiDOS Plus - RECEIVE CHARACTER


INT 1423
INT 14 AH=23

INT 14 AH=23  INT 14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID

INT 14 AH=23  INT 14 - MultiDOS Plus - GET PORT STATUS


INT 1424
INT 14 AH=24

INT 14 AH=24  INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS

INT 14 AH=24  INT 14 - MultiDOS Plus - SET MONITOR MODE


INT 1480
INT 14 AH=80

INT 14 AH=80  INT 14 - COMMUNICATIONS FOSSIL

INT 14 AH=80  INT 14 - COURIERS.COM - INSTALLATION CHECK

INT 14 AX=8000  INT 14 - ARTICOM - INSTALLATION CHECK

INT 14 AX=8001  INT 14 - ARTICOM - UNLOAD ASYNCHRONOUS REDIRECTOR FROM MEMORY

INT 14 AX=8002  INT 14 - ARTICOM - GET ASYNCHRONOUS REDIRECTOR STATUS

INT 14 AX=8003  INT 14 - ARTICOM - TRANSLATE ERROR CODE TO ERROR STRING

INT 14 AX=8004  INT 14 - ARTICOM - ATTACH ASYNCHRONOUS RESOURCE

INT 14 AX=8005  INT 14 - ARTICOM - DETACH ASYNCHRONOUS RESOURCE

INT 14 AX=8006  INT 14 - ARTICOM - GET RESOURCE INFORMATION

INT 14 AX=8007  INT 14 - ARTICOM - GET REDIRECTED PORT INFORMATION

INT 14 AX=8008  INT 14 - ARTICOM - GET AVAILABLE SERVER NAME

INT 14 AX=8009  INT 14 - ARTICOM - SET SEND AND RECEIVE TIMEOUTS

INT 14 AX=800A  INT 14 - ARTICOM - MODIFY FLOW CONTROL

INT 14 AX=8025  INT 14 - ARTICOM - SET INTERNAL SEND/RECEIVE VECTOR

INT 14 AX=8035  INT 14 - ARTICOM - GET INTERNAL SEND/RECEIVE VECTOR


INT 1481
INT 14 AH=81

INT 14 AH=81  INT 14 - COURIERS.COM - CHECK IF PORT BUSY

INT 14 AH=81  INT 14 - Egberto Willies COMM-DRV - EXTENDED INITIALIZATION

INT 14 AX=8100  INT 14 - VIDEO FOSSIL - RETURN VFOSSIL INFORMATION

INT 14 AX=8101  INT 14 - VIDEO FOSSIL - OPEN VFOSSIL

INT 14 AX=8102  INT 14 - VIDEO FOSSIL - CLOSE VFOSSIL

INT 14 AX=8103  INT 14 - VIDEO FOSSIL - UNINSTALL


INT 1482
INT 14 AH=82

INT 14 AH=82  INT 14 - KEYBOARD FOSSIL

INT 14 AH=82  INT 14 - COURIERS.COM - CONFIGURE PORT


INT 1483
INT 14 AH=83

INT 14 AH=83  INT 14 - SYSTEM FOSSIL

INT 14 AH=83  INT 14 - COURIERS.COM - START INPUT


INT 14A0
INT 14 AH=A0

INT 14 AH=A0  INT 14 - 3com BAPI SERIAL I/O - CONNECT TO PORT

INT 14 AH=A0  INT 14 - Interconnections Inc. TES - INSTALLATION CHECK/STATUS REPORT


INT 14A1
INT 14 AH=A1

INT 14 AH=A1  INT 14 - 3com BAPI SERIAL I/O - DISCONNECT FROM PORT

INT 14 AH=A1  INT 14 - Interconnections Inc. TES - GET LIST OF SESSIONS WITH STATUS


INT 14A4
INT 14 AH=A4

INT 14 AH=A4  INT 14 - 3com BAPI SERIAL I/O - WRITE BLOCK

INT 14 AH=A4  INT 14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION


INT 14A5
INT 14 AH=A5

INT 14 AH=A5  INT 14 - 3com BAPI SERIAL I/O - READ BLOCK

INT 14 AH=A5  INT 14 - Interconnections Inc. TES - RESUME A SESSION


INT 14A6
INT 14 AH=A6

INT 14 AH=A6  INT 14 - 3com BAPI SERIAL I/O - SEND SHORT BREAK

INT 14 AH=A6  INT 14 - Interconnections Inc. TES - DROP A SESSION


INT 14A7
INT 14 AH=A7

INT 14 AH=A7  INT 14 - 3com BAPI SERIAL I/O - READ STATUS

INT 14 AH=A7  INT 14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION


INT 14F0
INT 14 AH=F0

INT 14 AX=F0F0  INT 14 - ASAP v1.0 - ???

INT 14 AX=F0F1  INT 14 - ASAP v1.0 - INSTALLATION CHECK


INT 1500
INT 15 AH=00

INT 15 AH=00  INT 15 - CASSETTE - TURN ON TAPE DRIVE'S MOTOR (PC and PCjr only)

INT 15 AH=00  INT 15 - Amstrad PC1512 - GET AND RESET MOUSE COUNTS

INT 15 AH=00  INT 15 - VMiX v2+ - INSTALLATION CHECK

INT 15 AH=00  INT 15 - MultiDOS Plus - GIVE UP TIME SLICE


INT 1501
INT 15 AH=01

INT 15 AH=01  INT 15 - CASSETTE - TURN OFF TAPE DRIVE'S MOTOR (PC and PCjr only)

INT 15 AH=01  INT 15 - Amstrad PC1512 - WRITE DATA TO NON-VOLATILE RAM

INT 15 AH=01  INT 15 - VMiX - "sys_chanreq" - I/O CHANNEL OBJECT MANAGER

INT 15 AH=01  INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE


INT 1502
INT 15 AH=02

INT 15 AH=02  INT 15 - CASSETTE - READ DATA

INT 15 AH=02  INT 15 - Amstrad PC1512 - READ DATA FROM NON-VOLATILE RAM

INT 15 AH=02  INT 15 - VMiX - "sys_memreq" - MEMORY OBJECT MANAGER

INT 15 AH=02  INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE


INT 1503
INT 15 AH=03

INT 15 AH=03  INT 15 - CASSETTE - WRITE DATA (PC and PCjr only)

INT 15 AH=03  INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE WRITE REGISTER

INT 15 AH=03  INT 15 - VMiX - "sys_pinput" - PROMPTED CONSOLE INPUT

INT 15 AH=03  INT 15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL


INT 1504
INT 15 AH=04

INT 15 AH=04  INT 15 - SYSTEM - BUILD ABIOS SYSTEM PARAMETER TABLE (PS)

INT 15 AH=04  INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE READ REGISTER

INT 15 AH=04  INT 15 - VMiX - "sys_vprintf" - FORMATTED OUTPUT TO STREAM

INT 15 AH=04  INT 15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK


INT 1505
INT 15 AH=05

INT 15 AH=05  INT 15 - SYSTEM - BUILD ABIOS INITIALIZATION TABLE (PS)

INT 15 AH=05  INT 15 - Amstrad PC1512 - WRITE VDU GRAPHICS BORDER REGISTER

INT 15 AH=05  INT 15 - VMiX - "sys_getpid" - GET PROCESS ID OF CURRENT PROCESS

INT 15 AH=05  INT 15 - MultiDOS Plus - CHECK MAILBOX


INT 1506
INT 15 AH=06

INT 15 AH=06  INT 15 - Amstrad PC1512 - GET ROS VERSION NUMBER

INT 15 AH=06  INT 15 - VMiX - "sys_getpcb" - GET POINTER TO PROCESS CONTROL BLOCK

INT 15 AH=06  INT 15 - MultiDOS Plus - READ MAILBOX


INT 1507
INT 15 AH=07

INT 15 AH=07  INT 15 - VMiX - "sys_getocb" - GET POINTER TO OBJECT CONTROL BLOCK

INT 15 AH=07  INT 15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD)


INT 1508
INT 15 AH=08

INT 15 AH=08  INT 15 - VMiX - "sys_getccb" - GET CHANNEL CONTROL BLOCK

INT 15 AH=08  INT 15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD)


INT 1509
INT 15 AH=09

INT 15 AH=09  INT 15 - VMiX - "sys_getqueue" - GET ID OF QUEUED ELEMENT

INT 15 AH=09  INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY


INT 150A
INT 15 AH=0A

INT 15 AH=0A  INT 15 - VMiX - "sys_qetqnext" - GET ID OF NEXT QUEUED ELEMENT

INT 15 AH=0A  INT 15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL


INT 150B
INT 15 AH=0B

INT 15 AH=0B  INT 15 - VMiX - "sys_sysreq" - SYSTEM CONFIGURATION MANAGER

INT 15 AH=0B  INT 15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY


INT 150C
INT 15 AH=0C

INT 15 AH=0C  INT 15 - VMiX - "sys_getstack" - GET POINTER TO PROCESS TSS STACK

INT 15 AH=0C  INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY


INT 150D
INT 15 AH=0D

INT 15 AH=0D  INT 15 - VMiX - "sys_spawn" - START A CHILD PROCESS JOB SHELL

INT 15 AH=0D  INT 15 - MultiDOS Plus - DISABLE MULTITASKING


INT 150E
INT 15 AH=0E

INT 15 AH=0E  INT 15 - VMiX - "sys_kill" - HARD TERMINATE PROCESS

INT 15 AH=0E  INT 15 - MultiDOS Plus - ENABLE MULTITASKING


INT 150F
INT 15 AH=0F

INT 15 AH=0F  INT 15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only)

INT 15 AH=0F  INT 15 - VMiX - "sys_getqkey" - GET KEY FIELD OF QUEUED ELEMENT

INT 15 AH=0F  INT 15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND


INT 1510
INT 15 AH=10

INT 15 AH=10  INT 15 - VMiX - "sys_virtual" - EXECUTE CONFORMING FUNCTION IN PROTECTED MODE

INT 15 AH=10  INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE

INT 15 AX=1000  INT 15 - TopView - "PAUSE" - GIVE UP CPU TIME

INT 15 AX=1001  INT 15 - TopView - "GETMEM" - ALLOCATE "SYSTEM" MEMORY

INT 15 AX=1002  INT 15 - TopView - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY

INT 15 AX=1003  INT 15 - TopView - "PRINTC" - DISPLAY CHARACTER/ATTRIBUTE ON SCREEN

INT 15 AH=10  INT 15 - TopView - UNIMPLEMENTED IN DV 2.x

INT 15 AX=1013  INT 15 - TopView - "GETBIT" - DEFINE A 2ND-LEVEL INTERRUPT HANDLER

INT 15 AX=1014  INT 15 - TopView - "FREEBIT" - UNDEFINE A 2ND-LEVEL INTERRUPT HANDLER

INT 15 AX=1015  INT 15 - TopView - "SETBIT" - SCHEDULE ONE OR MORE 2ND-LEVEL INTERRUPTS

INT 15 AX=1016  INT 15 - TopView - "ISOBJ" - VERIFY OBJECT HANDLE

INT 15 AX=1017  INT 15 - TopView - UNIMPLEMENTED IN DV 2.x

INT 15 AX=1018  INT 15 - TopView - "LOCATE" - FIND WINDOW AT A GIVEN SCREEN LOCATION

INT 15 AX=1019  INT 15 - TopView - "SOUND" - MAKE TONE

INT 15 AX=101A  INT 15 - TopView - "OSTACK" - SWITCH TO TASK'S INTERNAL STACK

INT 15 AX=101B  INT 15 - TopView - "BEGINC" - BEGIN CRITICAL REGION

INT 15 AX=101C  INT 15 - TopView - "ENDC" - END CRITICAL REGION

INT 15 AX=101D  INT 15 - TopView - "STOP" - STOP TASK

INT 15 AX=101E  INT 15 - TopView - "START" - START TASK

INT 15 AX=101F  INT 15 - TopView - "DISPEROR" - POP-UP ERROR WINDOW

INT 15 AX=1020  INT 15 - TopView - UNIMPLEMENTED IN DV v2.00+

INT 15 AX=1021  INT 15 - TopView - "PGMINT" - INTERRUPT ANOTHER TASK

INT 15 AX=1022  INT 15 - TopView - "GETVER" - GET VERSION

INT 15 AX=1023  INT 15 - TopView - "POSWIN" - POSITION WINDOW

INT 15 AX=1024  INT 15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO

INT 15 AX=1025  INT 15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK

INT 15 AH=10  INT 15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x

INT 15 AX=102B  INT 15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK

INT 15 AX=102C  INT 15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS

INT 15 AX=102D  INT 15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL

INT 15 AX=102E  INT 15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY


INT 1511
INT 15 AH=11

INT 15 AH=11  INT 15 - TopView commands

INT 15 AH=11  INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS

INT 15 AH=11  INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE

INT 15 AX=1117  INT 15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT

INT 15 AX=11DE  INT 15 - DESQview - QEXT.SYS - INSTALLATION CHECK


INT 1512
INT 15 AH=12

INT 15 AH=12  INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP

INT 15 AH=12  INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "FREE" - FREE AN OBJECT

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "ADDR" - GET HANDLE OF MESSAGE SENDER

INT 15 AH=12  INT 15 - DESQview v2.26+ - "CONNECT" - CONNECT TWO WINDOWS

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "DIR" - GET PANEL FILE DIRECTORY

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "READ" - READ NEXT LOGICAL LINE OF WINDOW

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "READ" - GET NEXT RECORD FROM OBJECT

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "READ" - WAIT FOR TIMER TO EXPIRE

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "APPLY" - WRITE PANEL TO WINDOW

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE TO OBJECT

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE STRING TO WINDOW

INT 15 AH=12  INT 15 - DESQview 2.20+ - SEND MESSAGE - "SETPRI" - SET PRIORITY WITHIN OBJECTQ

INT 15 AH=12  INT 15 - DESQview 2.20+ - SEND MESSAGE - "GETPRI" - GET PRIORITY WITHIN OBJECTQ

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SIZEOF" - GET OBJECT SIZE

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "LEN" - GET OBJECT LENGTH

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "ADDTO" - WRITE CHARS AND ATTRIBS TO WINDOW

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "ADDTO" - SEND MAILBOX MESSAGE/STAT BY VALUE

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "ADDTO" - SET OBJECT BITS

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SUBFROM" - WRITE ATTRIBUTES TO WINDOW

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SUBFROM" - SEND MAILBOX MESSAGE/STAT BY REF

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SUBFROM" - REMOVE OBJECT FROM OBJECTQ

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SUBFROM" - RESET OBJECT BITS

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "OPEN" - OPEN OBJECT

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "CLOSE" - CLOSE OBJECT

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "ERASE" - ERASE OBJECT

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "STATUS" - GET OBJECT STATUS

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "EOF" - GET OBJECT EOF STATUS

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "AT" - POSITION OBJECT CURSOR

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SETNAME" - ASSIGN NAME TO MAILBOX

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SETSCALE" - SET POINTER SCALE FACTOR

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "READN" - GET NEXT N OBJECT BYTES

INT 15 AH=12  INT 15 - DESQview 2.50+ - SEND MESSAGE - "GETNAME" - GET NAME OF MAILBOX

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "GETSCALE" - GET POINTER SCALE FACTOR

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "REDRAW" - REDRAW WINDOW

INT 15 AH=12  INT 15 - DESQview 2.50+ - SEND MESSAGE - "READINTO" - GET NEXT MAIL MESSAGE

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SETICON" - SPECIFY POINTER ICON

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "SETESC" - SET ESCAPE ROUTINE ADDRESS

INT 15 AH=12  INT 15 - TopView - SEND MESSAGE - "LOCK" - REQUEST EXCLUSIVE ACCESS TO RESOURCE

INT 15 AH=12  INT 15 - DESQview v2.20+ - SEND MESSAGE - "SETFLAGS" - SET OBJECT FLAGS

INT 15 AH=12  INT 15 - DESQview v2.20+ - SEND MESSAGE - "GETFLAGS" - GET OBJECT FLAGS

INT 15 AH=12  INT 15 - DESQview v2.42-2.52 - BUG

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

INT 15 AH=12  INT 15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY


INT 1513
INT 15 AH=13

INT 15 AH=13  INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS

INT 15 AH=13  INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK


INT 1514
INT 15 AH=14

INT 15 AH=14  INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW

INT 15 AH=14  INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND


INT 1515
INT 15 AH=15

INT 15 AH=15  INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE

INT 15 AH=15  INT 15 - MultiDOS Plus - GET SYSTEM BLOCK


INT 1516
INT 15 AH=16

INT 15 AH=16  INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR

INT 15 AH=16  INT 15 - MultiDOS Plus - INITIALIZATION


INT 1517
INT 15 AH=17

INT 15 AH=17  INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS

INT 15 AH=17  INT 15 - MultiDOS Plus - MAP IRQ


INT 1518
INT 15 AH=18

INT 15 AH=18  INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS

INT 15 AH=18  INT 15 - MultiDOS Plus - UNMAP IRQ


INT 1519
INT 15 AH=19

INT 15 AH=19  INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS

INT 15 AH=19  INT 15 - MultiDOS Plus - UNMAP ALL IRQs


INT 151A
INT 15 AH=1A

INT 15 AH=1A  INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT

INT 15 AH=1A  INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER


INT 151B
INT 15 AH=1B

INT 15 AH=1B  INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK

INT 15 AH=1B  INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME


INT 151C
INT 15 AH=1C

INT 15 AH=1C  INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION

INT 15 AH=1C  INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME


INT 151D
INT 15 AH=1D

INT 15 AH=1D  INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT

INT 15 AH=1D  INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME


INT 151E
INT 15 AH=1E

INT 15 AH=1E  INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT

INT 15 AX=1E00  INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER

INT 15 AX=1E01  INT 15 - MultiDOS Plus - TRIGGER EVENT

INT 15 AX=1E02  INT 15 - MultiDOS Plus - WAIT FOR EVENT


INT 151F
INT 15 AH=1F

INT 15 AH=1F  INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW

INT 15 AH=1F  INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS


INT 1520
INT 15 AH=20

INT 15 AH=20  INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED

INT 15 AX=2000  INT 15 - DOS 3+ PRINT.COM - DISABLE CRITICAL REGION FLAG

INT 15 AX=2001  INT 15 - DOS 3+ PRINT.COM - SET CRITICAL REGION FLAG

INT 15 AX=2010  INT 15 - OS HOOK - SETUP SYSREQ ROUTINE (AT,XT286,PS50+)

INT 15 AX=2011  INT 15 - OS HOOK - COMPLETION OF SYSREQ FUNCTION (AT,XT286,PS50+)


INT 1524
INT 15 AH=24

INT 15 AX=2400  INT 15 - Qualitas 386MAX v6.01 - TURN ON ???

INT 15 AX=2401  INT 15 - Qualitas 386MAX v6.01 - TURN OFF ???

INT 15 AX=2402  INT 15 - Qualitas 386MAX v6.01 - GET STATE OF ???

INT 15 AX=2403  INT 15 - Qualitas 386MAX v6.01 - GET ???


INT 1540
INT 15 AH=40

INT 15 AH=40  INT 15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE)

INT 15 AX=4000  INT 15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT

INT 15 AX=4001  INT 15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT


INT 1542
INT 15 AH=42

INT 15 AH=42  INT 15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX)

INT 15 AX=4280  INT 15 - Compaq SLT/286 - ENTER STANDBY


INT 1546
INT 15 AH=46

INT 15 AX=4600  INT 15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION

INT 15 AX=4601  INT 15 - Compaq SLT/286 - Modify Power Conservation/Modem Configuration


INT 1553
INT 15 AH=53

INT 15 AX=5300  INT 15 - Advanced Power Management Specification - INSTALLATION CHECK

INT 15 AX=5301  INT 15 - Advanced Power Management Specification - CONNECT REAL-MODE INTERFACE

INT 15 AX=5302  INT 15 R - Advanced Power Management Spec - CONNECT 16-BIT PROTMODE INTERFACE

INT 15 AX=5303  INT 15 - Advanced Power Management Spec - CONNECT 32-BIT PROTMODE INTERFACE

INT 15 AX=5304  INT 15 - Advanced Power Management Specification - DISCONNECT INTERFACE

INT 15 AX=5305  INT 15 - Advanced Power Management Specification - CPU IDLE

INT 15 AX=5306  INT 15 - Advanced Power Management Specification - CPU BUSY

INT 15 AX=5307

INT 15 AX=5307

INT 15 AX=5307

INT 15 AX=5308  INT 15 - Advanced Power Management Spec - ENABLE/DISABLE POWER MANAGEMENT

INT 15 AX=5309  INT 15 - Advanced Power Management Specification - RESTORE POWER-ON DEFAULTS

INT 15 AX=530A  INT 15 - Advanced Power Management Specification - GET POWER STATUS

INT 15 AX=530B  INT 15 - Advanced Power Management Specification - GET POWER MANAGEMENT EVENT


INT 1554
INT 15 AH=54

INT 15 AX=5400  INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION

INT 15 AX=5401  INT 15 C - Omniview Multitasker - PROCESS CREATION

INT 15 AX=5402  INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION

INT 15 AX=5403  INT 15 C - Omniview Multitasker - SAVE

INT 15 AX=5404  INT 15 C - Omniview Multitasker - RESTORE

INT 15 AX=5405  INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND

INT 15 AX=5406  INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND

INT 15 AX=5407  INT 15 C - Omniview Multitasker - EXIT NOTIFICATION


INT 15BF
INT 15 AH=BF

INT 15 AX=BF00  INT 15 - Rational Systems DOS/16M - ???

INT 15 AX=BF01  INT 15 - Rational Systems DOS/16M - ???

INT 15 AX=BF02  INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK

INT 15 AX=BF03  INT 15 - Rational Systems DOS/4GW - UNINSTALL???

INT 15 AX=BF04  INT 15 - Rational Systems DOS/4GW - ???

INT 15 AX=BF05  INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE

INT 15 AX=BF06  INT 15 - Rational Systems DOS/4GW - ???

INT 15 AX=BFDC  INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE

INT 15 AX=BFDE


INT 15C2
INT 15 AH=C2

INT 15 AX=C200  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE

INT 15 AX=C201  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET

INT 15 AX=C202  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE

INT 15 AX=C203  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION

INT 15 AX=C204  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE

INT 15 AX=C205  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE

INT 15 AX=C206  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET/SET SCALING FACTOR

INT 15 AX=C207  INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR


INT 15D8
INT 15 AH=D8

INT 15 AX=D800  INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION

INT 15 AX=D801  INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION

INT 15 AX=D802  INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)

INT 15 AX=D803  INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY

INT 15 AX=D804  INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT

INT 15 AH=D8  INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS


INT 15DE
INT 15 AH=DE

INT 15 AX=DE00  INT 15 - DESQview - GET PROGRAM NAME

INT 15 AX=DE01  INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU

INT 15 AX=DE02  INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW

INT 15 AX=DE03  INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW

INT 15 AX=DE04  INT 15 - DESQview - GET AVAILABLE COMMON MEMORY

INT 15 AX=DE05  INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY

INT 15 AX=DE06  INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY

INT 15 AX=DE07  INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER

INT 15 AX=DE08  INT 15 - DESQview - GET ???

INT 15 AX=DE09  INT 15 - DESQview - UNIMPLEMENTED

INT 15 AX=DE0A  INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE

INT 15 AX=DE0B  INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED

INT 15 AX=DE0C  INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY

INT 15 AX=DE0D  INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY

INT 15 AX=DE0E  INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME

INT 15 AX=DE0F  INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS

INT 15 AX=DE10  INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM

INT 15 AX=DE11  INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION

INT 15 AX=DE12  INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET

INT 15 AX=DE13  INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT

INT 15 AX=DE14  INT 15 - DESQview v2.20+ - GET OBJECT TYPE

INT 15 AX=DE15  INT 15 - DESQview v2.20+ - SET ERROR HANDLING

INT 15 AX=DE16  INT 15 - DESQview v2.20+ - GET ERROR HANDLING

INT 15 AX=DE17

INT 15 AX=DE17

INT 15 AX=DE18  INT 15 - DESQview v2.20+ - internal - ???

INT 15 AX=DE19  INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY

INT 15 AX=DE1A  INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY

INT 15 AX=DE1B  INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT

INT 15 AX=DE1C  INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT

INT 15 AX=DE1D  INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES

INT 15 AX=DE1E  INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS

INT 15 AX=DE1F  INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS

INT 15 AX=DE20  INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK

INT 15 AX=DE21  INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION

INT 15 AX=DE22  INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS

INT 15 AX=DE23  INT 15 U - DESQview v2.31+ - ???

INT 15 AX=DE24  INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION

INT 15 AX=DE25  INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY

INT 15 AX=DE26  INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS

INT 15 AX=DE27  INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA

INT 15 AX=DE28  INT 15 U - DESQview v2.50+ - ???

INT 15 AX=DE29

INT 15 AX=DE29

INT 15 AX=DE29

INT 15 AX=DE29

INT 15 AX=DE29

INT 15 AX=DE29

INT 15 AX=DE2A  INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK

INT 15 AX=DE2B  INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST

INT 15 AX=DE2C  INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION

INT 15 AX=DE2D  INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER

INT 15 AX=DE2E  INT 15 U - DESQview v2.50+ - SOCKET API

INT 15 AX=DE2F  INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?

INT 15 AX=DE30  INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION


INT 1605
INT 16 AH=05

INT 16 AH=05  INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)

INT 16 AH=05  INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)


INT 1642
INT 16 AH=42

INT 16 AX=4252  INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK

INT 16 AX=4253  INT 16 - TEXTCAP 2.0 - UNINSTALL

INT 16 AX=4254  INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE


INT 1645
INT 16 AH=45

INT 16 AX=4500  INT 16 - Shamrock Software EMAIL - GET STATUS

INT 16 AX=4501  INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME

INT 16 AX=4502  INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS

INT 16 AX=4503  INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION

INT 16 AX=4504  INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD

INT 16 AX=4505  INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION

INT 16 AX=4506  INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD


INT 1650
INT 16 AH=50

INT 16 AX=5000  INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE

INT 16 AX=5001  INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE


INT 1655
INT 16 AH=55

INT 16 AX=5500  INT 16 - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR

INT 16 AX=55FF  INT 16 - Swap Utilities - ???


INT 1669
INT 16 AH=69

INT 16 AX=6969

INT 16 AX=6969


INT 166F
INT 16 AH=6F

INT 16 AX=6F00  INT 16 - HP Vectra - ??? - INSTALLATION CHECK

INT 16 AX=6F0D  INT 16 - HP Vectra - ???

INT 16 AX=6F0E  INT 16 - HP Vectra - ???


INT 1677
INT 16 AH=77

INT 16 AH=77  INT 16 - pcANYWHERE III - LOG OFF

INT 16 AX=7761  INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK

INT 16 AX=7788  INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK


INT 167B
INT 16 AH=7B

INT 16 AX=7B00  INT 16 - pcANYWHERE III - SUSPEND

INT 16 AX=7B01  INT 16 - pcANYWHERE III - RESUME


INT 16CA
INT 16 AH=CA

INT 16 AH=CA  INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API

INT 16 AX=CA00

INT 16 AX=CA00


INT 16F0
INT 16 AH=F0

INT 16 AH=F0  INT 16 - Compaq 386 - SET CPU SPEED

INT 16 AX=F0F0  INT 16 - TurboPower TSRs - INSTALLATION CHECK


INT 16F3
INT 16 AH=F3

INT 16 AH=F3  INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)

INT 16 AX=F398  INT 16 U - NORTON GUIDES - INSTALLATION CHECK


INT 16F4
INT 16 AH=F4

INT 16 AX=F400  INT 16 - Compaq Systempro - CACHE CONTROLLER STATUS

INT 16 AX=F401  INT 16 - Compaq Systempro - ENABLE CACHE CONTROLLER

INT 16 AX=F402  INT 16 - Compaq Systempro - DISABLE CACHE CONTROLLER


INT 16FA
INT 16 AH=FA

INT 16 AX=FA00  INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK???

INT 16 AX=FA01  INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL

INT 16 AX=FA02  INT 16 U - PC Tools v8+ VSAFE, VWATCH - ???

INT 16 AX=FA03  INT 16 U - PC Tools v8+ VSAFE, VWATCH - ???

INT 16 AX=FA04  INT 16 U - PC Tools v8+ VSAFE - GET ???

INT 16 AX=FA05  INT 16 U - PC Tools v8+ VSAFE - SET ???

INT 16 AX=FA06  INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???

INT 16 AX=FA07  INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET ???


INT 16FE
INT 16 AH=FE

INT 16 AX=FE55  INT 16 U - PC Tools v8+ DATAMON, DRIVEMAP, CPSCHED, CPTASK - ???

INT 16 AX=FEA4  INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???

INT 16 AX=FEC6  INT 16 U - PC Tools v7+ CPSCHED - ???

INT 16 AX=FED3  INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???

INT 16 AX=FEDC  INT 16 U - PC Tools v7+ CPSCHED - ???

INT 16 AX=FEEF  INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK

INT 16 AX=FEF1  INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK


INT 16FF
INT 16 AH=FF

INT 16 AH=FF  INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER

INT 16 AH=FF  INT 16 - OPTIMA 1024 VGA-Sync - QUERY ZOOM INTERRUPT

INT 16 AX=FF70  INT 16 U - PC Tools v8+ DRIVEMAP - API???

INT 16 AX=FF80  INT 16 U - PC Tools v8+ CPTASK - API

INT 16 AX=FF90  INT 16 U - PC Tools v8+ DESKTOP - ???

INT 16 AX=FF91  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FF92  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FF93  INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG

INT 16 AX=FF94  INT 16 U - PC Tools v7+ DESKTOP - SET ???

INT 16 AX=FF95  INT 16 U - PC Tools v7+ DESKTOP - SET ???

INT 16 AX=FF96  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FF97  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FF98  INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY

INT 16 AX=FF99  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FF9A  INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME

INT 16 AX=FF9B  INT 16 U - PC Tools v7+ DESKTOP - UNUSED

INT 16 AX=FF9C  INT 16 U - PC Tools v8+ CPTASK - ???

INT 16 AX=FF9D  INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???

INT 16 AX=FF9E  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FFA1  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FFA2  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FFA3

INT 16 AX=FFA3

INT 16 AX=FFA3

INT 16 AX=FFA3

INT 16 AX=FFA3

INT 16 AX=FFA3

INT 16 AX=FFA3

INT 16 AX=FFA4  INT 16 U - PC Tools v7+ DESKTOP - ???

INT 16 AX=FFA5

INT 16 AX=FFA5

INT 16 AX=FFA5

INT 16 AX=FFA5

INT 16 AX=FFA5

INT 16 AX=FFA5

INT 16 AX=FFA6  INT 16 U - PC Tools v6.0+ DESKTOP API - GET ???

INT 16 AX=FFA7  INT 16 U - PC Tools v6.0+ DESKTOP API - GET ??? PATH

INT 16 AX=FFA8  INT 16 U - PC Tools v6.0+ DESKTOP API - ???

INT 16 AX=FFA9  INT 16 U - PC Tools v6.0+ DESKTOP API - GET VERSION STRING

INT 16 AX=FFAA  INT 16 U - PC Tools v6.0+ DESKTOP API - ???

INT 16 AX=FFAB  INT 16 U - PC Tools v6.0+ DESKTOP API - GET EDITOR SETTINGS???

INT 16 AX=FFAC  INT 16 U - PC Tools v6.0+ DESKTOP API - SET ???

INT 16 AX=FFAD  INT 16 U - PC Tools v6.0+ DESKTOP API - SET ???

INT 16 AX=FFAE  INT 16 U - PC Tools v6.0+ DESKTOP API - GET ???

INT 16 AX=FFAF  INT 16 U - PC Tools v6.0+ DESKTOP API - SET ???

INT 16 AX=FFB0  INT 16 U - PC Tools v6.0+ DESKTOP API - SET ???

INT 16 AX=FFB1  INT 16 U - PC Tools v6.0+ DESKTOP API - ???

INT 16 AX=FFB2  INT 16 U - PC Tools v5.5+ DESKTOP API - GET ???

INT 16 AX=FFB3  INT 16 U - PC Tools v5.5+ DESKTOP API - ???

INT 16 AX=FFB4  INT 16 U - PC Tools v5.5+ DESKTOP API - SET ??? FLAG

INT 16 AX=FFB5  INT 16 U - PC Tools v5.5+ DESKTOP API - GET/SET WINDOW PARAMETERS

INT 16 AX=FFB6  INT 16 U - PC Tools v5.5+ DESKTOP API - GET ???

INT 16 AX=FFB7  INT 16 U - PC Tools v5.5+ DESKTOP API - GET/SET ???

INT 16 AX=FFB8  INT 16 U - PC Tools v5.1+ DESKTOP API - GET/SET???

INT 16 AX=FFB9  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFBA  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFBB  INT 16 U - PC Tools v5.1+ DESKTOP API - CLEAR ??? FLAG

INT 16 AX=FFBC  INT 16 U - PC Tools v5.1+ DESKTOP API - RESTORE ORIGINAL SCREEN???

INT 16 AX=FFBD  INT 16 U - PC Tools v5.1+ DESKTOP API - ??? DATABASE INDEXING MESSAGES

INT 16 AX=FFBE  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFBF  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFC0  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFC1  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFC2  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFC3  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFC4  INT 16 U - PC Tools v5.1+ DESKTOP API - GET ???

INT 16 AX=FFC5  INT 16 U - PC Tools v5.1+ DESKTOP API - CHECK WHETHER DESKTOP LOADED RESIDENT

INT 16 AX=FFC6  INT 16 U - PC Tools v5.1+ DESKTOP API - SET ???

INT 16 AX=FFC7  INT 16 U - PC Tools v5.1+ DESKTOP API - REMOVE WINDOW

INT 16 AX=FFC8  INT 16 U - PC Tools v5.1+ DESKTOP API - GET ???

INT 16 AX=FFC9  INT 16 U - PC Tools v5.1+ DESKTOP API - COPY DATA TO CLIPBOARD

INT 16 AX=FFCA  INT 16 U - PC Tools v5.1+ DESKTOP API - SET ???

INT 16 AX=FFCB  INT 16 U - PC Tools v5.1+ DESKTOP API - SELECT WINDOW PARAMETERS???

INT 16 AX=FFCC  INT 16 U - PC Tools v5.1+ DESKTOP API - DISPLAY ASCIZ STRING CENTERED IN WINDOW

INT 16 AX=FFCD  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFCE  INT 16 U - PC Tools v5.1+ DESKTOP API - SET ??? DELAYS

INT 16 AX=FFCF  INT 16 U - PC Tools v5.1+ DESKTOP API - CLOSE PRINTER/PRINT FILE

INT 16 AX=FFD0  INT 16 U - PC Tools v5.1+ DESKTOP API - PREPARE TO PRINT???

INT 16 AX=FFD1  INT 16 U - PC Tools v5.1+ DESKTOP API - DISPLAY PRINT OPTIONS MENU

INT 16 AX=FFD2  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFD3  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFD4  INT 16 U - PC Tools v5.1+ DESKTOP API - CREATE/OPEN/DELETE FILE

INT 16 AX=FFD5  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFD6  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFD7  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFD8  INT 16 U - PC Tools v5.1+ DESKTOP API - SAFE CREATE FILE

INT 16 AX=FFD9  INT 16 U - PC Tools v5.1+ DESKTOP API - GET ???

INT 16 AX=FFDA  INT 16 U - PC Tools v5.1+ DESKTOP API - GET NAME OF LAST FILE OPENED

INT 16 AX=FFDB  INT 16 U - PC Tools v5.1+ DESKTOP API - SET ???

INT 16 AX=FFDC  INT 16 U - PC Tools v5.1+ DESKTOP API - UNHOOK

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDD

INT 16 AX=FFDE  INT 16 U - PC Tools v5.1+ DESKTOP API - DISPLAY POPUP MENU

INT 16 AX=FFDF  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFE0  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFE1  INT 16 U - PC Tools v5.1+ DESKTOP API - BEEP

INT 16 AX=FFE2  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFE3  INT 16 U - PC Tools v5.1+ DESKTOP API - PRINT CHARACTER

INT 16 AX=FFE4  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFE5  INT 16 U - PC Tools v5.1+ DESKTOP API - POP UP FILE SELECTION MENU

INT 16 AX=FFE6  INT 16 U - PC Tools v5.1+ DESKTOP API - CHECK FOR AND GET KEYSTROKE

INT 16 AX=FFE7  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFE8  INT 16 U - PC Tools v5.1+ DESKTOP API - DISPLAY NUMBER

INT 16 AX=FFE9  INT 16 U - PC Tools v5.1+ DESKTOP API - GET FILE LIST???

INT 16 AX=FFEA  INT 16 U - PC Tools v5.1+ DESKTOP API - DISPLAY COUNTED STRING

INT 16 AX=FFEB  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFEC  INT 16 U - PC Tools v5.1+ DESKTOP API - GET KEY

INT 16 AX=FFED  INT 16 U - PC Tools v5.1+ DESKTOP API - GET ???

INT 16 AX=FFEE  INT 16 U - PC Tools v5.1+ DESKTOP API - DEFINE PULLDOWN MENUS

INT 16 AX=FFEF  INT 16 U - PC Tools v5.1+ DESKTOP API - INSTALLATION CHECK

INT 16 AX=FFF0  INT 16 U - PC Tools v5.1+ DESKTOP API - SET ???

INT 16 AX=FFF1  INT 16 U - PC Tools v5.1+ DESKTOP API - ALTERNATE INSTALLATION CHECK

INT 16 AX=FFF2  INT 16 U - PC Tools v5.1+ DESKTOP API - DISPLAY HELP LINE

INT 16 AX=FFF3  INT 16 U - PC Tools v5.1+ DESKTOP API - PREPARE TO UNLOAD RESIDENT DESKTOP

INT 16 AX=FFF4  INT 16 U - PC Tools v5.1+ DESKTOP API - ???

INT 16 AX=FFF5  INT 16 U - PC Tools v5.1+ DESKTOP API - GET SCREEN ATTRIBUTE ARRAY

INT 16 AX=FFF6  INT 16 U - PC Tools v5.1+ DESKTOP API - INVOKE NOTEPAD EDITOR

INT 16 AX=FFF7  INT 16 U - PC Tools v5.1+ DESKTOP API - PROCESS MENU BAR ENTRY???

INT 16 AX=FFF8  INT 16 U - PC Tools v5.1+ DESKTOP API - DRAW EMPTY WINDOW

INT 16 AX=FFF9  INT 16 U - PC Tools v5.1+ DESKTOP API - DEFINE SCREEN REFRESH ROUTINE

INT 16 AX=FFFA  INT 16 U - PC Tools v5.1+ DESKTOP API - DEFINE STANDARD PULLDOWN MENUS

INT 16 AX=FFFB  INT 16 U - PC Tools v5.1+ DESKTOP API - PROCESS STANDARD MENU BAR

INT 16 AX=FFFC  INT 16 U - PC Tools v5.1+ DESKTOP API - GET HOTKEYS AND KEYBOARD VECTOR

INT 16 AX=FFFD  INT 16 U - PC Tools v5.1+ DESKTOP API - COPY ???

INT 16 AX=FFFE  INT 16 U - PC Tools v5.1+ DESKTOP API - SHOW MOUSE CURSOR

INT 16 AX=FFFF  INT 16 U - PC Tools v5.1+ DESKTOP API - HIDE MOUSE CURSOR


INT 1702
INT 17 AH=02

INT 17 AH=02  INT 17 - PRINTER - GET STATUS

INT 17 AH=02  INT 17 - INSET - INSTALLATION CHECK


INT 1724
INT 17 AH=24

INT 17 AX=2400  INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS

INT 17 AX=2401  INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE

INT 17 AX=2402  INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE

INT 17 AX=2403  INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER

INT 17 AX=2404  INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK

INT 17 AX=2405  INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK

INT 17 AX=2406  INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE

INT 17 AX=2407  INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE

INT 17 AX=2408  INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE

INT 17 AX=2409  INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE

INT 17 AX=240A  INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT

INT 17 AX=240B  INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE

INT 17 AX=240C  INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT


INT 1750
INT 17 AH=50

INT 17 AX=5000  INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE

INT 17 AX=5001  INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE


INT 1784
INT 17 AH=84

INT 17 AH=84  INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK

INT 17 AH=84  INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION


INT 17CD
INT 17 AH=CD

INT 17 AX=CD00  INT 17 - INSET - EXECUTE COMMAND STRING

INT 17 AX=CD01  INT 17 - INSET - GET IMAGE SIZE

INT 17 AX=CD02  INT 17 - INSET - INITIALIZE

INT 17 AX=CD03  INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE

INT 17 AX=CD04  INT 17 - INSET - INITIALIZE LINKED MODE

INT 17 AX=CD05  INT 17 - INSET - START MERGING IMAGE INTO TEXT

INT 17 AX=CD06  INT 17 - INSET - GRAPHICS LINE FEED

INT 17 AX=CD07  INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER

INT 17 AX=CD08  INT 17 - INSET - CANCEL LINK MODE

INT 17 AX=CD09  INT 17 - INSET - ALTER TEXT LINE SPACING

INT 17 AX=CD0A  INT 17 - INSET - GET SETUP

INT 17 AX=CD0B  INT 17 - INSET - START GETTING SCALED IMAGE

INT 17 AX=CD0C  INT 17 - INSET - GET NEXT IMAGE STRIP


INT 1AFF
INT 1A AH=FF

INT 1A AH=FF  INT 1A - AT&T 6300 - SET TIME AND DATE

INT 1A AH=FF  INT 1A - RighTime v1.1 - PERMANENTLY DISABLE


INT 2106
INT 21 AH=06

INT 21 AH=06  INT 21 - DOS 1+ - DIRECT CONSOLE OUTPUT

INT 21 AH=06  INT 21 - DOS 1+ - DIRECT CONSOLE INPUT


INT 210A
INT 21 AH=0A

INT 21 AH=0A  INT 21 - DOS 1+ - BUFFERED INPUT

INT 21 AX=0A00  INT 21 - WCED v1.6 - INSTALLATION CHECK


INT 210B
INT 21 AH=0B

INT 21 AH=0B  INT 21 - DOS 1+ - GET STDIN STATUS

INT 21 AX=0B56  INT 21 - VIRUS - "Perfume" - INSTALLATION CHECK


INT 210D
INT 21 AH=0D

INT 21 AH=0D  INT 21 - DOS 1+ - DISK RESET

INT 21 AX=0D20  INT 21 - VIRUS - "Crazy Imp" - INSTALLATION CHECK


INT 2125
INT 21 AH=25

INT 21 AH=25  INT 21 - DOS 1+ - SET INTERRUPT VECTOR

INT 21 AX=2501  INT 21 P - Phar Lap 386/DOS-Extender - RESET DOS EXTENDER DATA STRUCTURES

INT 21 AX=2502  INT 21 - Phar Lap 386/DOS-Extender - GET PROTECTED-MODE INTERRUPT VECTOR

INT 21 AX=2503  INT 21 - Phar Lap 386/DOS-Extender - GET REAL-MODE INTERRUPT VECTOR

INT 21 AX=2504  INT 21 - Phar Lap 386/DOS-Extender - SET PROTECTED-MODE INTERRUPT VECTOR

INT 21 AX=2505  INT 21 - Phar Lap 386/DOS-Extender - SET REAL-MODE INTERRUPT VECTOR

INT 21 AX=2506  INT 21 - Phar Lap 386/DOS-Extender - SET INT TO ALWAYS GAIN CONTRL IN PROT MODE

INT 21 AX=2507  INT 21 - Phar Lap 386/DOS-Extender - SET REAL- & PROTECTED-MODE INT VECTORS

INT 21 AX=2508  INT 21 - Phar Lap 386/DOS-Extender - GET SEGMENT LINEAR BASE ADDRESS

INT 21 AX=2509

INT 21 AX=2509

INT 21 AX=250A  INT 21 - Phar Lap 386/DOS-Extender - MAP PHYSICAL MEMORY AT END OF SEGMENT

INT 21 AX=250C  INT 21 - Phar Lap 386/DOS-Extender - GET HARDWARE INTERRUPT VECTORS

INT 21 AX=250D  INT 21 - Phar Lap 386/DOS-Extender - GET REAL-MODE LINK INFORMATION

INT 21 AX=250E  INT 21 - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE

INT 21 AX=250F  INT 21 - Phar Lap 386/DOS-Extender - CONVERT PROTECTED-MODE ADDRESS TO MS-DOS

INT 21 AX=2510  INT 21 - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE, REGISTERS

INT 21 AX=2511  INT 21 - Phar Lap 386/DOS-Extender - ISSUE REAL-MODE INTERRUPT

INT 21 AX=2512  INT 21 - Phar Lap 386/DOS-Extender - LOAD PROGRAM FOR DEBUGGING

INT 21 AX=2513  INT 21 - Phar Lap 386/DOS-Extender - ALIAS SEGMENT DESCRIPTOR

INT 21 AX=2514  INT 21 - Phar Lap 386/DOS-Extender - CHANGE SEGMENT ATTRIBUTES

INT 21 AX=2515  INT 21 - Phar Lap 386/DOS-Extender - GET SEGMENT ATTRIBUTES

INT 21 AX=2516  INT 21 - Phar Lap 386/DOS-Extender - FREE ALL MEMORY OWNED BY LDT

INT 21 AX=2517  INT 21 - Phar Lap 386/DOS-Extender - GET INFO ON DOS DATA BUFFER

INT 21 AX=2518  INT 21 - Phar Lap 386/DOS-Extender - SPECIFY HANDLER FOR MOVED SEGMENTS

INT 21 AX=2519  INT 21 - Phar Lap 386/DOS-Extender VMM - GET ADDITIONAL MEMORY ERROR INFO

INT 21 AX=251A  INT 21 - Phar Lap 386/DOS-Extender VMM - LOCK PAGES IN MEMORY

INT 21 AX=251B  INT 21 - Phar Lap 386/DOS-Extender VMM - UNLOCK PAGES

INT 21 AX=251D  INT 21 - Phar Lap 386/DOS-Extender VMM - READ PAGE-TABLE ENTRY

INT 21 AX=251E  INT 21 - Phar Lap 386/DOS-Extender VMM - WRITE PAGE-TABLE ENTRY

INT 21 AX=251F  INT 21 - Phar Lap 386/DOS-Extender VMM - EXHANGE TWO PAGE-TABLE ENTRIES

INT 21 AX=2520  INT 21 - Phar Lap 386/DOS-Extender VMM - GET MEMORY STATISTICS

INT 21 AX=2521  INT 21 - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S EXTENDED MEMORY USAGE

INT 21 AX=2522  INT 21 - Phar Lap 386/DOS-Extender VMM - SPECIFY ALTERNATE PAGE-FAULT HANDLER

INT 21 AX=2523  INT 21 - Phar Lap 386/DOS-Extender VMM - SPECIFY OUT-OF-SWAP-SPACE HANDLER

INT 21 AX=2524  INT 21 - Phar Lap 386/DOS-Extender VMM - INSTALL PAGE-REPLACEMENT HANDLERS

INT 21 AX=2525  INT 21 - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S CONVENTIONAL MEM USAGE

INT 21 AX=2526  INT 21 - Phar Lap 386/DOS-Extender - GET CONFIGURATION INFORMATION

INT 21 AX=252B  INT 21 - FlashTek X-32VM - VIRTUAL MEMORY MANAGEMENT - PAGE LOCKING

INT 21 AX=2532  INT 21 - FlashTek X-32VM - GET EXCEPTION HANDLER VECTOR

INT 21 AX=2533  INT 21 - FlashTek X-32VM - SET EXCEPTION HANDLER VECTOR

INT 21 AX=25C0  INT 21 - Phar Lap 386/DOS-Extender - ALLOCATE MS-DOS MEMORY BLOCK

INT 21 AX=25C1  INT 21 - Phar Lap 386/DOS-Extender - RELEASE MS-DOS MEMORY BLOCK

INT 21 AX=25C2  INT 21 - Phar Lap 386/DOS-Extender - MODIFY MS-DOS MEMORY BLOCK

INT 21 AX=25C3  INT 21 - Phar Lap 386/DOS-Extender - EXECUTE PROGRAM


INT 212B
INT 21 AH=2B

INT 21 AH=2B  INT 21 - DOS 1+ - SET SYSTEM DATE

INT 21 AH=2B  INT 21 - AI Architects - ??? - INSTALLATION CHECK

INT 21 AH=2B  INT 21 - PC Tools v5.x PC-Cache - INSTALLATION CHECK

INT 21 AH=2B  INT 21 - DESQview - INSTALLATION CHECK

INT 21 AH=2B  INT 21 - ELRES v1.1 - INSTALLATION CHECK

INT 21 AX=2B01  INT 21 - TAME v2.10+ - INSTALLATION CHECK

INT 21 AX=2B44  INT 21 - pcANYWHERE IV/LAN - INSTALLATION CHECK


INT 2130
INT 21 AH=30

INT 21 AH=30  INT 21 - DOS 2+ - GET DOS VERSION

INT 21 AH=30  INT 21 - Phar Lap 386/DOS-Extender, Intel Code Builder - INSTALLATION CHECK

INT 21 AH=30  INT 21 - VIRUS - "Possessed" - INSTALLATION CHECK

INT 21 AX=3000

INT 21 AX=3000

INT 21 AX=30F1  INT 21 - VIRUS - "Dutch-555"/"Quit 1992" - INSTALLATION CHECK

INT 21 AX=30FF  INT 21 - DESQ??? - INSTALLATION CHECK


INT 2133
INT 21 AH=33

INT 21 AH=33  INT 21 - DOS 2+ - EXTENDED BREAK CHECKING

INT 21 AX=3302  INT 21 - DOS 3.x+ internal - GET AND SET EXTENDED CONTROL-BREAK CHECKING STATE

INT 21 AX=3305  INT 21 - DOS 4+ - GET BOOT DRIVE

INT 21 AX=3306

INT 21 AX=3306

INT 21 AX=330F  INT 21 - VIRUS - "Burghofer" - INSTALLATION CHECK

INT 21 AX=33E0  INT 21 - VIRUS - "Oropax" - INSTALLATION CHECK


INT 2135
INT 21 AH=35

INT 21 AH=35  INT 21 - DOS 2+ - GET INTERRUPT VECTOR

INT 21 AX=3501  INT 21 P - FlashTek X-32VM - ALLOCATE PROTECTED-MODE SELECTOR

INT 21 AX=3502  INT 21 P - FlashTek X-32VM - DEALLOCATE PROTECTED-MODE SELECTOR

INT 21 AX=3503  INT 21 P - FlashTek X-32VM - SET SELECTOR BASE ADDRESS

INT 21 AX=3504  INT 21 P - FlashTek X-32VM - GET SELECTOR BASE ADDRESS

INT 21 AX=3505  INT 21 P - FlashTek X-32VM - SET SELECTOR LIMIT

INT 21 AX=350A  INT 21 P - FlashTek X-32VM - PHYSICAL ADDRESS MAPPING

INT 21 AX=350B  INT 21 P - FlashTek X-32VM - UPDATE AND RETURN AVAILABLE FREE MEMORY

INT 21 AX=350C  INT 21 P - FlashTek X-32VM - ALLOCATE A BLOCK OF MEMORY

INT 21 AX=350D  INT 21 P - FlashTek X-32VM - RESERVE BLOCK OF MEMORY FOR 32-BIT STACK

INT 21 AX=357F  INT 21 - VIRUS - "Agiplan"/"Month 4-6" - INSTALLATION CHECK


INT 2137
INT 21 AH=37

INT 21 AX=3700  INT 21 - DOS 2+ - "SWITCHAR" - GET SWITCH CHARACTER

INT 21 AX=3701  INT 21 - DOS 2+ - "SWITCHAR" - SET SWITCH CHARACTER

INT 21 AH=37  INT 21 - DOS 2.x and 3.3+ only - "AVAILDEV" - SPECIFY \DEV\ PREFIX USE


INT 2138
INT 21 AH=38

INT 21 AH=38  INT 21 - DOS 2+ - GET COUNTRY-SPECIFIC INFORMATION

INT 21 AH=38  INT 21 - DOS 3+ - SET COUNTRY CODE


INT 213D
INT 21 AH=3D

INT 21 AH=3D  INT 21 - DOS 2+ - "OPEN" - OPEN EXISTING FILE

INT 21 AX=3DFF  INT 21 - VIRUS - "JD-448" - INSTALLATION CHECK


INT 213F
INT 21 AH=3F

INT 21 AH=3F  INT 21 - DOS 2+ - "READ" - READ FROM FILE OR DEVICE

INT 21 AH=3F  INT 21 - Turbo Debug HARDWARE BREAKPOINTS - READ STATUS BLOCK

INT 21 AH=3F  INT 21 - PC/TCP IPCUST.SYS - READ CONFIGURATION DATA


INT 2140
INT 21 AH=40

INT 21 AH=40  INT 21 - DOS 2+ - "WRITE" - WRITE TO FILE OR DEVICE

INT 21 AH=40  INT 21 - Turbo Debug HARDWARE BREAKPOINTS - SEND CMD TO HARDWARE BRKPNT DRIVER

INT 21 AH=40  INT 21 - PC/TCP IPCUST.SYS - WRITE CONFIGURATION DATA

INT 21 AX=4000  INT 21 - FARTBELL.EXE - INSTALLATION CHECK

INT 21 AX=4001  INT 21 - FARTBELL.EXE - FORCE NOISE


INT 2141
INT 21 AH=41

INT 21 AH=41  INT 21 - DOS 2+ - "UNLINK" - DELETE FILE

INT 21 AX=4101  INT 21 - SoftLogic Data Guardian - ???


INT 2142
INT 21 AH=42

INT 21 AH=42  INT 21 - DOS 2+ - "LSEEK" - SET CURRENT FILE POSITION

INT 21 AX=4203  INT 21 - VIRUS - "Shake" - INSTALLATION CHECK

INT 21 AX=4243  INT 21 - VIRUS - "Invader" - INSTALLATION CHECK


INT 2143
INT 21 AH=43

INT 21 AX=4300  INT 21 - DOS 2+ - GET FILE ATTRIBUTES

INT 21 AX=4301  INT 21 - DOS 2+ - "CHMOD" - SET FILE ATTRIBUTES

INT 21 AX=4302  INT 21 - DR-DOS 3.41+ internal - GET ACCESS RIGHTS

INT 21 AX=4303  INT 21 - DR-DOS 3.41+ internal - SET ACCESS RIGHTS AND PASSWORD

INT 21 AX=4304  INT 21 - DR-DOS 5.0 internal - GET ???

INT 21 AX=4305  INT 21 - DR-DOS 5.0 internal - SET ???

INT 21 AX=4310  INT 21 - Banyan VINES 2.1+ - GET EXTENDED FILE ATTRIBUTES

INT 21 AX=4311  INT 21 - Banyan VINES 2.1+ - SET EXTENDED FILE ATTRIBUTES


INT 2144
INT 21 AH=44

INT 21 AX=4400  INT 21 - DOS 2+ - IOCTL - GET DEVICE INFORMATION

INT 21 AX=4401  INT 21 - DOS 2+ - IOCTL - SET DEVICE INFORMATION

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4402

INT 21 AX=4403

INT 21 AX=4403

INT 21 AX=4403

INT 21 AX=4403

INT 21 AX=4403

INT 21 AX=4403

INT 21 AX=4403

INT 21 AX=4403

INT 21 AX=4404

INT 21 AX=4404

INT 21 AX=4404

INT 21 AX=4404

INT 21 AX=4405

INT 21 AX=4405

INT 21 AX=4406  INT 21 - DOS 2+ - IOCTL - GET INPUT STATUS

INT 21 AX=4407  INT 21 - DOS 2+ - IOCTL - GET OUTPUT STATUS

INT 21 AX=4408  INT 21 - DOS 3.0+ - IOCTL - CHECK IF BLOCK DEVICE REMOVABLE

INT 21 AX=4409  INT 21 - DOS 3.1+ - IOCTL - CHECK IF BLOCK DEVICE REMOTE

INT 21 AX=440A  INT 21 - DOS 3.1+ - IOCTL - CHECK IF HANDLE IS REMOTE

INT 21 AX=440B  INT 21 - DOS 3.1+ - IOCTL - SET SHARING RETRY COUNT

INT 21 AX=440C

INT 21 AX=440C

INT 21 AX=440D  INT 21 - DOS 3.2+ - IOCTL - GENERIC BLOCK DEVICE REQUEST

INT 21 AX=440E  INT 21 - DOS 3.2+ - IOCTL - GET LOGICAL DRIVE MAP

INT 21 AX=440F  INT 21 - DOS 3.2+ - IOCTL - SET LOGICAL DRIVE MAP

INT 21 AX=4410

INT 21 AX=4410

INT 21 AX=4411

INT 21 AX=4411

INT 21 AX=4412

INT 21 AX=4412

INT 21 AX=4413  INT 21 U - NewSpace - GET ???

INT 21 AX=4414

INT 21 AX=4414

INT 21 AH=44  INT 21 U - DR-DOS 5.0 - HISTORY BUFFER, SHARE, AND HILOAD CONTROL

INT 21 AX=4451  INT 21 - Concurrent DOS v3.2+ - INSTALLATION CHECK

INT 21 AX=4452  INT 21 - DR-DOS 3.41+ - DETERMINE DOS TYPE/GET DR-DOS VERSION

INT 21 AX=4454  INT 21 U - DR-DOS 3.41+ - SET GLOBAL PASSWORD

INT 21 AX=4456  INT 21 U - DR-DOS 5.0+ - HISTORY BUFFER CONTROL

INT 21 AX=4457

INT 21 AX=4457

INT 21 AX=4458  INT 21 U - DR-DOS 5.0+ internal - GET POINTER TO TABLE OF ???

INT 21 AX=4459  INT 21 - DR MultiUser DOS 5.0 - API

INT 21 AX=44FF  INT 21 U - NewSpace - ???


INT 214B
INT 21 AH=4B

INT 21 AH=4B  INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM

INT 21 AH=4B  INT 21 - ELRES v1.0 only - INSTALLATION CHECK

INT 21 AX=4B04  INT 21 - VIRUS - "MG", "699"/"Thirteen Minutes" - INSTALLATION CHECK

INT 21 AX=4B05  INT 21 - DOS 5.0 - SET EXECUTION STATE

INT 21 AX=4B25  INT 21 - VIRUS - "1063"/"Mono" - INSTALLATION CHECK

INT 21 AX=4B40  INT 21 - VIRUS - "Plastique"/"AntiCad" - INSTALLATION CHECK

INT 21 AX=4B41  INT 21 - VIRUS - "Plastique"/"AntiCad" - ???

INT 21 AX=4B4A  INT 21 - VIRUS - "Jabberwocky" - INSTALLATION CHECK

INT 21 AX=4B4B  INT 21 - VIRUS - "Horse-2" - INSTALLATION CHECK

INT 21 AX=4B4D  INT 21 - VIRUS - "Murphy-2", "Patricia"/"Smack" - INSTALLATION CHECK

INT 21 AX=4B50  INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - INSTALLATION CHECK

INT 21 AX=4B53  INT 21 - VIRUS - "Horse" - INSTALLATION CHECK

INT 21 AX=4B55  INT 21 - VIRUS - "Sparse" - INSTALLATION CHECK

INT 21 AX=4B59  INT 21 - VIRUS - "Murphy-1", "Murphy-4" - INSTALLATION CHECK

INT 21 AX=4B5E  INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK

INT 21 AX=4B60  INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - ???

INT 21 AX=4B87  INT 21 - VIRUS - "Shirley" - INSTALLATION CHECK

INT 21 AX=4B95  INT 21 - VIRUS - "Zherkov-1882" - INSTALLATION CHECK

INT 21 AX=4BA7  INT 21 - VIRUS - "1876"/"Dash-em" - INSTALLATION CHECK

INT 21 AX=4BAA  INT 21 - VIRUS - "Nomenklatura" - INSTALLATION CHECK

INT 21 AX=4BAF  INT 21 - VIRUS - "948"/"Screenplus1", "Magnitogorsk" - INSTALLATION CHECK

INT 21 AX=4BDD  INT 21 - VIRUS - "Lozinsky"/"Zherkov" - INSTALLATION CHECK

INT 21 AX=4BEE  INT 21 - F-DRIVER.SYS v1.14+ - GRAB INT 21

INT 21 AX=4BF0  INT 21 - DIET v1.10+ (Overlay Mode) - INSTALLATION CHECK

INT 21 AX=4BF1  INT 21 - DIET v1.10+ (Overlay Mode) - EXPAND PROGRAM???

INT 21 AX=4BFE  INT 21 - VIRUS - "Hitchcock", "Dark Avenger-1028", "1193" - INSTALLATION CHECK

INT 21 AX=4BFF

INT 21 AX=4BFF


INT 214E
INT 21 AH=4E

INT 21 AH=4E  INT 21 - DOS 2+ - "FINDFIRST" - FIND FIRST MATCHING FILE

INT 21 AH=4E  INT 21 - WILDUNIX.COM internal - INSTALLATION CHECK


INT 2152
INT 21 AH=52

INT 21 AH=52  INT 21 U - DOS 2+ internal - "SYSVARS" - GET LIST OF LISTS

INT 21 AX=5252  INT 21 - VIRUS - "516"/"Leapfrog" - INSTALLATION CHECK


INT 2157
INT 21 AH=57

INT 21 AX=5700  INT 21 - DOS 2+ - GET FILE'S DATE AND TIME

INT 21 AX=5701  INT 21 - DOS 2+ - SET FILE'S DATE AND TIME

INT 21 AX=5702  INT 21 - DOS 4.x only - GET ???

INT 21 AX=5703  INT 21 - DOS 4.x only - GET ???

INT 21 AX=5704  INT 21 - DOS 4.x only - TRUNCATE OPEN FILE TO ZERO LENGTH


INT 2158
INT 21 AH=58

INT 21 AH=58  INT 21 - DOS 3+ - GET OR SET MEMORY ALLOCATION STRATEGY

INT 21 AH=58  INT 21 - DOS 5.0 - GET OR SET UMB LINK STATE

INT 21 AX=58CC  INT 21 - VIRUS - "1067"/"Headcrash" - INSTALLATION CHECK


INT 2159
INT 21 AH=59

INT 21 AH=59  INT 21 - DOS 3+ - GET EXTENDED ERROR INFORMATION

INT 21 AH=59  INT 21 - European MSDOS 4.0 - GET HARD ERROR INFORMATION


INT 215D
INT 21 AH=5D

INT 21 AX=5D00  INT 21 U - DOS 3.1+ internal - SERVER FUNCTION CALL

INT 21 AX=5D01  INT 21 U - DOS 3.1+ internal - COMMIT ALL FILES FOR SPECIFIED COMPUTER/PROCESS

INT 21 AX=5D02  INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE FILE BY NAME

INT 21 AX=5D03  INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN COMPUTER

INT 21 AX=5D04  INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN PROCESS

INT 21 AX=5D05  INT 21 U - DOS 3.1+ internal - SHARE.EXE - GET OPEN FILE LIST ENTRY

INT 21 AX=5D06  INT 21 U - DOS 3.0+ internal - GET ADDRESS OF DOS SWAPPABLE DATA AREA

INT 21 AX=5D07  INT 21 U - DOS 3.1+ network - GET REDIRECTED PRINTER MODE

INT 21 AX=5D08  INT 21 U - DOS 3.1+ network - SET REDIRECTED PRINTER MODE

INT 21 AX=5D09  INT 21 U - DOS 3.1+ network - FLUSH REDIRECTED PRINTER OUTPUT

INT 21 AX=5D0A  INT 21 - DOS 3.1+ - SET EXTENDED ERROR INFORMATION

INT 21 AX=5D0B  INT 21 U - DOS 4.x only internal - GET DOS SWAPPABLE DATA AREAS


INT 215E
INT 21 AH=5E

INT 21 AX=5E00  INT 21 - DOS 3.1+ network - GET MACHINE NAME

INT 21 AX=5E01  INT 21 - DOS 3.1+ network - SET MACHINE NAME

INT 21 AX=5E02  INT 21 - DOS 3.1+ network - SET NETWORK PRINTER SETUP STRING

INT 21 AX=5E03  INT 21 - DOS 3.1+ network - GET NETWORK PRINTER SETUP STRING

INT 21 AX=5E04  INT 21 - DOS 3.1+ network - SET PRINTER MODE

INT 21 AX=5E05  INT 21 - DOS 3.1+ network - GET PRINTER MODE


INT 215F
INT 21 AH=5F

INT 21 AX=5F00  INT 21 - DOS 3.1+ network - GET REDIRECTION MODE

INT 21 AX=5F01  INT 21 - DOS 3.1+ network - SET REDIRECTION MODE

INT 21 AX=5F02  INT 21 - DOS 3.1+ network, Banyan VINES, PC-NFS - GET REDIRECTION LIST ENTRY

INT 21 AX=5F03  INT 21 - DOS 3.1+ network, Banyan VINES, LANtastic - REDIRECT DEVICE

INT 21 AX=5F04  INT 21 - DOS 3.1+ network, Banyan VINES, LANtastic - CANCEL REDIRECTION

INT 21 AX=5F05

INT 21 AX=5F05

INT 21 AX=5F06

INT 21 AX=5F06

INT 21 AX=5F07

INT 21 AX=5F07

INT 21 AX=5F08

INT 21 AX=5F08

INT 21 AX=5F09  INT 21 - STARLITE architecture - BIND TO NETWORK DEVICE

INT 21 AX=5F0A  INT 21 - STARLITE architecture - DETACH FROM NETWORK DEVICE

INT 21 AX=5F32  INT 21 - LAN Manager Enhanced DOS API local interface - DosQNmPipeInfo

INT 21 AX=5F33  INT 21 - LAN Manager Enhanced DOS API local interface - DosQNmPHandState

INT 21 AX=5F34  INT 21 - LAN Manager Enhanced DOS API local interface - DosSetNmPHandState

INT 21 AX=5F35  INT 21 - LAN Manager Enhanced DOS API local interface - DosPeekNmPipe

INT 21 AX=5F36  INT 21 - LAN Manager Enhanced DOS API local interface - DosTransactNmPipe

INT 21 AX=5F37  INT 21 - LAN Manager Enhanced DOS API local interface - DosCallNmPipe

INT 21 AX=5F38  INT 21 - LAN Manager Enhanced DOS API local interface - DosWaitNmPipe

INT 21 AX=5F39  INT 21 - LAN Manager Enhanced DOS API local interface - DosRawReadNmPipe

INT 21 AX=5F3A  INT 21 - LAN Manager Enhanced DOS API local interface - DosRawWriteNmPipe

INT 21 AX=5F3B  INT 21 - LAN Manager Enhanced DOS API local interface - NetHandleSetInfo

INT 21 AX=5F3C  INT 21 - LAN Manager Enhanced DOS API local interface - NetHandleGetInfo

INT 21 AX=5F40  INT 21 - LAN Manager Enhanced DOS API local interface - NetMessageBufferSend

INT 21 AX=5F42  INT 21 - LAN Manager Enhanced DOS API local interface - NetServiceControl

INT 21 AX=5F44  INT 21 - LAN Manager Enhanced DOS API local interface - NetWkstaGetInfo

INT 21 AX=5F45  INT 21 - LAN Manager Enhanced DOS API local interface - NetWkstaSetInfo

INT 21 AX=5F46  INT 21 - LAN Manager Enhanced DOS API local interface - NetUseEnum

INT 21 AX=5F47  INT 21 - LAN Manager Enhanced DOS API local interface - NetUseAdd

INT 21 AX=5F48  INT 21 - LAN Manager Enhanced DOS API local interface - NetUseDel

INT 21 AX=5F49  INT 21 - LAN Manager Enhanced DOS API local interface - NetUseGetInfo

INT 21 AX=5F4A  INT 21 - LAN Manager Enhanced DOS API local interface - NetRemoteCopy

INT 21 AX=5F4B  INT 21 - LAN Manager Enhanced DOS API local interface - NetRemoteMove

INT 21 AX=5F4C  INT 21 - LAN Manager Enhanced DOS API local interface - NetServerEnum

INT 21 AX=5F4D  INT 21 - LAN Manager Enhanced DOS API local interface - DosMakeMailslot

INT 21 AX=5F4E  INT 21 - LAN Manager Enhanced DOS API local interface - DosDeleteMailslot

INT 21 AX=5F4F  INT 21 - LAN Manager Enhanced DOS API local interface - DosMailslotInfo

INT 21 AX=5F50  INT 21 - LAN Manager Enhanced DOS API local interface - DosReadMailslot

INT 21 AX=5F51  INT 21 - LAN Manager Enhanced DOS API local interface - DosPeekMailslot

INT 21 AX=5F52  INT 21 - LAN Manager Enhanced DOS API local interface - DosWriteMailslot

INT 21 AX=5F53  INT 21 - LAN Manager Enhanced DOS API local interface - NetServerEnum2

INT 21 AX=5F80  INT 21 - LANtastic - GET LOGIN ENTRY

INT 21 AX=5F81  INT 21 - LANtastic - LOGIN TO SERVER

INT 21 AX=5F82  INT 21 - LANtastic - LOGOUT FROM SERVER

INT 21 AX=5F83  INT 21 - LANtastic - GET USERNAME ENTRY

INT 21 AX=5F84  INT 21 - LANtastic - GET INACTIVE SERVER ENTRY

INT 21 AX=5F85  INT 21 - LANtastic - CHANGE PASSWORD

INT 21 AX=5F86  INT 21 - LANtastic - DISABLE ACCOUNT

INT 21 AX=5F87  INT 21 - LANtastic v3+ - GET ACCOUNT

INT 21 AX=5F88  INT 21 - LANtastic v4.0+ - LOGOUT FROM ALL SERVERS

INT 21 AX=5F97  INT 21 - LANtastic - COPY FILE

INT 21 AX=5F98  INT 21 - LANtastic - SEND UNSOLICITED MESSAGE

INT 21 AX=5F99  INT 21 - LANtastic - GET LAST RECEIVED UNSOLICITED MESSAGE

INT 21 AX=5F9A  INT 21 - LANtastic - GET MESSAGE PROCESSING FLAGS

INT 21 AX=5F9B  INT 21 - LANtastic - SET MESSAGE PROCESSING FLAG

INT 21 AX=5F9C  INT 21 - LANtastic v3+ - POP UP LAST RECEIVED MESSAGE

INT 21 AX=5F9D  INT 21 - LANtastic v4.1+ - GET REDIRECTOR CONTROL BITS

INT 21 AX=5F9E  INT 21 - LANtastic v4.1+ - SET REDIRECTOR CONTROL BITS

INT 21 AX=5FA0  INT 21 - LANtastic - GET QUEUE ENTRY

INT 21 AX=5FA1  INT 21 - LANtastic - SET QUEUE ENTRY

INT 21 AX=5FA2  INT 21 - LANtastic - CONTROL QUEUE

INT 21 AX=5FA3  INT 21 - LANtastic v3+ - GET PRINTER STATUS

INT 21 AX=5FA4  INT 21 - LANtastic v3+ - GET STREAM INFO

INT 21 AX=5FA5  INT 21 - LANtastic v3+ - SET STREAM INFO

INT 21 AX=5FA7  INT 21 - LANtastic - CREATE USER AUDIT ENTRY

INT 21 AX=5FA9  INT 21 - LANtastic v4.1+ - SET EXTENDED QUEUE ENTRY

INT 21 AX=5FB0  INT 21 - LANtastic - GET ACTIVE USER INFORMATION

INT 21 AX=5FB1  INT 21 - LANtastic - GET SHARED DIRECTORY INFORMATION

INT 21 AX=5FB2  INT 21 - LANtastic v3+ - GET USERNAME FROM ACCOUNT FILE

INT 21 AX=5FB3  INT 21 - LANtastic v3+ - TRANSLATE PATH

INT 21 AX=5FB4  INT 21 - LANtastic v3+ - CREATE INDIRECT FILE

INT 21 AX=5FB5  INT 21 - LANtastic v3+ - GET INDIRECT FILE CONTENTS

INT 21 AX=5FB6  INT 21 - LANtastic v4.1+ - SET AUTO-LOGIN DEFAULTS

INT 21 AX=5FB7  INT 21 - LANtastic v4.1+ - GET AUTO-LOGIN DEFAULTS

INT 21 AX=5FC0  INT 21 - LANtastic - GET TIME FROM SERVER

INT 21 AX=5FC8  INT 21 - LANtastic v4.0+ - SCHEDULE SERVER SHUTDOWN

INT 21 AX=5FC9  INT 21 - LANtastic v4.0+ - CANCEL SERVER SHUTDOWN

INT 21 AX=5FCA  INT 21 - LANtastic v4.0+ - STUFF SERVER KEYBOARD BUFFER

INT 21 AX=5FCB  INT 21 - LANtastic v4.1+ - TERMINATE USER

INT 21 AX=5FCC  INT 21 - LANtastic v4.1+ - GET/SET SERVER CONTROL BITS

INT 21 AX=5FCD  INT 21 - LANtastic v4.1+ - FLUSH SERVER CACHES

INT 21 AX=5FD0  INT 21 - LANtastic - GET REDIRECTED PRINTER TIMEOUT

INT 21 AX=5FD1  INT 21 - LANtastic - SET REDIRECTED PRINTER TIMEOUT

INT 21 AX=5FE0  INT 21 C - LANtastic - GET DOS SERVICE VECTOR

INT 21 AX=5FE1  INT 21 - LANtastic - SET DOS SERVICE VECTOR

INT 21 AX=5FE2  INT 21 - LANtastic - GET MESSAGE SERVICE VECTOR

INT 21 AX=5FE3  INT 21 - LANtastic - SET MESSAGE SERVICE VECTOR


INT 2163
INT 21 AH=63

INT 21 AX=6300

INT 21 AX=6300

INT 21 AX=6301  INT 21 - DOS 2.25, Far East DOS 3.2+ - SET KOREAN (HANGUL) INPUT MODE

INT 21 AX=6302  INT 21 - DOS 2.25, Far East DOS 3.2+ - GET KOREAN (HANGUL) INPUT MODE


INT 2164
INT 21 AH=64

INT 21 AH=64  INT 21 - DOS 3.2+ internal - SET DEVICE DRIVER LOOKAHEAD FLAG

INT 21 AH=64  INT 21 - OS/2 v2.0 Virtual DOS Machine - GET/SET TASK TITLE


INT 2165
INT 21 AH=65

INT 21 AH=65  INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION

INT 21 AH=65  INT 21 - DOS 4+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION

INT 21 AX=6523  INT 21 U - DOS 4+ internal - DETERMINE IF CHARACTER REPRESENTS YES/NO RESPONSE

INT 21 AH=65  INT 21 U - DOS 4+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION


INT 2166
INT 21 AH=66

INT 21 AX=6601  INT 21 - DOS 3.3+ - GET GLOBAL CODE PAGE TABLE

INT 21 AX=6602  INT 21 - DOS 3.3+ - SET GLOBAL CODE PAGE TABLE


INT 2169
INT 21 AH=69

INT 21 AH=69  INT 21 U - DOS 4+ internal - GET/SET DISK SERIAL NUMBER

INT 21 AH=69  INT 21 - DR-DOS 5.0 - NULL FUNCTION

INT 21 AX=6969  INT 21 - VIRUS - "Rape-747" - INSTALLATION CHECK


INT 216B
INT 21 AH=6B

INT 21 AH=6B  INT 21 U - DOS 4.0 internal - ???

INT 21 AH=6B  INT 21 U - DOS 5.0 - NULL FUNCTION


INT 2170
INT 21 AH=70

INT 21 AX=7070

INT 21 AX=7070


INT 2177
INT 21 AH=77

INT 21 AX=7761  INT 21 - WATCH.COM v3.2+ - INSTALLATION CHECK

INT 21 AX=7700  INT 21 - VIRUS - "Growing Block" - INSTALLATION CHECK


INT 2180
INT 21 AH=80

INT 21 AH=80  INT 21 - European MSDOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND

INT 21 AX=8080  INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY


INT 2183
INT 21 AH=83

INT 21 AH=83  INT 21 - European MSDOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE

INT 21 AH=83  INT 21 - VIRUS - "SVC" - INSTALLATION CHECK


INT 2184
INT 21 AH=84

INT 21 AH=84  INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK

INT 21 AX=8400  INT 21 - European MSDOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA

INT 21 AX=8401  INT 21 - European MSDOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA

INT 21 AX=8402  INT 21 - European MSDOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA


INT 2189
INT 21 AH=89

INT 21 AH=89  INT 21 - European MSDOS 4.0 - SLEEP

INT 21 AH=89  INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK


INT 2190
INT 21 AH=90

INT 21 AH=90  INT 21 U - European MSDOS 4.0 - ???

INT 21 AH=90  INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK


INT 2197
INT 21 AH=97

INT 21 AH=97  INT 21 U - European MSDOS 4.0 - ???

INT 21 AX=9753  INT 21 - VIRUS - "Nina" - INSTALLATION CHECK


INT 21A1
INT 21 AH=A1

INT 21 AH=A1  INT 21 - Attachmate Extra - SET 3270 DISPLAY STATE

INT 21 AX=A1D5  INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK


INT 21A5
INT 21 AH=A5

INT 21 AH=A5  INT 21 - Attachmate Extra - GET HOST WINDOW CURSOR POSITION

INT 21 AX=A55A  INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK


INT 21AA
INT 21 AH=AA

INT 21 AX=AA00  INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK

INT 21 AX=AA03  INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK


INT 21B8
INT 21 AH=B8

INT 21 AH=B8  INT 21 - Attachmate Extra - DISABLE HOST BUFFER UPDATES

INT 21 AX=B800  INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS

INT 21 AX=B801  INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS

INT 21 AX=B802  INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS

INT 21 AX=B803  INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS

INT 21 AX=B804  INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER

INT 21 AX=B805  INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER

INT 21 AX=B806  INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE

INT 21 AX=B807  INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB

INT 21 AX=B808  INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME

INT 21 AX=B809  INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME


INT 21BB
INT 21 AH=BB

INT 21 AH=BB  INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS

INT 21 AX=BBBB  INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK


INT 21BE
INT 21 AH=BE

INT 21 AH=BE  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD

INT 21 AH=BE  INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK

INT 21 AX=BE00  INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK


INT 21C0
INT 21 AH=C0

INT 21 AH=C0  INT 21 - Novell NetWare 4.6, Alloy NTNX - RELEASE RECORD (FCB)

INT 21 AH=C0  INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK


INT 21C1
INT 21 AH=C1

INT 21 AH=C1  INT 21 - Novell NetWare 4.6, Alloy NTNX - CLEAR RECORD (FCB)

INT 21 AH=C1  INT 21 - VIRUS - "Solano" - ???


INT 21C2
INT 21 AH=C2

INT 21 AH=C2  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET

INT 21 AH=C2  INT 21 - VIRUS - "Scott's Valley" - ???


INT 21C3
INT 21 AH=C3

INT 21 AH=C3  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECRD SET

INT 21 AX=C301  INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK


INT 21C5
INT 21 AH=C5

INT 21 AX=C500

INT 21 AX=C500

INT 21 AX=C501  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE

INT 21 AX=C502  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE

INT 21 AX=C503  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE

INT 21 AX=C504  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE


INT 21C6
INT 21 AH=C6

INT 21 AH=C6  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE

INT 21 AH=C6  INT 21 - VIRUS - "Socha" - INSTALLATION CHECK

INT 21 AX=C603  INT 21 - VIRUS - "Yankee" or "MLTI" - INSTALLATION CHECK


INT 21C7
INT 21 AH=C7

INT 21 AX=C700

INT 21 AX=C700

INT 21 AX=C701  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION

INT 21 AX=C702  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK

INT 21 AX=C703  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION

INT 21 AX=C704  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS

INT 21 AX=C705  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS

INT 21 AX=C706  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS

INT 21 AX=C707  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS

INT 21 AX=C708  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS


INT 21CA
INT 21 AH=CA

INT 21 AH=CA  INT 21 - Novell NetWare 4.0, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)

INT 21 AX=CA15  INT 21 - VIRUS - "Piter" - ???


INT 21CB
INT 21 AH=CB

INT 21 AH=CB  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET

INT 21 AH=CB  INT 21 - VIRUS - "Milous" - INSTALLATION CHECK

INT 21 AX=CB02  INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK


INT 21CC
INT 21 AH=CC

INT 21 AH=CC  INT 21 - Novell NetWare 4.0, Alloy NTNX - RELEASE FILE (FCB)

INT 21 AH=CC  INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK


INT 21CD
INT 21 AH=CD

INT 21 AH=CD  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET

INT 21 AH=CD  INT 21 - VIRUS - "Westwood" - ???


INT 21CF
INT 21 AH=CF

INT 21 AH=CF  INT 21 - LANstep - ???

INT 21 AH=CF  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET


INT 21D0
INT 21 AH=D0

INT 21 AH=D0  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD

INT 21 AX=D000  INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK


INT 21D5
INT 21 AH=D5

INT 21 AH=D5  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET

INT 21 AH=D5  INT 21 - VIRUS - "Carfield" - ???

INT 21 AX=D5AA

INT 21 AX=D5AA


INT 21DA
INT 21 AH=DA

INT 21 AH=DA  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER

INT 21 AX=DADA  INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK

INT 21 AX=DAFE  INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK


INT 21DC
INT 21 AH=DC

INT 21 AH=DC  INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER

INT 21 AH=DC  INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF


INT 21DD
INT 21 AH=DD

INT 21 AH=DD  INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE

INT 21 AH=DD  INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???


INT 21DE
INT 21 AH=DE

INT 21 AH=DE  INT 21 - VIRUS - "Durban" - INSTALLATION CHECK

INT 21 AH=DE  INT 21 - VIRUS - "April 1st EXE" - ???

INT 21 AH=DE  INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE

INT 21 AH=DE  INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE

INT 21 AH=DE  INT 21 - Novell NetWare 4.0 - SHELL TIMER INTERRUPT CHECKS

INT 21 AX=DEDE  INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK


INT 21DF
INT 21 AH=DF

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE

INT 21 AH=DF  INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE


INT 21E0
INT 21 AH=E0

INT 21 AH=E0  INT 21 - Digital Research DOS Plus - CALL BDOS

INT 21 AH=E0  INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE

INT 21 AH=E0  INT 21 - DoubleDOS - MENU CONTROL

INT 21 AH=E0  INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK

INT 21 AH=E0  INT 21 - Novell NetWare 4.0, Alloy NTNX - PRINT SPOOLING

INT 21 AH=E0  INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS

INT 21 AH=E0  INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE

INT 21 AX=E00F  INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK


INT 21E1
INT 21 AH=E1

INT 21 AH=E1  INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL

INT 21 AH=E1  INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB

INT 21 AH=E1  INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE/DISABLE BROADCAST MESSAGES

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS

INT 21 AH=E1  INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE


INT 21E2
INT 21 AH=E2

INT 21 AH=E2  INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER

INT 21 AH=E2  INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY

INT 21 AH=E2  INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES

INT 21 AH=E2  INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE

INT 21 AH=E2  INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE

INT 21 AH=E2  INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION

INT 21 AH=E2  INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY


INT 21E3
INT 21 AH=E3

INT 21 AH=E3  INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT

INT 21 AH=E3  INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB

INT 21 AH=E3  INT 21 - Novell NetWare - CONNECTION CONTROL

INT 21 AH=E3  INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA

INT 21 AH=E3  INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS

INT 21 AH=E3  INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER

INT 21 AH=E3  INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION NUMBERS

INT 21 AH=E3  INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY

INT 21 AH=E3  INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL

INT 21 AH=E3  INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS

INT 21 AH=E3  INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE

INT 21 AH=E3  INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS

INT 21 AH=E3  INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE

INT 21 AH=E3  INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD

INT 21 AH=E3  INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS

INT 21 AH=E3  INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION

INT 21 AH=E3  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION


INT 21E4
INT 21 AH=E4

INT 21 AH=E4  INT 21 - Novell NetWare 4.0 - SET FILE ATTRIBUTES (FCB)

INT 21 AH=E4  INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK

INT 21 AX=E400

INT 21 AX=E400

INT 21 AX=E402  INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE

INT 21 AX=E403  INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE


INT 21E5
INT 21 AH=E5

INT 21 AH=E5  INT 21 - Novell NetWare 4.0 - UPDATE FILE SIZE (FCB)

INT 21 AH=E5  INT 21 - DoubleDOS - OTHER PROGRAM STATUS

INT 21 AX=E500  INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY

INT 21 AX=E501  INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION


INT 21E6
INT 21 AH=E6

INT 21 AH=E6  INT 21 - Novell NetWare 4.0 - COPY FILE TO FILE (FCB)

INT 21 AH=E6  INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE


INT 21E7
INT 21 AH=E7

INT 21 AH=E7  INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME

INT 21 AH=E7  INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT

INT 21 AH=E7  INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK


INT 21E8
INT 21 AH=E8

INT 21 AH=E8  INT 21 - Novell NetWare 4.6, Alloy NTNX - SET FCB RE-OPEN MODE

INT 21 AH=E8  INT 21 - OS/286, OS/386 - SEGMENT CREATION

INT 21 AH=E8  INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS


INT 21E9
INT 21 AH=E9

INT 21 AH=E9  INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS

INT 21 AH=E9  INT 21 - DoubleDOS - SET TIMESHARING PRIORITY

INT 21 AX=E900  INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE

INT 21 AX=E905  INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY

INT 21 AX=E906  INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY

INT 21 AX=E907  INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH

INT 21 AX=E908  INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS


INT 21EA
INT 21 AH=EA

INT 21 AH=EA  INT 21 - Novell NetWare 4.6, Alloy NTNX - RETURN SHELL VERSION

INT 21 AH=EA  INT 21 - DoubleDOS - TURN OFF TASK SWITCHING

INT 21 AH=EA  INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT


INT 21EB
INT 21 AH=EB

INT 21 AH=EB  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE

INT 21 AH=EB  INT 21 - DoubleDOS - TURN ON TASK SWITCHING

INT 21 AX=EB00  INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS

INT 21 AX=EB02  INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET

INT 21 AX=EB03  INT 21 - OS/386 VMM - FREE MAPPED PAGES

INT 21 AX=EB04  INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET

INT 21 AX=EB05  INT 21 - OS/386 VMM - MAP PAGES

INT 21 AX=EB06  INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY

INT 21 AX=EB07  INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES


INT 21EC
INT 21 AH=EC

INT 21 AH=EC  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE

INT 21 AH=EC  INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS

INT 21 AH=EC  INT 21 - OS/286, OS/386 - BLOCK TRANSFER

INT 21 AX=EC59  INT 21 - VIRUS - "Terror" - INSTALLATION CHECK


INT 21ED
INT 21 AH=ED

INT 21 AH=ED  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE

INT 21 AH=ED  INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR


INT 21EE
INT 21 AH=EE

INT 21 AH=EE  INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS

INT 21 AH=EE  INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS

INT 21 AH=EE  INT 21 - VIRUS - "Jerusalem-G", "Pregnant" - INSTALLATION CHECK


INT 21EF
INT 21 AH=EF

INT 21 AX=EF00  INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE

INT 21 AX=EF01  INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE

INT 21 AX=EF02  INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID

INT 21 AX=EF03  INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID

INT 21 AX=EF04  INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME


INT 21F0
INT 21 AH=F0

INT 21 AH=F0  INT 21 - DoubleDOS - MENU CONTROL

INT 21 AH=F0  INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK

INT 21 AX=F000  INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID

INT 21 AX=F001  INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID

INT 21 AX=F002  INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID

INT 21 AX=F003  INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS

INT 21 AX=F004  INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID

INT 21 AX=F005  INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID


INT 21F1
INT 21 AH=F1

INT 21 AH=F1  INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION

INT 21 AH=F1  INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB

INT 21 AH=F1  INT 21 - VIRUS - "F1-337" - ???


INT 21F2
INT 21 AH=F2

INT 21 AH=F2  INT 21 - Novell NetWare v3.01+ shell interface - MULTIPLEXOR

INT 21 AH=F2  INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB

INT 21 AX=F244  INT 21 - Novell NetWare - FILE SERVICES - ERASE FILES

INT 21 AX=F2AA  INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK


INT 21F3
INT 21 AH=F3

INT 21 AH=F3  INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY

INT 21 AH=F3  INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB

INT 21 AH=F3  INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK


INT 21F8
INT 21 AH=F8

INT 21 AH=F8  INT 21 - DOS v2.11 - SET OEM INT 21 HANDLER

INT 21 AH=F8  INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS


INT 21F9
INT 21 AH=F9

INT 21 AH=F9  INT 21 - DOS v2.11 - OEM FUNCTION

INT 21 AH=F9  INT 21 - DoubleDOS - SET TIMESHARING PRIORITY


INT 21FA
INT 21 AH=FA

INT 21 AH=FA  INT 21 - DOS v2.11 - OEM FUNCTION

INT 21 AH=FA  INT 21 - DoubleDOS - TURN OFF TASK SWITCHING

INT 21 AH=FA  INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API


INT 21FB
INT 21 AH=FB

INT 21 AH=FB  INT 21 - DOS v2.11 - OEM FUNCTION

INT 21 AH=FB  INT 21 - DoubleDOS - TURN ON TASK SWITCHING

INT 21 AH=FB  INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK

INT 21 AX=FB0A  INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK


INT 21FC
INT 21 AH=FC

INT 21 AH=FC  INT 21 - DOS v2.11 - OEM FUNCTION

INT 21 AH=FC  INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS

INT 21 AH=FC  INT 21 - VIRUS - "Troi" - INSTALLATION CHECK


INT 21FD
INT 21 AH=FD

INT 21 AH=FD  INT 21 - DOS v2.11 - OEM FUNCTION

INT 21 AH=FD  INT 21 - VIRUS - "Border" - INSTALLATION CHECK


INT 21FE
INT 21 AH=FE

INT 21 AH=FE  INT 21 - DOS v2.11 - OEM FUNCTION

INT 21 AH=FE  INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS

INT 21 AH=FE  INT 21 - VIRUS - "483" - INSTALLATION CHECK

INT 21 AX=FE01  INT 21 - VIRUS - "Flip" - INSTALLATION CHECK

INT 21 AX=FE02  INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK

INT 21 AX=FEDC

INT 21 AX=FEDC


INT 21FF
INT 21 AH=FF

INT 21 AH=FF  INT 21 - DOS v2.11 - OEM FUNCTION

INT 21 AH=FF  INT 21 - CED (Command EDitor) - INSTALLABLE COMMANDS

INT 21 AH=FF  INT 21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS

INT 21 AH=FF  INT 21 - DOSED.COM - INSTALLATION CHECK

INT 21 AH=FF  INT 21 - Topware Network Operating System - ???

INT 21 AH=FF  INT 21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - API

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - SET ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - GET ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - GET/SET ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - NOP

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - GET ???

INT 21 AH=FF  INT 21 UP - Rational Systems DOS/4GW - ???

INT 21 AX=FF00  INT 21 - Rational Systems DOS/4G - INSTALLATION CHECK

INT 21 AX=FF0F  INT 21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK

INT 21 AX=FF10  INT 21 - VIRUS - "Twins" - INSTALLATION CHECK

INT 21 AX=FFFE  INT 21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK

INT 21 AX=FFFF

INT 21 AX=FFFF


INT 2A00
INT 2A AH=00

INT 2A AH=00  INT 2A - NETWORK (Microsoft, LANtastic) - INSTALLATION CHECK

INT 2A AX=0000  INT 2A - AT&T Starlan Extended NetBIOS (var length names) - INSTALLATION CHECK


INT 2A20
INT 2A AH=20

INT 2A AX=2001  INT 2A - MS Networks or NETBIOS - ???

INT 2A AX=2002  INT 2A - NETWORK - ???

INT 2A AX=2003  INT 2A - NETWORK - ???


INT 2AFF
INT 2A AH=FF

INT 2A AX=FF90  INT 2A - PC/TCP PREDIR.EXE - ???

INT 2A AX=FF91  INT 2A - PC/TCP PREDIR.EXE - ???

INT 2A AX=FF92  INT 2A - PC/TCP PREDIR.EXE - INSTALLATION CHECK

INT 2A AX=FF93  INT 2A - PC/TCP PREDIR.EXE - ???

INT 2A AX=FF94  INT 2A - PC/TCP PREDIR.EXE - ???

INT 2A AX=FF95  INT 2A - PC/TCP PREDIR.EXE - GET CONFIGURATION STRINGS

INT 2A AX=FF96  INT 2A - PC/TCP PREDIR.EXE - SET PRINT JOB TERMINATION CONFIGURATION

INT 2A AX=FF97  INT 2A - PC/TCP PREDIR.EXE - GET PRINT JOB TERMINATION CONFIGURATION


INT 2F00
INT 2F AH=00

INT 2F AH=00  INT 2F U - DOS 2.x PRINT.COM - ???

INT 2F AX=0080  INT 2F - DOS 3.1+ PRINT.COM - GIVE PRINT A TIME SLICE


INT 2F01
INT 2F AH=01

INT 2F AH=01  INT 2F U - DOS 2.x PRINT.COM - ???

INT 2F AX=0100  INT 2F - DOS 3+ PRINT.COM - INSTALLATION CHECK

INT 2F AX=0101  INT 2F - DOS 3+ PRINT.COM - SUBMIT FILE FOR PRINTING

INT 2F AX=0102  INT 2F - DOS 3+ PRINT.COM - REMOVE FILE FROM PRINT QUEUE

INT 2F AX=0103  INT 2F - DOS 3+ PRINT.COM - CANCEL ALL FILES IN PRINT QUEUE

INT 2F AX=0104  INT 2F - DOS 3+ PRINT.COM - FREEZE PRINT QUEUE TO READ JOB STATUS

INT 2F AX=0105  INT 2F - DOS 3+ PRINT.COM - RESTART PRINT QUEUE AFTER STATUS READ

INT 2F AX=0106  INT 2F - DOS 3.3+ PRINT.COM - GET PRINTER DEVICE


INT 2F02
INT 2F AH=02

INT 2F AX=0200  INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - INSTALLATION CHECK

INT 2F AX=0201  INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

INT 2F AX=0202  INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

INT 2F AX=0203  INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

INT 2F AX=0204  INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???


INT 2F05
INT 2F AH=05

INT 2F AX=0500  INT 2F U - DOS 3+ CRITICAL ERROR HANDLER - INSTALLATION CHECK

INT 2F AH=05  INT 2F UC - DOS 3+ CRITICAL ERROR HANDLER - EXPAND ERROR INTO STRING


INT 2F06
INT 2F AH=06

INT 2F AX=0600  INT 2F - DOS 3+ ASSIGN - INSTALLATION CHECK

INT 2F AX=0601  INT 2F U - DOS 3+ ASSIGN - GET DRIVE ASSIGNMENT TABLE


INT 2F08
INT 2F AH=08

INT 2F AX=0800  INT 2F U - DRIVER.SYS support - INSTALLATION CHECK

INT 2F AX=0801  INT 2F U - DRIVER.SYS support - ADD NEW BLOCK DEVICE

INT 2F AX=0802  INT 2F U - DRIVER.SYS support - EXECUTE DEVICE DRIVER REQUEST

INT 2F AX=0803  INT 2F U - DOS 4+ DRIVER.SYS support - GET DRIVE DATA TABLE LIST


INT 2F10
INT 2F AH=10

INT 2F AX=1000  INT 2F - SHARE - INSTALLATION CHECK

INT 2F AX=1001  INT 2F U - SuperStor PRO SSTORDRV.SYS - SET ???

INT 2F AX=1040  INT 2F U - DOS 4 only SHARE internal - ???

INT 2F AX=1080  INT 2F U - DOS 4 only SHARE internal - TURN ON FILE SHARING CHECKS

INT 2F AX=1081  INT 2F U - DOS 4 only SHARE internal - TURN OFF FILE SHARING CHECKS

INT 2F AX=10FF  INT 2F U - Multiplex - DR-DOS 5.0 - ???


INT 2F11
INT 2F AH=11

INT 2F AX=1100

INT 2F AX=1100

INT 2F AX=1101  INT 2F CU - NETWORK REDIRECTOR - REMOVE REMOTE DIRECTORY

INT 2F AX=1102  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - REMOVE REMOTE DIRECTORY

INT 2F AX=1103  INT 2F CU - NETWORK REDIRECTOR - MAKE REMOTE DIRECTORY

INT 2F AX=1104  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - MAKE REMOTE DIRECTORY

INT 2F AX=1105  INT 2F CU - NETWORK REDIRECTOR - CHDIR

INT 2F AX=1106  INT 2F CU - NETWORK REDIRECTOR - CLOSE REMOTE FILE

INT 2F AX=1107  INT 2F CU - NETWORK REDIRECTOR - COMMIT REMOTE FILE

INT 2F AX=1108  INT 2F CU - NETWORK REDIRECTOR - READ FROM REMOTE FILE

INT 2F AX=1109  INT 2F CU - NETWORK REDIRECTOR - WRITE TO REMOTE FILE

INT 2F AX=110A

INT 2F AX=110A

INT 2F AX=110B  INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - UNLOCK REGION OF FILE

INT 2F AX=110C  INT 2F CU - NETWORK REDIRECTOR - GET DISK SPACE

INT 2F AX=110D  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=110E  INT 2F CU - NETWORK REDIRECTOR - SET REMOTE FILE'S ATTRIBUTES

INT 2F AX=110F  INT 2F CU - NETWORK REDIRECTOR - GET REMOTE FILE'S ATTRIBUTES AND SIZE

INT 2F AX=1110  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=1111  INT 2F CU - NETWORK REDIRECTOR - RENAME REMOTE FILE

INT 2F AX=1112  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=1113  INT 2F CU - NETWORK REDIRECTOR - DELETE REMOTE FILE

INT 2F AX=1114  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=1115  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=1116  INT 2F CU - NETWORK REDIRECTOR - OPEN EXISTING REMOTE FILE

INT 2F AX=1117  INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE REMOTE FILE

INT 2F AX=1118  INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE FILE WITHOUT CDS

INT 2F AX=1119  INT 2F CU - NETWORK REDIRECTOR - FIND FIRST FILE WITHOUT CDS

INT 2F AX=111A  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=111B  INT 2F CU - NETWORK REDIRECTOR - FINDFIRST

INT 2F AX=111C  INT 2F CU - NETWORK REDIRECTOR - FINDNEXT

INT 2F AX=111D  INT 2F CU - NETWORK REDIRECTOR - CLOSE ALL REMOTE FILES FOR PROCESS

INT 2F AX=111E  INT 2F CU - NETWORK REDIRECTOR - DO REDIRECTION

INT 2F AX=111F  INT 2F CU - NETWORK REDIRECTOR - PRINTER SETUP

INT 2F AX=1120  INT 2F CU - NETWORK REDIRECTOR - FLUSH ALL DISK BUFFERS

INT 2F AX=1121  INT 2F CU - NETWORK REDIRECTOR - SEEK FROM END OF REMOTE FILE

INT 2F AX=1122  INT 2F CU - NETWORK REDIRECTOR - PROCESS TERMINATION HOOK

INT 2F AX=1123  INT 2F CU - NETWORK REDIRECTOR - QUALIFY REMOTE FILENAME

INT 2F AX=1124  INT 2F CU - NETWORK REDIRECTOR - PRINTER OFF???

INT 2F AX=1125  INT 2F CU - NETWORK REDIRECTOR - REDIRECTED PRINTER MODE

INT 2F AX=1126  INT 2F CU - NETWORK REDIRECTOR - PRINTER ON/OFF???

INT 2F AX=1127  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED

INT 2F AX=1128  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED

INT 2F AX=1129  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED

INT 2F AX=112A  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=112B  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GENERIC IOCTL???

INT 2F AX=112C  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=112D  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=112E  INT 2F CU - NETWORK REDIRECTOR (DOS 4+) - EXTENDED OPEN/CREATE FILE

INT 2F AX=112F  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

INT 2F AX=1130  INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GET IFSFUNC SEGMENT

INT 2F AX=1186  INT 2F - LAN Manager Enhanced DOS API - DosReadAsynchNmPipe

INT 2F AX=118A  INT 2F - LAN Manager 2.0 DOS Enhanced ENCRYPT.EXE - STREAM ENCRYPTION SERVICE

INT 2F AX=118F  INT 2F - LAN Manager Enhanced DOS API - DosWriteAsynchNmPipe


INT 2F12
INT 2F AH=12

INT 2F AX=1200  INT 2F U - DOS 3+ internal - INSTALLATION CHECK

INT 2F AX=1201  INT 2F U - DOS 3+ internal - CLOSE CURRENT FILE

INT 2F AX=1202  INT 2F U - DOS 3+ internal - GET INTERRUPT ADDRESS

INT 2F AX=1203  INT 2F U - DOS 3+ internal - GET DOS DATA SEGMENT

INT 2F AX=1204  INT 2F U - DOS 3+ internal - NORMALIZE PATH SEPARATOR

INT 2F AX=1205  INT 2F U - DOS 3+ internal - OUTPUT CHARACTER TO STANDARD OUTPUT

INT 2F AX=1206  INT 2F U - DOS 3+ internal - INVOKE CRITICAL ERROR

INT 2F AX=1207  INT 2F U - DOS 3+ internal - MAKE DISK BUFFER MOST-RECENTLY USED

INT 2F AX=1208  INT 2F U - DOS 3+ internal - DECREMENT SFT REFERENCE COUNT

INT 2F AX=1209  INT 2F U - DOS 3+ internal - FLUSH AND FREE DISK BUFFER

INT 2F AX=120A  INT 2F U - DOS 3+ internal - PERFORM CRITICAL ERROR INTERRUPT

INT 2F AX=120B  INT 2F U - DOS 3+ internal - SIGNAL SHARING VIOLATION TO USER

INT 2F AX=120C  INT 2F U - DOS 3+ internal - OPEN DEVICE AND SET SFT OWNER???

INT 2F AX=120D  INT 2F U - DOS 3+ internal - GET DATE AND TIME

INT 2F AX=120E  INT 2F U - DOS 3+ internal - MARK ALL DISK BUFFERS UNREFERENCED

INT 2F AX=120F  INT 2F U - DOS 3+ internal - MAKE BUFFER MOST RECENTLY USED

INT 2F AX=1210  INT 2F U - DOS 3+ internal - FIND UNREFERENCED DISK BUFFER

INT 2F AX=1211  INT 2F U - DOS 3+ internal - NORMALIZE ASCIZ FILENAME

INT 2F AX=1212  INT 2F U - DOS 3+ internal - GET LENGTH OF ASCIZ STRING

INT 2F AX=1213  INT 2F U - DOS 3+ internal - UPPERCASE CHARACTER

INT 2F AX=1214  INT 2F U - DOS 3+ internal - COMPARE FAR POINTERS

INT 2F AX=1215  INT 2F U - DOS 3+ internal - FLUSH BUFFER

INT 2F AX=1216  INT 2F U - DOS 3+ internal - GET ADDRESS OF SYSTEM FILE TABLE

INT 2F AX=1217  INT 2F U - DOS 3+ internal - GET CURRENT DIRECTORY STRUCTURE FOR DRIVE

INT 2F AX=1218  INT 2F U - DOS 3+ internal - GET CALLER'S REGISTERS

INT 2F AX=1219  INT 2F U - DOS 3+ internal - SET DRIVE???

INT 2F AX=121A  INT 2F U - DOS 3+ internal - GET FILE'S DRIVE

INT 2F AX=121B  INT 2F U - DOS 3+ internal - SET YEAR/LENGTH OF FEBRUARY

INT 2F AX=121C  INT 2F U - DOS 3+ internal - CHECKSUM MEMORY

INT 2F AX=121D  INT 2F U - DOS 3+ internal - SUM MEMORY

INT 2F AX=121E  INT 2F U - DOS 3+ internal - COMPARE FILENAMES

INT 2F AX=121F  INT 2F U - DOS 3+ internal - BUILD CURRENT DIRECTORY STRUCTURE

INT 2F AX=1220  INT 2F U - DOS 3+ internal - GET JOB FILE TABLE ENTRY

INT 2F AX=1221  INT 2F U - DOS 3+ internal - CANONICALIZE FILE NAME

INT 2F AX=1222  INT 2F U - DOS 3+ internal - SET EXTENDED ERROR INFO

INT 2F AX=1223  INT 2F U - DOS 3+ internal - CHECK IF CHARACTER DEVICE

INT 2F AX=1224  INT 2F U - DOS 3+ internal - DELAY

INT 2F AX=1225  INT 2F U - DOS 3+ internal - GET LENGTH OF ASCIZ STRING

INT 2F AX=1226  INT 2F U - DOS 3.3+ internal - OPEN FILE

INT 2F AX=1227  INT 2F U - DOS 3.3+ internal - CLOSE FILE

INT 2F AX=1228  INT 2F U - DOS 3.3+ internal - MOVE FILE POINTER

INT 2F AX=1229  INT 2F U - DOS 3.3+ internal - READ FROM FILE

INT 2F AX=122A  INT 2F U - DOS 3.3+ internal - SET FASTOPEN ENTRY POINT

INT 2F AX=122B  INT 2F U - DOS 3.3+ internal - IOCTL

INT 2F AX=122C  INT 2F U - DOS 3.3+ internal - GET DEVICE CHAIN

INT 2F AX=122D  INT 2F U - DOS 3.3+ internal - GET EXTENDED ERROR CODE

INT 2F AX=122E  INT 2F U - DOS 4+ internal - GET OR SET ERROR TABLE ADDRESSES

INT 2F AX=122F  INT 2F U - DOS 4.x internal - SET DOS VERSION NUMBER TO RETURN


INT 2F14
INT 2F AH=14

INT 2F AX=1400

INT 2F AX=1400

INT 2F AX=1401

INT 2F AX=1401

INT 2F AX=1402

INT 2F AX=1402

INT 2F AX=1403

INT 2F AX=1403

INT 2F AX=1404  INT 2F CU - NLSFUNC.COM - GET COUNTRY INFO

INT 2F AX=14FE  INT 2F U - DR-DOS 5.0 NLSFUNC - ???

INT 2F AX=14FF  INT 2F U - DR-DOS 5.0 NLSFUNC - ???


INT 2F15
INT 2F AH=15

INT 2F AX=1500

INT 2F AX=1500

INT 2F AX=1501  INT 2F - CD-ROM - GET DRIVE DEVICE LIST

INT 2F AX=1502  INT 2F - CD-ROM - GET COPYRIGHT FILE NAME

INT 2F AX=1503  INT 2F - CD-ROM - GET ABSTRACT FILE NAME

INT 2F AX=1504  INT 2F - CD-ROM - GET BIBLIOGRAPHIC DOC FILE NAME

INT 2F AX=1505  INT 2F - CD-ROM - READ VTOC

INT 2F AX=1506  INT 2F - CD-ROM - TURN DEBUGGING ON

INT 2F AX=1507  INT 2F - CD-ROM - TURN DEBUGGING OFF

INT 2F AX=1508  INT 2F - CD-ROM - ABSOLUTE DISK READ

INT 2F AX=1509  INT 2F - CD-ROM - ABSOLUTE DISK WRITE

INT 2F AX=150A  INT 2F - CD-ROM - RESERVED

INT 2F AX=150B  INT 2F - CD-ROM v2.00+ - DRIVE CHECK

INT 2F AX=150C  INT 2F - CD-ROM v2.00+ - GET MSCDEX.EXE VERSION

INT 2F AX=150D  INT 2F - CD-ROM v2.00+ - GET CD-ROM DRIVE LETTERS

INT 2F AX=150E  INT 2F - CD-ROM v2.00+ - GET/SET VOLUME DESCRIPTOR PREFERENCE

INT 2F AX=150F  INT 2F - CD-ROM v2.00+ - GET DIRECTORY ENTRY

INT 2F AX=1510  INT 2F - CD-ROM v2.10+ - SEND DEVICE DRIVER REQUEST


INT 2F16
INT 2F AH=16

INT 2F AX=1600  INT 2F - MS WINDOWS - WINDOWS ENHANCED MODE INSTALLATION CHECK

INT 2F AX=1602  INT 2F - MS WINDOWS/386 2.x - GET API ENTRY POINT

INT 2F AX=1603  INT 2F - RM Nimbus MSDOS 3.3 - ???

INT 2F AX=1605  INT 2F - MS WINDOWS - WINDOWS ENH MODE & 286 DOSX INIT BROADCAST

INT 2F AX=1606  INT 2F - MS WINDOWS - WINDOWS ENH MODE & 286 DOSX EXIT BROADCAST

INT 2F AX=1607

INT 2F AX=1607

INT 2F AX=1607

INT 2F AX=1607

INT 2F AX=1607

INT 2F AX=1608  INT 2F C - MS WINDOWS - WINDOWS ENHANCED MODE INIT COMPLETE BROADCAST

INT 2F AX=1609  INT 2F C - MS WINDOWS - WINDOWS ENHANCED MODE BEGIN EXIT BROADCAST

INT 2F AX=160A  INT 2F - MS Windows 3.1 - IDENTIFY WINDOWS VERSION AND TYPE

INT 2F AX=160B  INT 2F - MS Windows 3.1 - IDENTIFY TSRs

INT 2F AX=160C  INT 2F - MS Windows 3.1 - DETECT ROMs

INT 2F AX=1680  INT 2F - MS WINDOWS, DPMI, various - RELEASE CURRENT VIRTUAL MACHINE TIME-SLICE

INT 2F AX=1681  INT 2F - MS WINDOWS 3+ - BEGIN CRITICAL SECTION

INT 2F AX=1682  INT 2F - MS WINDOWS 3+ - END CRITICAL SECTION

INT 2F AX=1683  INT 2F - MS WINDOWS 3+ - GET CURRENT VIRTUAL MACHINE ID

INT 2F AX=1684  INT 2F - MS WINDOWS - GET DEVICE API ENTRY POINT

INT 2F AX=1685  INT 2F - MS WINDOWS - SWITCH VMs AND CALLBACK

INT 2F AX=1686  INT 2F - DOS Protected-Mode Interface - DETECT MODE

INT 2F AX=1687  INT 2F - DOS Protected-Mode Interface - INSTALLATION CHECK

INT 2F AX=1688  INT 2F U - MS Windows 3.0, 386MAX v6.01 - GET SELECTOR TO LDT

INT 2F AX=1689  INT 2F U - MS Windows 3.0+ - KERNEL IDLE CALL

INT 2F AX=168A  INT 2F - DPMI 0.9+ - GET VENDOR-SPECIFIC API ENTRY POINT

INT 2F AX=168B  INT 2F - MS Windows 3.1 - SET FOCUS TO SPECIFIED VIRTUAL MACHINE

INT 2F AX=168C  INT 2F - MS Windows 3.1 - RESTART COMMAND


INT 2F17
INT 2F AH=17

INT 2F AX=1700  INT 2F - MS WINDOWS "WINOLDAP" - IDENTIFY WinOldAp VERSION

INT 2F AX=1701  INT 2F - MS WINDOWS "WINOLDAP" - OPEN CLIPBOARD

INT 2F AX=1702  INT 2F - MS WINDOWS "WINOLDAP" - EMPTY CLIPBOARD

INT 2F AX=1703  INT 2F - MS WINDOWS "WINOLDAP" - SET CLIPBOARD DATA

INT 2F AX=1704  INT 2F - MS WINDOWS "WINOLDAP" - GET CLIPBOARD DATA SIZE

INT 2F AX=1705  INT 2F - MS WINDOWS "WINOLDAP" - GET CLIPBOARD DATA

INT 2F AX=1708  INT 2F - MS WINDOWS "WINOLDAP" - CloseClipboard

INT 2F AX=1709  INT 2F - MS WINDOWS "WINOLDAP" - COMPACT CLIPBOARD

INT 2F AX=170A  INT 2F - MS WINDOWS "WINOLDAP" - GET DEVICE CAPABILITIES


INT 2F19
INT 2F AH=19

INT 2F AX=1900  INT 2F U - DOS 4.x only SHELLB.COM - INSTALLATION CHECK

INT 2F AX=1901  INT 2F U - DOS 4.x only SHELLB.COM - SHELLC.EXE INTERFACE

INT 2F AX=1902  INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM INTERFACE

INT 2F AX=1903  INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM interface

INT 2F AX=1904  INT 2F U - DOS 4.x only SHELLB.COM - SHELLB transient to TSR intrface


INT 2F1A
INT 2F AH=1A

INT 2F AX=1A00

INT 2F AX=1A00

INT 2F AX=1A01  INT 2F U - DOS 4+ ANSI.SYS internal - GET/SET DISPLAY INFORMATION

INT 2F AX=1A02  INT 2F U - DOS 4+ ANSI.SYS internal - MISCELLANEOUS REQUESTS

INT 2F AX=1A21  INT 2F - AVATAR.SYS - SET DRIVER STATE

INT 2F AX=1A3C  INT 2F U - AVATAR.SYS v0.11 - ???

INT 2F AX=1A3E  INT 2F U - AVATAR.SYS v0.11 - ???

INT 2F AX=1A3F  INT 2F - AVATAR.SYS - QUERY DRIVER STATE

INT 2F AX=1A42  INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ3 HANDLER

INT 2F AX=1A43  INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ4 HANDLER

INT 2F AX=1A44  INT 2F - AVATAR.SYS v0.11+ - GET DATA SEGMENT

INT 2F AX=1A52  INT 2F U - AVATAR.SYS v0.11 - GET ???

INT 2F AX=1A53  INT 2F U - AVATAR.SYS v0.11 - ???

INT 2F AX=1A62  INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ3 HANDLER

INT 2F AX=1A63  INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ4 HANDLER

INT 2F AX=1A72  INT 2F U - AVATAR.SYS v0.11 - GET ??? SIZE

INT 2F AX=1A7B  INT 2F U - AVATAR.SYS v0.11 - ???

INT 2F AX=1A7D  INT 2F U - AVATAR.SYS v0.11 - ???

INT 2F AX=1AAD  INT 2F U - AVATAR.SYS v0.11 - ???


INT 2F1B
INT 2F AH=1B

INT 2F AX=1B00  INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - INSTALLATION CHECK

INT 2F AH=1B  INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - GET HIDDEN FRAME INFORMATION


INT 2F23
INT 2F AH=23

INT 2F AX=2300  INT 2F - DR-DOS 5.0 GRAFTABL - INSTALLATION CHECK

INT 2F AH=23  INT 2F - DR-DOS 5.0 GRAFTABL - GET GRAPHICS DATA


INT 2F27
INT 2F AH=27

INT 2F AX=2700  INT 2F - DR-DOS 6.0 TaskMAX - INSTALLATION CHECK

INT 2F AX=2701  INT 2F - DR-DOS 6.0 TaskMAX - GET STATUS

INT 2F AX=2702  INT 2F - DR-DOS 6.0 TaskMAX - GET PER-TASK EMS LIMIT

INT 2F AX=2703  INT 2F - DR-DOS 6.0 TaskMAX - SET PER-TASK EMS LIMIT

INT 2F AX=2704  INT 2F - DR-DOS 6.0 TaskMAX - REGISTER/UNREGISTER TASK MANAGER

INT 2F AX=2705  INT 2F - DR-DOS 6.0 TaskMAX - ENABLE/DISABLE DIRECT SWITCHING

INT 2F AX=2706  INT 2F - DR-DOS 6.0 TaskMAX - SWITCH TO SPECIFIED TASK

INT 2F AX=2707  INT 2F - DR-DOS 6.0 TaskMAX - CREATE NEW TASK

INT 2F AX=2708  INT 2F - DR-DOS 6.0 TaskMAX - DELETE TASK

INT 2F AX=2709  INT 2F - DR-DOS 6.0 TaskMAX - NAME TASK

INT 2F AX=270A  INT 2F - DR-DOS 6.0 TaskMAX - CONVERT TASK INDEX TO TASK ID

INT 2F AX=270B  INT 2F - DR-DOS 6.0 TaskMAX - CONVERT TASK ID TO TASK INDEX

INT 2F AX=270C  INT 2F - DR-DOS 6.0 TaskMAX - CHECK OPEN FILES

INT 2F AX=270D  INT 2F - DR-DOS 6.0 TaskMAX - CHECK IF TASK RUNNING PRIMARY COMMAND INTERPRETER

INT 2F AX=270E  INT 2F - DR-DOS 6.0 TaskMAX - GET/SET TEXT PASTE LEAD-IN

INT 2F AX=270F  INT 2F - DR-DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE LEAD-IN

INT 2F AX=2710  INT 2F - DR-DOS 6.0 TaskMAX - GET/SET PASTE LINE TERMINATOR STRING

INT 2F AX=2711  INT 2F - DR-DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE DECIMAL POINT

INT 2F AX=2712  INT 2F - DR-DOS 6.0 TaskMAX - INITIATE EXPORTING TASK DATA

INT 2F AX=2713  INT 2F - DR-DOS 6.0 TaskMAX - INITIATE PASTE OPERATION

INT 2F AX=2714  INT 2F - DR-DOS 6.0 TaskMAX - GET SWAP SPACE INFO

INT 2F AX=2715  INT 2F - DR-DOS 6.0 TaskMAX - SWITCH TO TASK MANAGER

INT 2F AX=2716  INT 2F - DR-DOS 6.0 TaskMAX - GET PASTE BUFFER STATUS

INT 2F AX=2717  INT 2F - DR-DOS 6.0 TaskMAX - PASTE DATA DIRECTLY TO APPLICATION BUFFER

INT 2F AX=2718  INT 2F - DR-DOS 6.0 TaskMAX - COPY DATA DIRECTLY INTO PASTE BUFFER


INT 2F39
INT 2F AH=39

INT 2F AX=3900  INT 2F - Kingswood TSR INTERFACE - COMPATIBILITY MODE

INT 2F AH=39  INT 2F - Kingswood TSR INTERFACE - INSTALLATION CHECK

INT 2F AH=39  INT 2F - Kingswood TSR INTERFACE - REMOVAL CHECK

INT 2F AH=39  INT 2F - Kingswood TSR INTERFACE - APPLICATION-SPECIFIC FUNCTION CALLS

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901

INT 2F AX=3901


INT 2F40
INT 2F AH=40

INT 2F AX=4000  INT 2F - Windows 3.x (OS/2 2.x???) - GET VIRTUAL DEVICE DRIVER (VDD) CAPABLTIES

INT 2F AX=4001  INT 2F C - OS/2 compatibility box - SWITCHING DOS TO BACKGROUND

INT 2F AX=4002  INT 2F C - OS/2 compatibility box - SWITCHING DOS TO FOREGROUND

INT 2F AX=4003  INT 2F - Windows 3.x - ENTERING VIDEO DRIVER CRITICAL SECTION

INT 2F AX=4004  INT 2F - Windows 3.x - EXITING VIDEO DRIVER CRITICAL SECTION

INT 2F AX=4005  INT 2F C - Windows 3.x - SWITCHING DOS TO BACKGROUND

INT 2F AX=4006  INT 2F C - Windows 3.x - SWITCHING DOS TO FOREGROUND

INT 2F AX=4007  INT 2F - Windows 3.x - ENABLE VDD TRAPPING OF VIDEO REGISTERS

INT 2F AX=4040  INT 2F - PharLap 286|DOS-Extender Lite v2.5 - ???


INT 2F43
INT 2F AH=43

INT 2F AX=4300  INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) - INSTALLATION CHECK

INT 2F AX=4310  INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) - GET DRIVER ADDRESS


INT 2F45
INT 2F AH=45

INT 2F AX=4500  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - INSTALLATION CHECK

INT 2F AX=4501  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SETUP PROFILER

INT 2F AX=4502  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SET SAMPLING RATE

INT 2F AX=4503  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - START PROFILING

INT 2F AX=4504  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - STOP PROFILING

INT 2F AX=4505  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - CLEAR PROFILING DATA

INT 2F AX=4506  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFlush"

INT 2F AX=4507  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFinish"

INT 2F AX=4508  INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - ALTERNATE SEGDEBUG IFACE


INT 2F46
INT 2F AH=46

INT 2F AX=4601  INT 2F U - DOS 5.0 kernel - ???

INT 2F AX=4602  INT 2F U - DOS 5.0 kernel - ???

INT 2F AH=46  INT 2F U - ???

INT 2F AX=4653

INT 2F AX=4653

INT 2F AX=4653

INT 2F AX=4653

INT 2F AX=4680  INT 2F U - MS Windows v3.0 - INSTALLATION CHECK


INT 2F48
INT 2F AH=48

INT 2F AX=4800  INT 2F - DOS v5.0 DOSKEY - INSTALLATION CHECK

INT 2F AX=4810  INT 2F - DOS v5.0 DOSKEY - READ INPUT LINE FROM CONSOLE


INT 2F4A
INT 2F AH=4A

INT 2F AX=4A00  INT 2F CU - DOS v5.0 - SINGLE-FLOPPY LOGICAL DRIVE CHANGE NOTIFICATION

INT 2F AX=4A01  INT 2F - DOS 5.0 - QUERY FREE HMA SPACE

INT 2F AX=4A02  INT 2F - DOS 5.0 - ALLOCATE HMA SPACE

INT 2F AX=4A05  INT 2F U - DOS 5.0 DOSSHELL - TASK SWITCHING API???

INT 2F AX=4A06  INT 2F CU - ??? - GET MEMORY SIZE

INT 2F AX=4A10  INT 2F - SMARTDRV v4.00+ - API


INT 2F4B
INT 2F AH=4B

INT 2F AH=4B  INT 2F - LAN Manager 2.0 DOS Enh NETWKSTA.EXE - NETWORK WORKSTATION REDIRECTOR

INT 2F AX=4B01  INT 2F C - DOS v5.0 TASK SWITCHER - BUILD CALLOUT CHAIN

INT 2F AX=4B02  INT 2F - DOS v5.0 TASK SWITCHER - INSTALLATION CHECK

INT 2F AX=4B03  INT 2F - DOS v5.0 TASK SWITCHER - ALLOCATE SWITCHER ID

INT 2F AX=4B04  INT 2F - DOS v5.0 TASK SWITCHER - FREE SWITCHER ID

INT 2F AX=4B05  INT 2F - DOS v5.0 DOSSHELL TASK SWITCHER - IDENTIFY INSTANCE DATA


INT 2F54
INT 2F AH=54

INT 2F AH=54  INT 2F U - ???

INT 2F AX=5453  INT 2F - TesSeRact RAM-RESIDENT PROGRAM INTERFACE


INT 2F62
INT 2F AH=62

INT 2F AX=6282  INT 2F U - PC Tools v7.0+ VDEFEND, VSAFE, VWATCH, DATAMON - SET ??? ADDRESS

INT 2F AX=6284

INT 2F AX=6284

INT 2F AX=6284

INT 2F AX=6284

INT 2F AX=6284


INT 2F70
INT 2F AH=70

INT 2F AX=7000  INT 2F - License Service API - INSTALLATION CHECK

INT 2F AX=7001  INT 2F - License Service API - REQUEST License

INT 2F AX=7002  INT 2F - License Service API - RELEASE License

INT 2F AX=7003  INT 2F - License Service API - UPDATE

INT 2F AX=7004  INT 2F - License Service API - GET ERROR

INT 2F AX=7005  INT 2F - License Service API - QUERY License


INT 2F7A
INT 2F AH=7A

INT 2F AX=7A00  INT 2F - Novell NetWare - LOW-LEVEL API (IPX) INSTALLATION CHECK

INT 2F AX=7A10  INT 2F - Novell NetWare - TBMI v2.0 - GET TBMI STATUS

INT 2F AX=7A11  INT 2F - Novell NetWare - TBMI v2.0 - GET INT2F HANDLERS

INT 2F AX=7A12  INT 2F - Novell NetWare - TBMI v2.0 - GET INT64 HANDLERS

INT 2F AX=7A13  INT 2F - Novell NetWare - TBMI v2.0 - GET INT7A HANDLERS

INT 2F AX=7A14  INT 2F - Novell NetWare - TBMI v2.0 - GET STATISTICS

INT 2F AX=7A1B  INT 2F - Novell NetWare - TBMI v2.0 - RESERVED???

INT 2F AX=7A20  INT 2F - Novell NetWare - NetWare 4.0 DOS Requester - GET CALL ADDRESS

INT 2F AX=7A80  INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - ABNORMAL EXIT

INT 2F AX=7A81  INT 2F - Novell NetWare - SHELL 3.01d BROADCAST - SET SHELL INT 21 HANDLER

INT 2F AX=7A85  INT 2F - Novell NetWare - shell 3.01 - BROADCAST INFORM

INT 2F AX=7A90  INT 2F U - Novell NetWare - NETBIOS.EXE 3+ - INSTALLATION CHECK

INT 2F AX=7AFE  INT 2F - Novell NetWare - DOSNP.EXE - INSTALLATION CHECK

INT 2F AX=7AFF

INT 2F AX=7AFF


INT 2F7F
INT 2F AH=7F

INT 2F AX=7F24  INT 2F - Multiplex - ???

INT 2F AX=7F26  INT 2F - Multiplex - ???


INT 2F80
INT 2F AH=80

INT 2F AX=8000

INT 2F AX=8000

INT 2F AX=8000

INT 2F AX=8001  INT 2F - Nanosoft, Inc. TurboNET server - ???

INT 2F AX=80FB  INT 2F - FaxBIOS interface - COMMAND SUBMISSION


INT 2F81
INT 2F AH=81

INT 2F AX=8100  INT 2F U - Nanosoft, Inc. TurboNET redirector - INSTALLATION CHECK

INT 2F AX=8101  INT 2F U - Nanosoft, Inc. TurboNET redirector - ???

INT 2F AX=8102  INT 2F U - Nanosoft, Inc. TurboNET redirector - ???

INT 2F AX=8103  INT 2F U - Nanosoft, Inc. TurboNET redirector - GET MACHINE NAME???

INT 2F AX=8104  INT 2F U - Nanosoft, Inc. TurboNET redirector - ???

INT 2F AX=8105  INT 2F U - Nanosoft, Inc. TurboNET redirector - ???


INT 2F82
INT 2F AH=82

INT 2F AH=82  INT 2F U - Nanosoft, Inc. TurboNET - ???

INT 2F AX=8200  INT 2F - RESPLAY - SAMPLE/PLAYBACK

INT 2F AX=8201  INT 2F - RESPLAY - INSTALLATION CHECK

INT 2F AX=8202  INT 2F - RESPLAY - UNINSTALL

INT 2F AX=8210  INT 2F - RESPLAY - INITIALIZE


INT 2F89
INT 2F AH=89

INT 2F AX=8900  INT 2F - WHOA!.COM - INSTALLATION CHECK

INT 2F AX=8901  INT 2F - WHOA!.COM - UNINSTALL

INT 2F AX=8902  INT 2F - WHOA!.COM - SET DELAY COUNT


INT 2F90
INT 2F AH=90

INT 2F AX=9000  INT 2F U - RAID - INSTALLATION CHECK

INT 2F AX=9001  INT 2F U - RAID - GET ???

INT 2F AX=9002  INT 2F U - RAID - GET RESIDENT SEGMENT

INT 2F AX=9003  INT 2F U - RAID - UNINSTALL

INT 2F AX=9004  INT 2F U - RAID - GET ???


INT 2F92
INT 2F AH=92

INT 2F AH=92  INT 2F - Couriers LAN E-Mail - API

INT 2F AH=92  INT 2F U - PC Tools v8.0 DRIVEMAP - ???


INT 2FA1
INT 2F AH=A1

INT 2F AH=A1  INT 2F - Ergo DOS extenders - INSTALLATION CHECK

INT 2F AX=A189  INT 2F U - Biologic HRAMDEV.SYS - API


INT 2FA9
INT 2F AH=A9

INT 2F AX=A900  INT 2F - METZTSR.COM - INSTALLATION CHECK

INT 2F AX=A901  INT 2F - METZTSR.COM - GET TIME OF LAST KEYBOARD ACTIVITY

INT 2F AX=A902  INT 2F - METZTSR.COM - SET METZ Ctrl-Alt-Del FLAG

INT 2F AX=A903  INT 2F - METZTSR.COM - GET METZ Ctrl-Alt-Del FLAG


INT 2FAB
INT 2F AH=AB

INT 2F AX=AB00  INT 2F - Btrieve Multi-User - INSTALLATION CHECK

INT 2F AX=AB01  INT 2F - Btrieve Multi-User - EXECUTE Btrieve OPERATION

INT 2F AX=AB02  INT 2F - Btrieve Multi-User - GET NEW PROCESS ID


INT 2FAD
INT 2F AH=AD

INT 2F AX=AD00  INT 2F U - DOS 3.3+ DISPLAY.SYS internal - INSTALLATION CHECK

INT 2F AX=AD01  INT 2F U - DOS 3.3+ DISPLAY.SYS internal - SET ACTIVE CODE PAGE

INT 2F AX=AD02  INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET ACTIVE CODE PAGE

INT 2F AX=AD03  INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET CODE PAGE INFORMATION

INT 2F AX=AD04  INT 2F U - DOS 4.x only DISPLAY.SYS internal - ???

INT 2F AX=AD10

INT 2F AX=AD10

INT 2F AX=AD40  INT 2F - DOS 4.0 - ???

INT 2F AX=AD80  INT 2F u - DOS 3.3+ KEYB.COM internal - INSTALLATION CHECK

INT 2F AX=AD81  INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD CODE PAGE

INT 2F AX=AD82  INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD MAPPING

INT 2F AX=AD83  INT 2F - DOS 5.0 KEYB.COM - GET KEYBOARD MAPPING


INT 2FAE
INT 2F AH=AE

INT 2F AX=AE00  INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - INSTALLATION CHECK

INT 2F AX=AE01  INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - EXECUTE


INT 2FB0
INT 2F AH=B0

INT 2F AX=B000  INT 2F - DOS 3.3+ GRAFTABL.COM - INSTALLATION CHECK

INT 2F AX=B001  INT 2F - DOS 3.3+ GRAFTABL.COM - GET GRAPHICS FONT TABLE


INT 2FB4
INT 2F AH=B4

INT 2F AX=B400  INT 2F - IBM PC3270 EMULATION PROG v3 - INSTALLATION CHECK

INT 2F AX=B401  INT 2F - IBM PC3270 EMULATION PROG v3 - GET HOST BUFFER ADDRESS

INT 2F AX=B402  INT 2F - IBM PC3270 EMULATION PROG v3 - ???

INT 2F AX=B403  INT 2F - IBM PC3270 EMULATION PROG v3 - ???

INT 2F AX=B404  INT 2F - IBM PC3270 EMULATION PROG v3 - ???

INT 2F AX=B405  INT 2F - IBM PC3270 EMULATION PROG v3 - ???


INT 2FB7
INT 2F AH=B7

INT 2F AX=B700  INT 2F - APPEND - INSTALLATION CHECK

INT 2F AX=B701  INT 2F U - APPEND - ???

INT 2F AX=B702  INT 2F - APPEND - VERSION CHECK

INT 2F AX=B703  INT 2F U - DOS 3.3, DOS 5.0 APPEND - HOOK INT 21

INT 2F AX=B704  INT 2F - DOS 3.3+ APPEND - GET APPEND PATH

INT 2F AX=B706  INT 2F - DOS 4+ APPEND - GET APPEND FUNCTION STATE

INT 2F AX=B707  INT 2F - DOS 4+ APPEND - SET APPEND FUNCTION STATE

INT 2F AX=B710  INT 2F U - DOS 3.3+ APPEND - GET VERSION INFO

INT 2F AX=B711  INT 2F - DOS 4+ APPEND - SET RETURN FOUND NAME STATE


INT 2FB8
INT 2F AH=B8

INT 2F AX=B800  INT 2F - network - INSTALLATION CHECK

INT 2F AX=B803  INT 2F - network - GET NETWORK EVENT POST HANDLER

INT 2F AX=B804  INT 2F - network - SET NETWORK EVENT POST HANDLER

INT 2F AX=B807  INT 2F - Network - GET NetBIOS NAME NUMBER OF MACHINE NAME

INT 2F AX=B808  INT 2F U - Network - RELINK KEYBOARD HANDLER

INT 2F AX=B809

INT 2F AX=B809

INT 2F AX=B80F  INT 2F - DOS LAN Requester - GET START PARAMETERS


INT 2FB9
INT 2F AH=B9

INT 2F AX=B900  INT 2F - PC Network RECEIVER.COM - INSTALLATION CHECK

INT 2F AX=B901  INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM INT 2F HANDLER ADDRESS

INT 2F AX=B903  INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM POST ADDRESS

INT 2F AX=B904  INT 2F - PC Network RECEIVER.COM - SET RECEIVER.COM POST ADDRESS

INT 2F AX=B905  INT 2F - PC Network RECEIVER.COM - GET FILENAME

INT 2F AX=B906  INT 2F - PC Network RECEIVER.COM - SET FILENAME

INT 2F AX=B908  INT 2F - PC Network RECEIVER.COM - UNLINK KEYBOARD HANDLER


INT 2FBC
INT 2F AH=BC

INT 2F AX=BC00  INT 2F - Windows 3.0, DOS 5.0 EGA.SYS - INSTALLATION CHECK

INT 2F AX=BC06  INT 2F U - MS Windows 3.0, DOS 5.0 EGA.SYS - GET VERSION INFO


INT 2FBF
INT 2F AH=BF

INT 2F AX=BF00  INT 2F - PC LAN PROGRAM REDIRIFS.EXE internal - INSTALLATION CHECK

INT 2F AX=BF01  INT 2F U - PC LAN PROGRAM REDIRIFS.EXE internal - ???

INT 2F AX=BF80  INT 2F - PC LAN PROG REDIR.SYS internal - SET REDIRIFS ENTRY POINT


INT 2FC0
INT 2F AH=C0

INT 2F AH=C0  INT 2F - MTEZ XpressFax Hardware TSR (CLASS2) - API

INT 2F AX=C000

INT 2F AX=C000

INT 2F AX=C000

INT 2F AX=C001  INT 2F - AD-DOS - GET RESIDENT CODE SEGMENT

INT 2F AX=C002  INT 2F - AD-DOS - CHECK FOR NEW INPUT

INT 2F AX=C003  INT 2F - AD-DOS - SET MINUTES TO WAIT

INT 2F AX=C004  INT 2F - AD-DOS - GET MINUTES TO WAIT

INT 2F AX=C005  INT 2F - AD-DOS - SET BLANKER STATUS


INT 2F0C
INT 2F AH=0C

INT 2F AX=0C06  INT 2F - AD-DOS - GET BLANKER STATUS

INT 2F AX=0C07  INT 2F - AD-DOS - SET HOT KEY

INT 2F AX=0C08  INT 2F - AD-DOS - GET CURRENT HOT KEY

INT 2F AX=0C09  INT 2F - AD-DOS - UNBLANK MONITOR

INT 2F AX=0C0A  INT 2F - AD-DOS - ???

INT 2F AX=0C0B  INT 2F - AD-DOS - ???

INT 2F AX=0C0C  INT 2F - AD-DOS - SET ??? INTERNAL FLAG TO 01h

INT 2F AX=0C0E  INT 2F - AD-DOS - SET PASSWORD STATUS

INT 2F AX=0C0F  INT 2F - AD-DOS - GET PASSWORD STATUS

INT 2F AX=0C20  INT 2F - AD-DOS - GET AND RESET VxD API STATUS

INT 2F AX=C050  INT 2F U - Explosiv 2.00 - INSTALLATION CHECK

INT 2F AX=C052  INT 2F U - Explosiv 2.00 - UNINSTALL

INT 2F AX=C054  INT 2F U - Explosiv 2.00 - GET ???

INT 2F AX=C055  INT 2F U - Explosiv 2.00 - SET BLANKING INTERVAL

INT 2F AX=C056  INT 2F U - Explosiv 2.00 - SET ???

INT 2F AX=C057  INT 2F U - Explosiv 2.00 - SET ???

INT 2F AX=C058  INT 2F U - Explosiv 2.00 - SET ???

INT 2F AX=C059  INT 2F U - Explosiv 2.00 - CLEAR ???

INT 2F AX=C05A  INT 2F U - Explosiv 2.00 - SET ???

INT 2F AX=C05B  INT 2F U - Explosiv 2.00 - SET ???

INT 2F AX=C05C  INT 2F U - Explosiv 2.00 - SET ???


INT 2FC9
INT 2F AH=C9

INT 2F AX=C900  INT 2F U - ThunderByte??? - INSTALLATION CHECK

INT 2F AX=C987  INT 2F U - ThunderByte??? - DISINFECT FILE???

INT 2F AX=C9FF  INT 2F C - STACKMAN - INSTALLATION BROADCAST


INT 2FCA
INT 2F AH=CA

INT 2F AX=CA00  INT 2F - TBSCANX - INSTALLATION CHECK

INT 2F AX=CA01  INT 2F - TBSCANX - GET STATUS

INT 2F AX=CA02  INT 2F - TBSCANX - SET STATE

INT 2F AX=CA03  INT 2F - TBSCANX - SCAN BUFFER

INT 2F AX=CA04  INT 2F - TBSCANX - SCAN FILE

INT 2F AX=CAFE  INT 2F U - THELP v3.0 - INSTALLATION CHECK


INT 2FCB
INT 2F AH=CB

INT 2F AX=CB00

INT 2F AX=CB00

INT 2F AX=CB01  INT 2F - Communicating Applications Specification - SUBMIT A TASK

INT 2F AX=CB02  INT 2F - Communicating Applications Specification - ABORT CURRENT EVENT

INT 2F AX=CB05  INT 2F - Communicating Applications Specification - FIND FIRST QUEUE ENTRY

INT 2F AX=CB06  INT 2F - Communicating Applications Specification - FIND NEXT QUEUE ENTRY

INT 2F AX=CB07  INT 2F - Communicating Applications Specification - OPEN FILE

INT 2F AX=CB08  INT 2F - Communicating Applications Specification - DELETE FILE

INT 2F AX=CB09  INT 2F - Communicating Applications Specification - DELETE ALL FILES IN Q

INT 2F AX=CB0A  INT 2F - Communicating Applications Specification - GET EVENT DATE

INT 2F AX=CB0B  INT 2F - Communicating Applications Specification - SET TASK DATE

INT 2F AX=CB0C  INT 2F - Communicating Applications Specification - GET EVENT TIME

INT 2F AX=CB0D  INT 2F - Communicating Applications Specification - SET TASK TIME

INT 2F AX=CB0E  INT 2F - Communicating Applications Specification - GET EXTERNAL DATA BLOCK

INT 2F AX=CB0F  INT 2F - Communicating Applications Specification - GET/SET AUTORECEIVE

INT 2F AX=CB10  INT 2F - Communicating Applications Specification - GET CURRENT EVENT STATUS

INT 2F AX=CB11

INT 2F AX=CB11

INT 2F AX=CB11

INT 2F AX=CB12  INT 2F - Communicating Applications Specification - GET HARDWARE STATUS

INT 2F AX=CB13

INT 2F AX=CB13

INT 2F AX=CB14  INT 2F - Communicating Applications Specification - MOVE RECEIVED FILE

INT 2F AX=CB15  INT 2F - Communicating Applications Specification - SUBMIT FILE TO SEND

INT 2F AX=CB16  INT 2F - Communicating Applications Spec v1.2+ - UNLOAD RESIDENT MANAGER

INT 2F AX=CB17  INT 2F - Communicating Applications Spec v1.2+ - SET COVER PAGE STATUS

INT 2F AX=CB80  INT 2F - Intel SatisFAXtion CASMGR - ???

INT 2F AX=CB81  INT 2F - Intel SatisFAXtion CASMGR - ???

INT 2F AX=CB82  INT 2F - Intel SatisFAXtion CASMGR - ???

INT 2F AX=CBDC  INT 2F - Comwave Microfax Specification - GET STATUS ARRAY

INT 2F AX=CBDD  INT 2F - Comwave Microfax Specification - COMMAND SUBMISSION


INT 2FCD
INT 2F AH=CD

INT 2F AX=CD00

INT 2F AX=CD00

INT 2F AX=CD01

INT 2F AX=CD01

INT 2F AX=CD02

INT 2F AX=CD02

INT 2F AX=CD03

INT 2F AX=CD03

INT 2F AX=CD04

INT 2F AX=CD04

INT 2F AX=CD05

INT 2F AX=CD05

INT 2F AX=CD06

INT 2F AX=CD06

INT 2F AX=CD07

INT 2F AX=CD07

INT 2F AX=CD08

INT 2F AX=CD08

INT 2F AX=CD09

INT 2F AX=CD09

INT 2F AX=CD0A

INT 2F AX=CD0A


INT 2FD0
INT 2F AH=D0

INT 2F AX=D000

INT 2F AX=D000

INT 2F AX=D000

INT 2F AX=D001  INT 2F - MDEBUG display driver - INITIALIZE DRIVER

INT 2F AX=D002

INT 2F AX=D002

INT 2F AX=D003  INT 2F - MDEBUG display driver - RESTORE GRAPHIC DATA

INT 2F AX=D004  INT 2F - MDEBUG display driver - SHOW SAVED DATA

INT 2F AX=D005  INT 2F - MDEBUG display driver - SWITCH BACK TO TEXT SCREEN

INT 2F AH=D0  INT 2F - MDEBUG display driver - RESERVED FUNCTION NUMBERS

INT 2F AH=D0  INT 2F - MDEBUG display driver - USER DEFINED FUNCTION NUMBERS


INT 2FD1
INT 2F AH=D1

INT 2F AX=D100  INT 2F C - MDEBUG command driver - GET STATUS

INT 2F AX=D101  INT 2F - MDEBUG command driver - INITIALIZE DRIVER

INT 2F AX=D102  INT 2F - MDEBUG command driver - EXECUTE INTERPRETER COMMAND

INT 2F AX=D103  INT 2F - MDEBUG command driver - EXECUTE KEY IN THE MONITOR

INT 2F AX=D104  INT 2F - MDEBUG command driver - EXECUTE KEY IN THE INTERPRETER

INT 2F AH=D1  INT 2F - MDEBUG command driver - RESERVED FUNCTIONS

INT 2F AX=D110  INT 2F - MDEBUG command driver - GET ADDRESS OF THE OLD INT 2F

INT 2F AX=D111  INT 2F - MDEBUG command driver - START DRIVER

INT 2F AX=D112  INT 2F - MDEBUG command driver - END DRIVER

INT 2F AH=D1  INT 2F - MDEBUG command driver - RESERVED FUNCTIONS

INT 2F AH=D1  INT 2F - MDEBUG command driver - USER DEFINED FUNCTIONS


INT 2FD2
INT 2F AH=D2

INT 2F AX=D200  INT 2F U - Quarterdeck - QEMM/QRAM/VIDRAM/MANIFEST v5.0+ - INSTALLATION CHECK

INT 2F AX=D201

INT 2F AX=D201

INT 2F AX=D201

INT 2F AX=D201

INT 2F AX=D201

INT 2F AX=D201


INT 2FD3
INT 2F AH=D3

INT 2F AX=D300  INT 2F U - TeleReplica - INSTALLATION CHECK

INT 2F AX=D3CB  INT 2F U - LapLink Quick Connect v6 - API


INT 2FD4
INT 2F AH=D4

INT 2F AX=D44D  INT 2F - 4DOS.COM v2.1+ - API

INT 2F AX=D44E  INT 2F - 4DOS v3.0+ - AWAITING USER INPUT

INT 2F AX=D44F

INT 2F AX=D44F


INT 2FD6
INT 2F AH=D6

INT 2F AX=D600

INT 2F AX=D600

INT 2F AX=D601  INT 2F U - VEDIT VSWAP - ???

INT 2F AX=D602  INT 2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP


INT 2FD7
INT 2F AH=D7

INT 2F AX=D701  INT 2F - BANYAN VINES v4+ - GET BANV INTERRUPT NUMBER

INT 2F AX=D702  INT 2F U - BANYAN VINES v4+ - PCPRINT interface

INT 2F AX=D703  INT 2F U - BANYAN VINES v4+ - MAIL interface

INT 2F AX=D704  INT 2F U - BANYAN VINES v4+ - Streettalk Directory Assistance interface


INT 2FD8
INT 2F AH=D8

INT 2F AX=D800  INT 2F - Novell NetWare Lite - CLIENT.EXE - INSTALLATION CHECK

INT 2F AX=D880  INT 2F - Novell NetWare Lite - SERVER.EXE - INSTALLATION CHECK


INT 2FDA
INT 2F AH=DA

INT 2F AX=DA00  INT 2F - ZyXEL ZFAX - INSTALLATION CHECK

INT 2F AX=DA01  INT 2F - ZyXEL ZFAX - UNINSTALL

INT 2F AX=DA02  INT 2F - ZyXEL ZFAX - DISABLE

INT 2F AX=DA03  INT 2F - ZyXEL ZFAX - ENABLE

INT 2F AX=DA55  INT 2F U - TRAP.COM - INSTALLATION CHECK


INT 2FDC
INT 2F AH=DC

INT 2F AX=DC00  INT 2F - GOLD.COM - INSTALLATION CHECK

INT 2F AX=DC01  INT 2F - GOLD.COM - GET STATE

INT 2F AX=DC02  INT 2F - GOLD.COM - SET STATE


INT 2FDE
INT 2F AH=DE

INT 2F AX=DE00  INT 2F - DESQview v2.26+ External Device Interface - INSTALLATION CHECK

INT 2F AX=DE01

INT 2F AX=DE01

INT 2F AX=DE01

INT 2F AX=DE01

INT 2F AX=DE01

INT 2F AX=DE01

INT 2F AX=DE02  INT 2F C - DESQview v2.26+ External Dev Interface - DV INITIALIZATION COMPLETE

INT 2F AX=DE03  INT 2F C - DESQview v2.26+ External Dev Interface - DV TERMINATION

INT 2F AX=DE04  INT 2F C - DESQview v2.26+ External Dev Interface - ADD PROCESS

INT 2F AX=DE05  INT 2F C - DESQview v2.26+ External Dev Interface - REMOVE PROCESS

INT 2F AX=DE06  INT 2F C - DESQview v2.26+ External Dev Interface - CREATE TASK

INT 2F AX=DE07  INT 2F C - DESQview v2.26+ External Dev Interface - TERMINATE TASK

INT 2F AX=DE08  INT 2F C - DESQview v2.26+ External Dev Interface - SAVE STATE

INT 2F AX=DE09  INT 2F C - DESQview v2.26+ External Dev Interface - RESTORE STATE

INT 2F AX=DE0A  INT 2F C - DESQview v2.26+ External Dev Interface - CHANGE KEYBOARD FOCUS

INT 2F AX=DE0B  INT 2F C - DESQview v2.26+ External Dev Interface - DVP PROCESSING COMPLETE

INT 2F AX=DE0C  INT 2F C - DESQview v2.26+ External Dev Interface - SWAP OUT PROCESS

INT 2F AX=DE0D  INT 2F C - DESQview v2.26+ External Dev Interface - SWAP IN PROCESS

INT 2F AX=DE0E  INT 2F C - DESQview v2.26+ External Dev Interface - DVP START FAILED

INT 2F AX=DE0F  INT 2F C - DESQview v2.50+ External Dev Interface - INITIALIZE DV

INT 2F AX=DE10  INT 2F C - DESQview v2.50+ External Dev Interface - FREE TASK


INT 2FE0
INT 2F AH=E0

INT 2F AX=E000  INT 2F - SETDRVER.COM v2.10+ - INSTALLATION CHECK

INT 2F AX=E001  INT 2F - SETDRVER.COM v2.10+ - GET SETDRVER VERSION

INT 2F AX=E002  INT 2F - SETDRVER.COM v2.10+ - GET ORIGINAL DOS VERSION INFO

INT 2F AX=E003  INT 2F - SETDRVER.COM v2.10+ - RESET INTERNAL VARIABLES

INT 2F AX=E004  INT 2F - SETDRVER.COM v2.10+ - ENABLE TSR

INT 2F AX=E005  INT 2F - SETDRVER.COM v2.10+ - DISABLE TSR

INT 2F AX=E006  INT 2F - SETDRVER.COM v2.10+ - GET TSR STATUS

INT 2F AX=E007  INT 2F - SETDRVER.COM v2.10+ - GET TaskMAX STATUS AT INSTALLATION

INT 2F AH=E0  INT 2F - SETDRVER.COM - RESERVED FOR FUTURE USE


INT 2FE3
INT 2F AH=E3

INT 2F AX=E300  INT 2F - ANARKEY.COM - INSTALLATION CHECK

INT 2F AX=E301  INT 2F U - ANARKEY.COM v2+ - GET ???

INT 2F AX=E302  INT 2F U - ANARKEY.COM v3+ - ???

INT 2F AX=E303  INT 2F U - ANARKEY.COM v3+ - ANARKMD API

INT 2F AX=E304  INT 2F U - ANARKEY.COM v2+ - ???

INT 2F AX=E305  INT 2F U - ANARKEY.COM v3+ - ENABLE/SUSPEND ANARKEY

INT 2F AX=E306  INT 2F U - ANARKEY.COM v4.0 - GET ???

INT 2F AX=E307  INT 2F U - ANARKEY.COM v4.0 - GET ???


INT 2FE4
INT 2F AH=E4

INT 2F AX=E44D  INT 2F - NDOS - API

INT 2F AX=E44E  INT 2F - NDOS - AWAITING USER INPUT


INT 2FED
INT 2F AH=ED

INT 2F AX=ED00  INT 2F - Phar Lap DOS EXTENDERS - INSTALLATION CHECK

INT 2F AX=ED80  INT 2F - Phar Lap 286|DOS Extender Lite v2.5 - ???


INT 2FF0
INT 2F AH=F0

INT 2F AX=F000  INT 2F U - 4MAP - INSTALLATION CHECK

INT 2F AX=F001  INT 2F U - 4MAP - GET KEY MAPPINGS

INT 2F AX=F002  INT 2F U - 4MAP - INSERT CHARACTER INTO ???

INT 2F AX=F003  INT 2F U - 4MAP - INSERT CHARACTER INTO ???


INT 2FF1
INT 2F AH=F1

INT 2F AH=F1  INT 2F U - MIN-MEM v2.11 - INSTALLATION CHECK

INT 2F AX=F100  INT 2F - DOS EXTENDER INSTALLATION CHECK


INT 2FF7
INT 2F AH=F7

INT 2F AX=F700  INT 2F - AUTOPARK.COM - INSTALLATION CHECK

INT 2F AX=F701  INT 2F - AUTOPARK.COM - SET PARKING DELAY


INT 2FF8
INT 2F AH=F8

INT 2F AX=F800  INT 2F U - SuperStor PRO 2XON.COM - INSTALLATION CHECK

INT 2F AX=F801  INT 2F U - SuperStor PRO 2XON.COM - UNINSTALL


INT 2FFB
INT 2F AH=FB

INT 2F AH=FB  INT 2F - Multiplex - RESERVED BY BORLAND INTERNATIONAL

INT 2F AX=FB00

INT 2F AX=FB00

INT 2F AX=FB01

INT 2F AX=FB01

INT 2F AX=FB02

INT 2F AX=FB02

INT 2F AX=FB03

INT 2F AX=FB03

INT 2F AH=FB  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AH=FB  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AH=FB  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AX=FB20  INT 2F U - AutoBraille v1.1A - SET ??? FLAGS

INT 2F AX=FB21  INT 2F U - AutoBraille v1.1A - CLEAR ??? FLAGS

INT 2F AX=FB22  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AX=FB28  INT 2F U - AutoBraille v1.1A - ???

INT 2F AX=FB29  INT 2F U - AutoBraille v1.1A - ???

INT 2F AH=FB  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AX=FB35  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AX=FB36  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AX=FB37  INT 2F U - AutoBraille v1.1A - SET ???

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB42

INT 2F AX=FB43  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION

INT 2F AX=FB64  INT 2F U - AutoBraille v1.1A - GET ???

INT 2F AX=FBA1

INT 2F AX=FBA1

INT 2F AX=FBA1

INT 2F AX=FBFB  INT 2F U - SoundBlaster speech driver - INSTALLATION CHECK


INT 2FFE
INT 2F AH=FE

INT 2F AX=FE00  INT 2F U - NORTON UTILITIES 5.0+ TSRs - INSTALLATION CHECK/STATUS REPORT

INT 2F AX=FE01  INT 2F U - NORTON UTILITIES 5.0+ TSRs - ENABLE

INT 2F AX=FE02  INT 2F U - NORTON UTILITIES 5.0+ TSRs - DISABLE

INT 2F AX=FE03  INT 2F U - NORTON UTILITIES 5.0+ TSRs - internal - ???

INT 2F AX=FE04  INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???

INT 2F AX=FE05  INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???


INT 2FFF
INT 2F AH=FF

INT 2F AX=FF00  INT 2F - Topware Network Operating System - INSTALLATION CHECK

INT 2F AX=FF01  INT 2F - Topware Network Operating System - GET VERSION


INT 3100
INT 31 AH=00

INT 31 AX=0000  INT 31 P - DPMI 0.9+ - ALLOCATE LDT DESCRIPTORS

INT 31 AX=0001  INT 31 P - DPMI 0.9+ - FREE LDT DESCRIPTOR

INT 31 AX=0002  INT 31 P - DPMI 0.9+ - SEGMENT TO DESCRIPTOR

INT 31 AX=0003  INT 31 P - DPMI 0.9+ - GET NEXT SELECTOR INCREMENT VALUE

INT 31 AX=0004  INT 31 P - DPMI 0.9+ - LOCK SELECTOR

INT 31 AX=0005  INT 31 P - DPMI 0.9+ - UNLOCK SELECTOR

INT 31 AX=0006  INT 31 P - DPMI 0.9+ - GET SEGMENT BASE ADDRESS

INT 31 AX=0007  INT 31 P - DPMI 0.9+ - SET SEGMENT BASE ADDRESS

INT 31 AX=0008  INT 31 P - DPMI 0.9+ - SET SEGMENT LIMIT

INT 31 AX=0009  INT 31 P - DPMI 0.9+ - SET DESCRIPTOR ACCESS RIGHTS

INT 31 AX=000A  INT 31 P - DPMI 0.9+ - CREATE ALIAS DESCRIPTOR

INT 31 AX=000B  INT 31 P - DPMI 0.9+ - GET DESCRIPTOR

INT 31 AX=000C  INT 31 P - DPMI 0.9+ - SET DESCRIPTOR

INT 31 AX=000D  INT 31 P - DPMI 0.9+ - ALLOCATE SPECIFIC LDT DESCRIPTOR

INT 31 AX=000E  INT 31 P - DPMI 1.0+ - GET MULTIPLE DESCRIPTORS

INT 31 AX=000F  INT 31 P - DPMI 1.0+ - SET MULTIPLE DESCRIPTORS


INT 3101
INT 31 AH=01

INT 31 AX=0100  INT 31 P - DPMI 0.9+ - ALLOCATE DOS MEMORY BLOCK

INT 31 AX=0101  INT 31 P - DPMI 0.9+ - FREE DOS MEMORY BLOCK

INT 31 AX=0102  INT 31 P - DPMI 0.9+ - RESIZE DOS MEMORY BLOCK


INT 3102
INT 31 AH=02

INT 31 AX=0200  INT 31 P - DPMI 0.9+ - GET REAL MODE INTERRUPT VECTOR

INT 31 AX=0201  INT 31 P - DPMI 0.9+ - SET REAL MODE INTERRUPT VECTOR

INT 31 AX=0202  INT 31 P - DPMI 0.9+ - GET PROCESSOR EXCEPTION HANDLER VECTOR

INT 31 AX=0203  INT 31 P - DPMI 0.9+ - SET PROCESSOR EXCEPTION HANDLER VECTOR

INT 31 AX=0204  INT 31 P - DPMI 0.9+ - GET PROTECTED MODE INTERRUPT VECTOR

INT 31 AX=0205  INT 31 P - DPMI 0.9+ - SET PROTECTED MODE INTERRUPT VECTOR

INT 31 AX=0210  INT 31 P - DPMI 1.0+ - GET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER

INT 31 AX=0211  INT 31 P - DPMI 1.0+ - GET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER

INT 31 AX=0212  INT 31 P - DPMI 1.0+ - SET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER

INT 31 AX=0213  INT 31 P - DPMI 1.0+ - SET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER


INT 3103
INT 31 AH=03

INT 31 AX=0300  INT 31 P - DPMI 0.9+ - SIMULATE REAL MODE INTERRUPT

INT 31 AX=0301  INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH FAR RETURN FRAME

INT 31 AX=0302  INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH IRET FRAME

INT 31 AX=0303  INT 31 P - DPMI 0.9+ - ALLOCATE REAL MODE CALLBACK ADDRESS

INT 31 AX=0304  INT 31 P - DPMI 0.9+ - FREE REAL MODE CALLBACK ADDRESS

INT 31 AX=0305  INT 31 P - DPMI 0.9+ - GET STATE SAVE/RESTORE ADDRESSES

INT 31 AX=0306  INT 31 P - DPMI 0.9+ - GET RAW MODE SWITCH ADDRESSES


INT 3104
INT 31 AH=04

INT 31 AX=0400  INT 31 P - DPMI 0.9+ - GET DPMI VERSION

INT 31 AX=0401  INT 31 P - DPMI 1.0+ - GET DPMI CAPABILITIES


INT 3105
INT 31 AH=05

INT 31 AX=0500  INT 31 P - DPMI 0.9+ - GET FREE MEMORY INFORMATION

INT 31 AX=0501  INT 31 P - DPMI 0.9+ - ALLOCATE MEMORY BLOCK

INT 31 AX=0502  INT 31 P - DPMI 0.9+ - FREE MEMORY BLOCK

INT 31 AX=0503  INT 31 P - DPMI 0.9+ - RESIZE MEMORY BLOCK

INT 31 AX=0504  INT 31 P - DPMI 1.0+ - ALLOCATE LINEAR MEMORY BLOCK

INT 31 AX=0505  INT 31 P - DPMI 1.0+ - RESIZE LINEAR MEMORY BLOCK

INT 31 AX=0506  INT 31 P - DPMI 1.0+ - GET PAGE ATTRIBUTES

INT 31 AX=0507  INT 31 P - DPMI 1.0+ - MODIFY PAGE ATTRIBUTES

INT 31 AX=0508  INT 31 P - DPMI 1.0+ - MAP DEVICE IN MEMORY BLOCK

INT 31 AX=0509  INT 31 P - DPMI 1.0+ - MAP CONVENTIONAL MEMORY IN MEMORY BLOCK

INT 31 AX=050A  INT 31 P - DPMI 1.0+ - GET MEMORY BLOCK SIZE AND BASE

INT 31 AX=050B  INT 31 P - DPMI 1.0+ - GET MEMORY INFORMATION


INT 3106
INT 31 AH=06

INT 31 AX=0600  INT 31 P - DPMI 0.9+ - LOCK LINEAR REGION

INT 31 AX=0601  INT 31 P - DPMI 0.9+ - UNLOCK LINEAR REGION

INT 31 AX=0602  INT 31 P - DPMI 0.9+ - MARK REAL MODE REGION AS PAGEABLE

INT 31 AX=0603  INT 31 P - DPMI 0.9+ - RELOCK REAL MODE REGION

INT 31 AX=0604  INT 31 P - DPMI 0.9+ - GET PAGE SIZE


INT 3107
INT 31 AH=07

INT 31 AX=0700  INT 31 P - DPMI 0.9+ - MARK PAGES AS PAGING CANDIDATES

INT 31 AX=0701  INT 31 P - DPMI 0.9+ - DISCARD PAGES

INT 31 AX=0702  INT 31 P - DPMI 0.9+ - MARK PAGE AS DEMAND PAGING CANDIDATE

INT 31 AX=0703  INT 31 P - DPMI 0.9+ - DISCARD PAGE CONTENTS


INT 3108
INT 31 AH=08

INT 31 AX=0800  INT 31 P - DPMI 0.9+ - PHYSICAL ADDRESS MAPPING

INT 31 AX=0801  INT 31 P - DPMI 1.0+ - FREE PHYSICAL ADDRESS MAPPING


INT 3109
INT 31 AH=09

INT 31 AX=0900  INT 31 P - DPMI 0.9+ - GET AND DISABLE VIRTUAL INTERRUPT STATE

INT 31 AX=0901  INT 31 P - DPMI 0.9+ - GET AND ENABLE VIRTUAL INTERRUPT STATE

INT 31 AX=0902  INT 31 P - DPMI 0.9+ - GET VIRTUAL INTERRUPT STATE


INT 310B
INT 31 AH=0B

INT 31 AX=0B00  INT 31 P - DPMI 0.9+ - SET DEBUG WATCHPOINT

INT 31 AX=0B01  INT 31 P - DPMI 0.9+ - CLEAR DEBUG WATCHPOINT

INT 31 AX=0B02  INT 31 P - DPMI 0.9+ - GET STATE OF DEBUG WATCHPOINT

INT 31 AX=0B03  INT 31 P - DPMI 0.9+ - RESET DEBUG WATCHPOINT


INT 310C
INT 31 AH=0C

INT 31 AX=0C00  INT 31 P - DPMI 1.0+ - INSTALL RESIDENT HANDLER INIT CALLBACK

INT 31 AX=0C01  INT 31 P - DPMI 1.0+ - TERMINATE AND STAY RESIDENT


INT 310D
INT 31 AH=0D

INT 31 AX=0D00  INT 31 P - DPMI 1.0+ - ALLOCATE SHARED MEMORY

INT 31 AX=0D01  INT 31 P - DPMI 1.0+ - FREE SHARED MEMORY

INT 31 AX=0D02  INT 31 P - DPMI 1.0+ - SERIALIZE SHARED MEMORY

INT 31 AX=0D03  INT 31 P - DPMI 1.0+ - FREE SERIALIZATION ON SHARED MEMORY


INT 310E
INT 31 AH=0E

INT 31 AX=0E00  INT 31 P - DPMI 1.0+ - GET COPROCESSOR STATUS

INT 31 AX=0E01  INT 31 P - DPMI 1.0+ - SET EMULATION


INT 3300
INT 33 AH=00

INT 33 AX=0000  INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS

INT 33 AX=0001  INT 33 - MS MOUSE - SHOW MOUSE CURSOR

INT 33 AX=0002  INT 33 - MS MOUSE - HIDE MOUSE CURSOR

INT 33 AX=0003  INT 33 - MS MOUSE - RETURN POSITION AND BUTTON STATUS

INT 33 AX=0004  INT 33 - MS MOUSE - POSITION MOUSE CURSOR

INT 33 AX=0005  INT 33 - MS MOUSE - RETURN BUTTON PRESS DATA

INT 33 AX=0006  INT 33 - MS MOUSE - RETURN BUTTON RELEASE DATA

INT 33 AX=0007  INT 33 - MS MOUSE - DEFINE HORIZONTAL CURSOR RANGE

INT 33 AX=0008  INT 33 - MS MOUSE - DEFINE VERTICAL CURSOR RANGE

INT 33 AX=0009  INT 33 - MS MOUSE - DEFINE GRAPHICS CURSOR

INT 33 AX=000A  INT 33 - MS MOUSE - DEFINE TEXT CURSOR

INT 33 AX=000B  INT 33 - MS MOUSE - READ MOTION COUNTERS

INT 33 AX=000C  INT 33 - MS MOUSE - DEFINE INTERRUPT SUBROUTINE PARAMETERS

INT 33 AX=000D  INT 33 - MS MOUSE - LIGHT PEN EMULATION ON

INT 33 AX=000E  INT 33 - MS MOUSE - LIGHT PEN EMULATION OFF

INT 33 AX=000F  INT 33 - MS MOUSE - DEFINE MICKEY/PIXEL RATIO

INT 33 AX=0010

INT 33 AX=0010

INT 33 AX=0011  INT 33 - Genius Mouse 9.06 - GET NUMBER OF BUTTONS

INT 33 AX=0012  INT 33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK

INT 33 AX=0013  INT 33 - MS MOUSE - DEFINE DOUBLE-SPEED THRESHOLD

INT 33 AX=0014  INT 33 - MS MOUSE - EXCHANGE INTERRUPT SUBROUTINES

INT 33 AX=0015  INT 33 - MS MOUSE - RETURN DRIVER STORAGE REQUIREMENTS

INT 33 AX=0016  INT 33 - MS MOUSE - SAVE DRIVER STATE

INT 33 AX=0017  INT 33 - MS MOUSE - RESTORE DRIVER STATE

INT 33 AX=0018  INT 33 - MS MOUSE - SET ALTERNATE MOUSE USER HANDLER

INT 33 AX=0019  INT 33 - MS MOUSE - RETURN USER ALTERNATE INTERRUPT VECTOR

INT 33 AX=001A  INT 33 - MS MOUSE - SET MOUSE SENSITIVITY

INT 33 AX=001B  INT 33 - MS MOUSE - RETURN MOUSE SENSITIVITY

INT 33 AX=001C  INT 33 - MS MOUSE - SET INTERRUPT RATE

INT 33 AX=001D  INT 33 - MS MOUSE - DEFINE DISPLAY PAGE NUMBER

INT 33 AX=001E  INT 33 - MS MOUSE - RETURN DISPLAY PAGE NUMBER

INT 33 AX=001F  INT 33 - MS MOUSE - DISABLE MOUSE DRIVER

INT 33 AX=0020  INT 33 - MS MOUSE - ENABLE MOUSE DRIVER

INT 33 AX=0021  INT 33 - MS MOUSE - SOFTWARE RESET

INT 33 AX=0022  INT 33 - MS MOUSE - SET LANGUAGE FOR MESSAGES

INT 33 AX=0023  INT 33 - MS MOUSE - GET LANGUAGE FOR MESSAGES

INT 33 AX=0024  INT 33 - MS MOUSE v6.26+ - GET SOFTWARE VERSION, MOUSE TYPE, AND IRQ NUMBER

INT 33 AX=0025  INT 33 - MS MOUSE v6.26+ - GET GENERAL DRIVER INFORMATION

INT 33 AX=0026

INT 33 AX=0026

INT 33 AX=0027  INT 33 - MS MOUSE v7.01+ - GET SCREEN/CURSOR MASKS AND MICKEY COUNTS

INT 33 AX=0028  INT 33 - MS MOUSE v7.0+ - SET VIDEO MODE

INT 33 AX=0029  INT 33 - MS MOUSE v7.0+ - ENUMERATE VIDEO MODES

INT 33 AX=002A  INT 33 - MS MOUSE v7.02+ - GET CURSOR HOT SPOT

INT 33 AX=002B  INT 33 - MS MOUSE v7.0+ - LOAD ACCELERATION PROFILES

INT 33 AX=002C  INT 33 - MS MOUSE v7.0+ - GET ACCELERATION PROFILES

INT 33 AX=002D  INT 33 - MS MOUSE v7.0+ - SELECT ACCELERATION PROFILE

INT 33 AX=002E  INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES

INT 33 AX=002F  INT 33 - MS MOUSE v7.02+ - MOUSE HARDWARE RESET

INT 33 AX=0030  INT 33 - MS MOUSE v7.04+ - GET/SET BallPoint INFORMATION

INT 33 AX=0031  INT 33 - MS MOUSE v7.05+ - GET CURRENT MINIMUM/MAXIMUM VIRTUAL COORDINATES

INT 33 AX=0032  INT 33 - MS MOUSE v7.05+ - GET ACTIVE ADVANCED FUNCTIONS

INT 33 AX=0033  INT 33 - MS MOUSE v7.05+ - GET SWITCH SETTINGS AND ACCELERATION PROFILE DATA

INT 33 AX=0034  INT 33 - MS MOUSE v8.0+ - GET INITIALIZATION FILE

INT 33 AX=0035  INT 33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT

INT 33 AX=0042  INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS

INT 33 AX=0043  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - CONFIGURE MOUSE???

INT 33 AX=0044  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - TOGGLE ???

INT 33 AX=0045  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - TOGGLE ???

INT 33 AX=0047  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - SET BUTTON ASSIGNMENTS

INT 33 AX=0048  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - GET ???

INT 33 AX=004B  INT 33 - Z-NIX MOUSE DRIVER v7.04d - INSTALLATION CHECK

INT 33 AX=004C  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - SET ??? FLAG

INT 33 AX=004D  INT 33 - MS MOUSE - RETURN POINTER TO COPYRIGHT STRING

INT 33 AX=004F  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ENABLE MOUSE

INT 33 AX=0050  INT 33 - PCMOUSE - SAVE MSMOUSE STATE

INT 33 AX=0052  INT 33 - PCMOUSE - RESTORE MSMOUSE STATE

INT 33 AX=0053  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - DISABLE MOUSE

INT 33 AX=0054  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - SELECT ULTRARES ACCELERATION LEVEL

INT 33 AX=0055  INT 33 - Kraft Mouse - GET ???

INT 33 AX=0058  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???

INT 33 AX=005A  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - SET ULTRARES ACCELERATIONS

INT 33 AX=0061  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???

INT 33 AX=0067  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - GET MOUSE BUTTONS???

INT 33 AX=006C  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - CLEAR ??? FLAG

INT 33 AX=006D  INT 33 - MS MOUSE - GET VERSION STRING

INT 33 AX=0070  INT 33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK

INT 33 AX=0072  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???

INT 33 AX=0073  INT 33 - Mouse Systems MOUSE DRIVER v7.01 - GET BUTTON ASSIGNMENTS


INT 3330
INT 33 AH=30

INT 33 AX=3000  INT 33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK

INT 33 AX=3001  INT 33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE

INT 33 AX=3002  INT 33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE

INT 33 AX=3003  INT 33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION


INT 334F
INT 33 AH=4F

INT 33 AX=4F00  INT 33 - LOGITECH MOUSE v6.10+ - GET ???

INT 33 AX=4F01  INT 33 - LOGITECH MOUSE v6.10+ - ???


INT 4780
INT 47 AH=80

INT 47 AX=8000  INT 47 - SQL Base - DATABASE ENGINE API

INT 47 AX=8001  INT 47 - SQL Base - GET VERSION NUMBER


INT 4900
INT 49 AH=00

INT 49 AX=0001  INT 49 - MAGic v1.16+ - TURN ON MAGNIFICATION

INT 49 AX=0002  INT 49 - MAGic v1.16+ - TURN OFF MAGNIFICATION

INT 49 AX=0003  INT 49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION

INT 49 AX=0004  INT 49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW

INT 49 AX=0005  INT 49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW

INT 49 AX=0006  INT 49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN

INT 49 AX=0007  INT 49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW

INT 49 AX=0008  INT 49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE


INT 4B81
INT 4B AH=81

INT 4B AX=8102  INT 4B - Virtual DMA Specification (VDS) - GET VERSION

INT 4B AX=8103  INT 4B - Virtual DMA Specification - LOCK DMA REGION

INT 4B AX=8104  INT 4B - Virtual DMA Specification - UNLOCK DMA REGION

INT 4B AX=8105  INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION

INT 4B AX=8106  INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION

INT 4B AX=8107  INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER

INT 4B AX=8108  INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER

INT 4B AX=8109  INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER

INT 4B AX=810A  INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER

INT 4B AX=810B  INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION

INT 4B AX=810C  INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION

INT 4B AX=810D  INT 4B - QEMM-386 - BUG


INT 5000
INT 50 AH=00

INT 50 AX=0000  INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW

INT 50 AX=0001  INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW

INT 50 AX=0002

INT 50 AX=0002

INT 50 AX=0003

INT 50 AX=0003

INT 50 AX=0004

INT 50 AX=0004

INT 50 AX=0005

INT 50 AX=0005

INT 50 AX=0006

INT 50 AX=0006

INT 50 AX=0007  INT 50 - PC Thuis Organizer Shell - DO LINE

INT 50 AX=0008  INT 50 - PC Thuis Organizer Shell - DO MENU

INT 50 AX=0009  INT 50 - PC Thuis Organizer Shell - MESSAGE ON

INT 50 AX=000A  INT 50 - PC Thuis Organizer Shell - MESSAGE OFF

INT 50 AX=000B  INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE

INT 50 AX=000C  INT 50 - PC Thuis Organizer Shell - DO REQUEST

INT 50 AX=000D  INT 50 - PC Thuis Organizer Shell - EDIT LINE

INT 50 AX=000E  INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER

INT 50 AX=000F  INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW

INT 50 AX=0010  INT 50 - PC Thuis Organizer Shell - TRACE MENU

INT 50 AX=0011  INT 50 - PC Thuis Organizer Shell - MOVE MEMORY

INT 50 AX=0012  INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY

INT 50 AX=0013  INT 50 - PC Thuis Organizer Shell - GET KEY

INT 50 AX=0014  INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW

INT 50 AX=0015  INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE


INT 6000
INT 60 AH=00

INT 60 AH=00  INT 60 - SYS_PROF.EXE - PROFILER STATUS

INT 60 AH=00  INT 60 - MDEBUG - GET STATUS


INT 6001
INT 60 AH=01

INT 60 AH=01  INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS

INT 60 AH=01  INT 60 - SYS_PROF.EXE - TURN PROFILING OFF

INT 60 AX=01FF  INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO


INT 6002
INT 60 AH=02

INT 60 AH=02  INT 60 - MDEBUG - SET STATUS

INT 60 AH=02  INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE

INT 60 AH=02  INT 60 - SYS_PROF.EXE - TURN PROFILING ON


INT 6003
INT 60 AH=03

INT 60 AH=03  INT 60 - MDEBUG - POP UP

INT 60 AH=03  INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE

INT 60 AH=03  INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE


INT 6004
INT 60 AH=04

INT 60 AH=04  INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET

INT 60 AH=04  INT 60 - MDEBUG - POP UP

INT 60 AH=04  INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE


INT 6005
INT 60 AH=05

INT 60 AH=05  INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE

INT 60 AH=05  INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS


INT 6006
INT 60 AH=06

INT 60 AH=06  INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS

INT 60 AH=06  INT 60 - MDEBUG - GET PASSWORD STATUS


INT 6007
INT 60 AH=07

INT 60 AH=07  INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE

INT 60 AH=07  INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG


INT 600C
INT 60 AH=0C

INT 60 AH=0C  INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET

INT 60 AH=0C  INT 60 - Banyan VINES, 3com - GET STATION ADDRESS


INT 6100
INT 61 AH=00

INT 61 AH=00  INT 61 U - PC/TCP kernel v2.05 - GET DEBUG INFORMATION

INT 61 AX=0000  INT 61 - OPTIMA 1024 VGA-Sync - ZOOM DISPLAY

INT 61 AX=0001

INT 61 AX=0001

INT 61 AX=0001

INT 61 AX=0001

INT 61 AX=0001

INT 61 AX=0001

INT 61 AX=0001

INT 61 AX=0001

INT 61 AX=0002

INT 61 AX=0002

INT 61 AX=0003

INT 61 AX=0003

INT 61 AX=0004

INT 61 AX=0004

INT 61 AX=0005

INT 61 AX=0005

INT 61 AX=0006  INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM WINDOW

INT 61 AX=0007

INT 61 AX=0007

INT 61 AX=0007

INT 61 AX=0007

INT 61 AX=0007

INT 61 AX=0007

INT 61 AX=0007

INT 61 AX=0008

INT 61 AX=0008

INT 61 AX=0008

INT 61 AX=000A  INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE


INT 6200
INT 62 AH=00

INT 62 AX=0000  INT 62 u - FGDRIVER v1.10 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER

INT 62 AX=0001  INT 62 u - FGDRIVER v1.10 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE

INT 62 AX=0002  INT 62 u - FGDRIVER v1.10 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE

INT 62 AX=0003  INT 62 u - FGDRIVER v1.10 - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN

INT 62 AX=0004  INT 62 u - FGDRIVER v1.10 - "FG_AUTOMODE" - GET VIDEO MODE WITH MOST FEATURES

INT 62 AX=0005  INT 62 u - FGDRIVER v1.10 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY

INT 62 AX=0006  INT 62 u - FGDRIVER v1.10 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR

INT 62 AX=0007  INT 62 u - FGDRIVER v1.10 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE

INT 62 AX=0008  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=000A  INT 62 u - FGDRIVER v1.10 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE

INT 62 AX=000B  INT 62 u - FGDRIVER v1.10 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE

INT 62 AX=000C  INT 62 u - FGDRIVER v1.10 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN

INT 62 AX=000D  INT 62 u - FGDRIVER v1.10 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW

INT 62 AX=000E  INT 62 u - FGDRIVER v1.10 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL

INT 62 AX=000F  INT 62 u - FGDRIVER v1.10 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW

INT 62 AX=0010  INT 62 u - FGDRIVER v1.10 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE

INT 62 AX=0011  INT 62 u - FGDRIVER v1.10 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN

INT 62 AX=0012  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=0014  INT 62 u - FGDRIVER v1.10 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX

INT 62 AX=0015  INT 62 u - FGDRIVER v1.10 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE

INT 62 AX=0016  INT 62 u - FGDRIVER v1.10 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX

INT 62 AX=0017  INT 62 u - FGDRIVER v1.10 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER

INT 62 AX=0018  INT 62 u - FGDRIVER v1.10 - "FG_PALETTES" - SET ALL PALETTE REGISTERS

INT 62 AX=0019  INT 62 u - FGDRIVER v1.10 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE

INT 62 AX=001A  INT 62 u - FGDRIVER v1.10 - "FG_SETCOLOR" - SET CURRENT COLOR

INT 62 AX=001B  INT 62 u - FGDRIVER v1.10 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS

INT 62 AX=001C  INT 62 u - FGDRIVER v1.10 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS

INT 62 AX=001D  INT 62 u - FGDRIVER v1.10 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL

INT 62 AX=001E  INT 62 u - FGDRIVER v1.10 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE

INT 62 AX=001F  INT 62 u - FGDRIVER v1.10 - "FG_POINT" - DISPLAY A PIXEL

INT 62 AX=0020  INT 62 u - FGDRIVER v1.10 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL

INT 62 AX=0021  INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN

INT 62 AX=0022  INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR ROW

INT 62 AX=0023  INT 62 u - FGDRIVER v1.10 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION

INT 62 AX=0024  INT 62 u - FGDRIVER v1.10 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION

INT 62 AX=0025  INT 62 u - FGDRIVER v1.10 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION

INT 62 AX=0026  INT 62 u - FGDRIVER v1.10 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION

INT 62 AX=0027  INT 62 u - FGDRIVER v1.10 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION

INT 62 AX=0028  INT 62 u - FGDRIVER v1.10 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION

INT 62 AX=0029  INT 62 u - FGDRIVER v1.10 - "FG_SETCLIP" - SET CLIPPING REGION

INT 62 AX=002A  INT 62 u - FGDRIVER v1.10 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE

INT 62 AX=002B  INT 62 u - FGDRIVER v1.10 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE

INT 62 AX=002C  INT 62 u - FGDRIVER v1.10 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE

INT 62 AX=002D  INT 62 u - FGDRIVER v1.10 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE

INT 62 AX=002E  INT 62 u - FGDRIVER v1.10 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON

INT 62 AX=002F  INT 62 u - FGDRIVER v1.10 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR

INT 62 AX=0030  INT 62 u - FGDRIVER v1.10 - "FG_CIRCLE" - DRAW UNFILLED CIRCLE

INT 62 AX=0031  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=0032  INT 62 u - FGDRIVER v1.10 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS

INT 62 AX=0033  INT 62 u - FGDRIVER v1.10 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION

INT 62 AX=0034  INT 62 u - FGDRIVER v1.10 - "FG_WHERE" - GET CURRENT CURSOR POSITION

INT 62 AX=0035  INT 62 u - FGDRIVER v1.10 - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS

INT 62 AX=0036  INT 62 u - FGDRIVER v1.10 - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION

INT 62 AX=0037  INT 62 u - FGDRIVER v1.10 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION

INT 62 AX=0038  INT 62 u - FGDRIVER v1.10 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION

INT 62 AX=0039  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=003C  INT 62 u - FGDRIVER v1.10 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER

INT 62 AX=003D  INT 62 u - FGDRIVER v1.10 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE

INT 62 AX=003E  INT 62 u - FGDRIVER v1.10 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER

INT 62 AX=003F  INT 62 u - FGDRIVER v1.10 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE

INT 62 AX=0040  INT 62 u - FGDRIVER v1.10 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM

INT 62 AX=0041  INT 62 u - FGDRIVER v1.10 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE

INT 62 AX=0042  INT 62 u - FGDRIVER v1.10 - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE

INT 62 AX=0043  INT 62 u - FGDRIVER v1.10 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE

INT 62 AX=0044  INT 62 u - FGDRIVER v1.10 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE

INT 62 AX=0045  INT 62 u - FGDRIVER v1.10 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE

INT 62 AX=0046  INT 62 u - FGDRIVER v1.10 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP

INT 62 AX=0047  INT 62 u - FGDRIVER v1.10 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP

INT 62 AX=0048  INT 62 u - FGDRIVER v1.10 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP

INT 62 AX=0049  INT 62 u - FGDRIVER v1.10 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE

INT 62 AX=004A  INT 62 u - FGDRIVER v1.10 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)

INT 62 AX=004B  INT 62 u - FGDRIVER v1.10 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)

INT 62 AX=004C  INT 62 u - FGDRIVER v1.10 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)

INT 62 AX=004D  INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)

INT 62 AX=004E  INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (PACKED PIXEL RUN FMT)

INT 62 AX=004F  INT 62 u - FGDRIVER v1.10 - "FG_DISPFILE" - DISPLAY STORED IMAGE

INT 62 AX=0050  INT 62 u - FGDRIVER v1.10 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR

INT 62 AX=0051  INT 62 u - FGDRIVER v1.10 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)

INT 62 AX=0052  INT 62 u - FGDRIVER v1.10 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)

INT 62 AX=0053  INT 62 u - FGDRIVER v1.10 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)

INT 62 AX=0054  INT 62 u - FGDRIVER v1.10 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)

INT 62 AX=0055  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=005A  INT 62 u - FGDRIVER v1.10 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE

INT 62 AX=005B  INT 62 u - FGDRIVER v1.10 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE

INT 62 AX=005C  INT 62 u - FGDRIVER v1.10 - "FG_TRANSFER" - COPY REGION

INT 62 AX=005D  INT 62 u - FGDRIVER v1.10 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT

INT 62 AX=005E  INT 62 u - FGDRIVER v1.10 - "FG_TCMASK" - SET TRANSPARENT COLORS

INT 62 AX=005F  INT 62 u - FGDRIVER v1.10 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS

INT 62 AX=0060  INT 62 u - FGDRIVER v1.10 - "FG_DISPPCX" - DISPLAY PCX FILE

INT 62 AX=0061  INT 62 u - FGDRIVER v1.10 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW

INT 62 AX=0062  INT 62 u - FGDRIVER v1.10 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT

INT 62 AX=0063  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=0064  INT 62 u - FGDRIVER v1.10 - "FG_FADEIN" - FADE IN HIDDEN PAGE

INT 62 AX=0065  INT 62 u - FGDRIVER v1.10 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR

INT 62 AX=0066  INT 62 u - FGDRIVER v1.10 - "FG_PAN" - SET SCREEN ORIGIN

INT 62 AX=0067  INT 62 u - FGDRIVER v1.10 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION

INT 62 AX=0068  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=006D  INT 62 u - FGDRIVER v1.10 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY

INT 62 AX=006E  INT 62 u - FGDRIVER v1.10 - "FG_GETKEY" - GET NEXT KEYSTROKE

INT 62 AX=006F  INT 62 u - FGDRIVER v1.10 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT

INT 62 AX=0070  INT 62 u - FGDRIVER v1.10 - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY

INT 62 AX=0071  INT 62 u - FGDRIVER v1.10 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY

INT 62 AX=0072  INT 62 u - FGDRIVER v1.10 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY

INT 62 AX=0073  INT 62 u - FGDRIVER v1.10 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY

INT 62 AX=0074  INT 62 u - FGDRIVER v1.10 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY

INT 62 AX=0075  INT 62 u - FGDRIVER v1.10 - "FG_INITJOY" - INITIALIZE JOYSTICK USE

INT 62 AX=0076  INT 62 u - FGDRIVER v1.10 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK

INT 62 AX=0077  INT 62 u - FGDRIVER v1.10 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK

INT 62 AX=0078  INT 62 u - FGDRIVER v1.10 - "FG_BUTTON" - GET JOYSTICK BUTTON STATE

INT 62 AX=0079  INT 62 u - FGDRIVER v1.10 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS

INT 62 AX=007A  INT 62 u - FGDRIVER v1.10 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT

INT 62 AX=007B  INT 62 u - FGDRIVER v1.10 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY

INT 62 AX=007C  INT 62 u - FGDRIVER v1.10 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS

INT 62 AX=007D  INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION

INT 62 AX=007E  INT 62 u - FGDRIVER v1.10 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR

INT 62 AX=007F  INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR

INT 62 AX=0080  INT 62 u - FGDRIVER v1.10 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS

INT 62 AX=0081  INT 62 u - FGDRIVER v1.10 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION

INT 62 AX=0082  INT 62 u - FGDRIVER v1.10 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED

INT 62 AX=0083  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=0088  INT 62 u - FGDRIVER v1.10 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION

INT 62 AX=0089  INT 62 u - FGDRIVER v1.10 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND

INT 62 AX=008A  INT 62 u - FGDRIVER v1.10 - "FG_VOICE" - START SOUND

INT 62 AX=008B  INT 62 u - FGDRIVER v1.10 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND

INT 62 AX=008C  INT 62 u - FGDRIVER v1.10 - "FG_MUSIC" - PLAY SERIES OF NOTES

INT 62 AX=008D  INT 62 u - FGDRIVER v1.10 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND

INT 62 AX=008E  INT 62 u - FGDRIVER v1.10 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY

INT 62 AX=008F  INT 62 u - FGDRIVER v1.10 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND

INT 62 AX=0090  INT 62 u - FGDRIVER v1.10 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND

INT 62 AX=0091  INT 62 u - FGDRIVER v1.10 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE

INT 62 AX=0092  INT 62 u - FGDRIVER v1.10 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND

INT 62 AX=0093  INT 62 u - FGDRIVER v1.10 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND

INT 62 AX=0094  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=0096  INT 62 u - FGDRIVER v1.10 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION

INT 62 AX=0097  INT 62 u - FGDRIVER v1.10 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION

INT 62 AX=0098  INT 62 u - FGDRIVER v1.10 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK

INT 62 AX=0099  INT 62 u - FGDRIVER v1.10 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT

INT 62 AX=009A  INT 62 - FGDRIVER v1.10 - UNUSED

INT 62 AX=009B  INT 62 u - FGDRIVER v1.10 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY

INT 62 AX=009C  INT 62 u - FGDRIVER v1.10 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS

INT 62 AX=009D  INT 62 u - FGDRIVER v1.10 - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONVMEM)

INT 62 AX=009E  INT 62 u - FGDRIVER v1.10 - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)

INT 62 AX=009F  INT 62 u - FGDRIVER v1.10 - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)

INT 62 AX=00A0  INT 62 u - FGDRIVER v1.10 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE

INT 62 AX=00A1  INT 62 u - FGDRIVER v1.10 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE

INT 62 AX=00A2  INT 62 u - FGDRIVER v1.10 - "FG_BOX" - DRAW UNFILLED RECTANGLE

INT 62 AX=00A3  INT 62 u - FGDRIVER v1.10 - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH

INT 62 AX=00A4  INT 62 u - FGDRIVER v1.10 - "FG_GETDACS" - GET VIDEO DAC CONTENTS

INT 62 AX=00A5  INT 62 u - FGDRIVER v1.10 - "FG_SETDACS" - SET VIDEO DAC CONTENTS


INT 6208
INT 62 AH=08

INT 62 AH=08  INT 62 - Cswitch - WAKE UP TASK

INT 62 AH=08  INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR


INT 6606
INT 66 AH=06

INT 66 AH=06  INT 66 - BitFax Scheduler - SET MODE???

INT 66 AX=0688  INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)

INT 66 AX=0689  INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)


INT 66FF
INT 66 AH=FF

INT 66 AX=FFFB  INT 66 - MicroHelp Stay-Res Plus - ???

INT 66 AX=FFFE  INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL

INT 66 AX=FFFF  INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME


INT 675B
INT 67 AH=5B

INT 67 AH=5B  INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET

INT 67 AH=5B  INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS

INT 67 AX=5BE0  INT 67 - MICEMM v4D - GET LINEAR ADDRESS OF MEMORY

INT 67 AX=5BF0  INT 67 - MICEMM v4D - INSTALLATION CHECK

INT 67 AX=5BF1  INT 67 - MICEMM v4D - GET MEMORY TYPES


INT 67DE
INT 67 AH=DE

INT 67 AX=DE00  INT 67 - Virtual Control Program Interface - INSTALLATION CHECK

INT 67 AX=DE01  INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE

INT 67 AX=DE02  INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS

INT 67 AX=DE03  INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES

INT 67 AX=DE04  INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE

INT 67 AX=DE05  INT 67 - Virtual Control Program Interface - FREE 4K PAGE

INT 67 AX=DE06  INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB

INT 67 AX=DE07  INT 67 - Virtual Control Program Interface - READ CR0

INT 67 AX=DE08  INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS

INT 67 AX=DE09  INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS

INT 67 AX=DE0A  INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS

INT 67 AX=DE0B  INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS

INT 67 AX=DE0C  INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE


INT 6901
INT 69 AH=01

INT 69 AX=0100  INT 69 - DECnet DOS CTERM - INSTALLATION CHECK

INT 69 AX=0101  INT 69 - DECnet DOS CTERM - SEND BYTE

INT 69 AX=0102  INT 69 - DECnet DOS CTERM - READ BYTE

INT 69 AX=0103  INT 69 - DECnet DOS CTERM - STATUS

INT 69 AX=0104  INT 69 - DECnet DOS CTERM - DECnet STATUS

INT 69 AX=0105  INT 69 - DECnet DOS CTERM - OPEN SESSION

INT 69 AX=0106  INT 69 - DECnet DOS CTERM - CLOSE SESSION

INT 69 AX=010A  INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE

INT 69 AX=010B  INT 69 - DECnet DOS CTERM - GET DECnet SOCKET

INT 69 AX=010F  INT 69 - DECnet DOS CTERM - DEINSTALL CTERM


INT 6940
INT 69 AH=40

INT 69 AX=4001  INT 69 - 10NET v5.0 - SYSSVC.COM - ???

INT 69 AX=4002  INT 69 - 10NET v5.0 - SYSSVC.COM - ???


INT 6941
INT 69 AH=41

INT 69 AX=4101  INT 69 - 10NET v5.0 - SYSSVC.COM - ???

INT 69 AX=4102  INT 69 - 10NET v5.0 - SYSSVC.COM - ???

INT 69 AX=4103  INT 69 - 10NET v5.0 - SYSSVC.COM - ???

INT 69 AX=4104  INT 69 - 10NET v5.0 - SYSSVC.COM - ???


INT 6AD0
INT 6A AH=D0

INT 6A AH=D0  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION

INT 6A AX=D000  INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION


INT 6F22
INT 6F AH=22

INT 6F AH=22  INT 6F - HP ES-12 EXTENDED BIOS - READ CMOS MEMORY


INT 6F15
INT 6F AH=15

INT 6F AX=1501  INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY

INT 6F AX=1502  INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY

INT 6F AX=1503  INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY

INT 6F AH=22  INT 6F - 10NET v5.0 - ???


INT 7900
INT 79 AH=00

INT 79 AX=0001  INT 79 U - AutoCAD Device Interface - DIGITIZER - INITIALIZE

INT 79 AX=0002  INT 79 U - AutoCAD Device Interface - DIGITIZER - CLOSE

INT 79 AX=0003  INT 79 U - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS


INT 7A09
INT 7A AH=09

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - COPY SERVICE

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - Multi-DOS

INT 7A AH=09  INT 7A - IBM 3270 Workstation Program API - HOST SERVICES


INT 7AFE
INT 7A AH=FE

INT 7A AX=FE01  INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION

INT 7A AX=FE02  INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION


INT 7AFF
INT 7A AH=FF

INT 7A AX=FF01  INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION

INT 7A AX=FF02  INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION

INT 7A AX=FF03  INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION

INT 7A AX=FF04  INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???


INT 7F01
INT 7F AH=01

INT 7F AH=01  INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK

INT 7F AX=0104  INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)

INT 7F AX=0105  INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE


INT 7F02
INT 7F AH=02

INT 7F AH=02  INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE

INT 7F AX=0200  INT 7F - Btrieve Multi-User - GIVE UP TIME???


INT 7F05
INT 7F AH=05

INT 7F AH=05  INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL

INT 7F AH=05  INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS


INT 7F06
INT 7F AH=06

INT 7F AH=06  INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO

INT 7F AH=06  INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE


INT 7F08
INT 7F AH=08

INT 7F AH=08  INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS

INT 7F AH=08  INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT


INT 7F09
INT 7F AH=09

INT 7F AH=09  INT 7F - MultiLink Advanced - SET TASK PRIORITY

INT 7F AH=09  INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING

INT 7F AH=09  INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE

INT 7F AH=09  INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT


INT 7F10
INT 7F AH=10

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS

INT 7F AH=10  INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS


INT 7F14
INT 7F AH=14

INT 7F AH=14  INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR

INT 7F AH=14  INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR

INT 7F AH=14  INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER

INT 7F AH=14  INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR

INT 7F AH=14  INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR

INT 7F AH=14  INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER


INT 7F15
INT 7F AH=15

INT 7F AH=15  INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS

INT 7F AH=15  INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL

INT 7F AH=15  INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS

INT 7F AH=15  INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE

INT 7F AH=15  INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS


INT 7F24
INT 7F AH=24

INT 7F AH=24  INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS

INT 7F AH=24  INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR


INT 7F25
INT 7F AH=25

INT 7F AH=25  INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION

INT 7F AH=25  INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE


INT 7F26
INT 7F AH=26

INT 7F AH=26  INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE

INT 7F AH=26  INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL

INT 7F AH=26  INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE


INT 7F37
INT 7F AH=37

INT 7F AH=37  INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE

INT 7F AH=37  INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL


INT 7F41
INT 7F AH=41

INT 7F AH=41  INT 7F - Alloy NTNX - LOCK FILE FOR USER

INT 7F AH=41  INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER


INT 7F42
INT 7F AH=42

INT 7F AH=42  INT 7F - Alloy NTNX - UNLOCK FILE FOR USER

INT 7F AH=42  INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER


INT 92E1
INT 92 AH=E1

INT 92 AH=E1  INT 92 - Da Vinci eMail Dispatcher INTERFACE

INT 92 AX=E100  INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"

INT 92 AX=E101  INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"

INT 92 AX=E102  INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"

INT 92 AX=E103  INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"

INT 92 AX=E104  INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"

INT 92 AX=E105  INT 92 - Da Vinci eMail Dispatcher - "NetOpen"

INT 92 AX=E106  INT 92 - Da Vinci eMail Dispatcher - "NetRead"

INT 92 AX=E107  INT 92 - Da Vinci eMail Dispatcher - "NetGetError"

INT 92 AX=E108  INT 92 - Da Vinci eMail Dispatcher - "NetWrite"

INT 92 AX=E109  INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)

INT 92 AX=E10A  INT 92 - Da Vinci eMail Dispatcher - "NetClose"

INT 92 AX=E10B  INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"

INT 92 AX=E10C  INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"

INT 92 AX=E10D  INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"

INT 92 AX=E10E  INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"

INT 92 AX=E10F  INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY

INT 92 AX=E110  INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"

INT 92 AX=E111  INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"

INT 92 AX=E112  INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"

INT 92 AX=E113  INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"

INT 92 AX=E175  INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR

INT 92 AX=E180  INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK


INT E400
INT E4 AH=00

INT E4 AX=0005  INT E4 - Logitech Modula v2.0 - MonitorEntry

INT E4 AX=0006  INT E4 - Logitech Modula v2.0 - MonitorExit


INT 10 AX=7000

INT10 AX=7000  INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS

INT10 AX=7000  INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE

INT10 AX=7000  INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO


INT 10 AX=7F01

INT10 AX=7F01  INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER

INT10 AX=7F01  INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER

INT10 AX=7F01  INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT


INT 10 AX=7F02

INT10 AX=7F02  INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT

INT10 AX=7F02  INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT


INT 10 AX=7F03

INT10 AX=7F03  INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO

INT10 AX=7F03  INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT

INT10 AX=7F03  INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT


INT 10 AX=7F04

INT10 AX=7F04  INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE

INT10 AX=7F04  INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE

INT10 AX=7F04  INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET

INT10 AX=7F04  INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET


INT 15 AX=5307

INT15 AX=5307  INT 15 - Advanced Power Management Specification - SET POWER STATE

INT15 AX=5307  INT 15 - Advanced Power Management Specification - SYSTEM STAND-BY

INT15 AX=5307  INT 15 - Advanced Power Management Specification - SUSPEND SYSTEM


INT 15 AX=BFDE

INT15 AX=BFDE  INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET PROCESS MANAGER NAME

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - SET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - SET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - DECREMENT ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - INCREMENT ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET TASK HANDLE

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - LOCK ??? MAILBOX

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - UNLOCK ??? MAILBOX

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ??? MAILBOX OWNER

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - SET ???

INT15 AX=BFDE  INT 15 - DESQview/X 1.02 - DVDOS4GX.DVR - NOP


INT 15 AX=DE17

INT15 AX=DE17  INT 15 - DESQview v2.20-2.25 - reserved

INT15 AX=DE17  INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT


INT 15 AX=DE29

INT15 AX=DE29  INT 15 U - DESQview v2.50+ - ???

INT15 AX=DE29  INT 15 U - DESQview v2.50+ - ???

INT15 AX=DE29  INT 15 U - DESQview v2.50+ - ???

INT15 AX=DE29  INT 15 U - DESQview v2.50+ - ???

INT15 AX=DE29  INT 15 U - DESQview v2.50+ - GET DISPLAY NAME

INT15 AX=DE29  INT 15 U - DESQview v2.50+ - ???


INT 16 AX=6969

INT16 AX=6969  INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK

INT16 AX=6969  INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK


INT 16 AX=CA00

INT16 AX=CA00  INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK

INT16 AX=CA00  INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK


INT 16 AX=FFA3

INT16 AX=FFA3  INT 16 U - PC Tools v7+ DATAMON - INSTALLATION CHECK

INT16 AX=FFA3  INT 16 U - PC Tools v7+ DATAMON - GET ???

INT16 AX=FFA3  INT 16 U - PC Tools v7+ DATAMON - GET ???

INT16 AX=FFA3  INT 16 U - PC Tools v7+ DATAMON - GET ???

INT16 AX=FFA3  INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG

INT16 AX=FFA3  INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG

INT16 AX=FFA3  INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???


INT 16 AX=FFA5

INT16 AX=FFA5  INT 16 - PC-Cache v6+ - INSTALLATION CHECK

INT16 AX=FFA5  INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES

INT16 AX=FFA5  INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES

INT16 AX=FFA5  INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE

INT16 AX=FFA5  INT 16 - PC-Cache v6+ - ENABLE CACHE

INT16 AX=FFA5  INT 16 - PC-Cache v6+ - FLUSH CACHE


INT 16 AX=FFDD

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP

INT16 AX=FFDD  INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - GET ???

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - ???

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - ???

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG

INT16 AX=FFDD  INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG

INT16 AX=FFDD  INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS

INT16 AX=FFDD  INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK

INT16 AX=FFDD  INT 16 U - PC Tools v6.0+ PCRUN API - ???


INT 21 AX=2509

INT21 AX=2509  INT 21 - Phar Lap 386/DOS-Extender - CONVERT LINEAR TO PHYSICAL ADDRESS

INT21 AX=2509  INT 21 - FlashTek X-32VM - GET SYSTEM SEGMENTS AND SELECTORS


INT 21 AX=3000

INT21 AX=3000  INT 21 - CTask 2.0+ - INSTALLATION CHECK

INT21 AX=3000  INT 21 - PC-MOS/386 v3.0 - INSTALLATION CHECK/GET VERSION


INT 21 AX=3306

INT21 AX=3306  INT 21 - DOS 5.0 - GET TRUE VERSION NUMBER

INT21 AX=3306  INT 21 - CBIS POWERLAN - NETWORK REDIRECTOR - ???


INT 21 AX=4402

INT21 AX=4402  INT 21 - DOS 2+ - IOCTL - READ FROM CHARACTER DEVICE CONTROL CHANNEL

INT21 AX=4402  INT 21 - Network Driver Interface Spec 2.0.1 - PROTOCOL MANAGER

INT21 AX=4402  INT 21 U - IBM SYSTEM 36/38 WORKSTATION EMULATION - VDI.SYS - GET ???

INT21 AX=4402  INT 21 U - LASTBYTE.SYS v1.19 - IOCTL - GET ??? TABLE

INT21 AX=4402  INT 21 - HIGHUMM.SYS v1.17+ - IOCTL - GET API ADDRESS

INT21 AX=4402  INT 21 - SMARTDRV.SYS - IOCTL - GET CACHE STATUS

INT21 AX=4402  INT 21 - CD-ROM device driver - IOCTL INPUT

INT21 AX=4402  INT 21 U - Quarterdeck - QEMM-386 v5+ - GET API ENTRY POINT

INT21 AX=4402  INT 21 U - Quarterdeck - QEMM-386 v6+ - GET ???

INT21 AX=4402  INT 21 U - Quarterdeck - HOOKROM.SYS - GET HOOKED VECTOR TABLE

INT21 AX=4402  INT 21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE

INT21 AX=4402  INT 21 U - Qualitas 386MAX v6.00+ - IOCTL INPUT - GET STATE

INT21 AX=4402  INT 21 - PGS1600.DEV - IOCTL - GET CONFIGURATION INFO

INT21 AX=4402  INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER

INT21 AX=4402  INT 21 - 10NET v5.0 - 10BEUI.DOS - API

INT21 AX=4402  INT 21 - 10NET v5.0 - 10MEMMGR.SYS - API


INT 21 AX=4403

INT21 AX=4403  INT 21 - DOS 2+ - IOCTL - WRITE TO CHARACTER DEVICE CONTROL CHANNEL

INT21 AX=4403  INT 21 - SMARTDRV.SYS - IOCTL - CACHE CONTROL

INT21 AX=4403  INT 21 - CD-ROM device driver - IOCTL OUTPUT

INT21 AX=4403  INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS

INT21 AX=4403  INT 21 U - AI Architects - OS/x86??? - API

INT21 AX=4403  INT 21 U - Qualitas 386MAX v6.01 - SET STATE

INT21 AX=4403  INT 21 - PGS1600.DEV - IOCTL - SET CONFIGURATION???

INT21 AX=4403  INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER


INT 21 AX=4404

INT21 AX=4404  INT 21 - DOS 2+ - IOCTL - READ FROM BLOCK DEVICE CONTROL CHANNEL

INT21 AX=4404  INT 21 - Stacker - GET DEVICE DRIVER ADDRESS AND SET VOLUME NUMBER

INT21 AX=4404  INT 21 - Stacker - GET STACVOL FILE SECTORS

INT21 AX=4404  INT 21 - DUBLDISK.SYS v2.6 - GET INFO


INT 21 AX=4405

INT21 AX=4405  INT 21 - DOS 2+ - IOCTL - WRITE TO BLOCK DEVICE CONTROL CHANNEL

INT21 AX=4405  INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS


INT 21 AX=440C

INT21 AX=440C  INT 21 - DOS 3.2+ - IOCTL - GENERIC CHARACTER DEVICE REQUEST

INT21 AX=440C  INT 21 - Greg Shenaut ASPITAPE.SYS - INTERFACE


INT 21 AX=4410

INT21 AX=4410  INT 21 - DOS 5.0 - IOCTL - QUERY GENERIC IOCTL CAPABILITY (HANDLE)

INT21 AX=4410  INT 21 U - NewSpace - ENABLE DRIVER


INT 21 AX=4411

INT21 AX=4411  INT 21 - DOS 5.0 - IOCTL - QUERY GENERIC IOCTL CAPABILITY (DRIVE)

INT21 AX=4411  INT 21 U - NewSpace - DISABLE DRIVER


INT 21 AX=4412

INT21 AX=4412  INT 21 - DR-DOS 5+ - DETERMINE DOS TYPE

INT21 AX=4412  INT 21 U - NewSpace - INSTALLATION CHECK???


INT 21 AX=4414

INT21 AX=4414  INT 21 U - DR-DOS 5.0 - SET GLOBAL PASSWORD

INT21 AX=4414  INT 21 U - NewSpace - DEBUGGING DUMP


INT 21 AX=4457

INT21 AX=4457  INT 21 U - DR-DOS 5.0+ - SHARE/HILOAD CONTROL

INT21 AX=4457  INT 21 U - DR-DOS 6.0 - GET SHARE STATUS


INT 21 AX=4BFF

INT21 AX=4BFF  INT 21 - VIRUS - "USSR-707", "Justice", "Europe 92" - INSTALLATION CHECK

INT21 AX=4BFF  INT 21 - VIRUS - "Cascade" - INSTALLATION CHECK


INT 21 AX=5F05

INT21 AX=5F05  INT 21 - DOS 4.x + Microsoft Networks - GET REDIRECTION LIST EXTENDED ENTRY

INT21 AX=5F05  INT 21 - STARLITE architecture - MAP LOCAL DRIVE LETTER TO REMOTE FILE SYSTEM


INT 21 AX=5F06

INT21 AX=5F06  INT 21 U - Network - GET REDIRECTION LIST???

INT21 AX=5F06  INT 21 - STARLITE architecture - UNMAP DRIVE LETTER


INT 21 AX=5F07

INT21 AX=5F07  INT 21 - DOS 5.0 - ENABLE DRIVE

INT21 AX=5F07  INT 21 - STARLITE architecture - MAKE NAMED OBJECT AVAILABLE ON NETWORK


INT 21 AX=5F08

INT21 AX=5F08  INT 21 - DOS 5.0 - DISABLE DRIVE

INT21 AX=5F08  INT 21 - STARLITE architecture - REMOVE GLOBAL NETWORK NAME OF OBJECT


INT 21 AX=6300

INT21 AX=6300  INT 21 - DOS 2.25 only - GET LEAD BYTE TABLE ADDRESS

INT21 AX=6300  INT 21 - Far East DOS 3.2+ - GET DOUBLE BYTE CHARACTER SET LEAD TABLE


INT 21 AX=7070

INT21 AX=7070  INT 21 - PCW Weather Card interface - GET DATA SEGMENT

INT21 AX=7070  INT 21 - PCW Weather Card interface - INSTALLATION CHECK


INT 21 AX=C500

INT21 AX=C500  INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE

INT21 AX=C500  INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK


INT 21 AX=C700

INT21 AX=C700  INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION

INT21 AX=C700  INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK


INT 21 AX=D5AA

INT21 AX=D5AA  INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK

INT21 AX=D5AA  INT 21 - VIRUS - "Dir" - INSTALLATION CHECK


INT 21 AX=E400

INT21 AX=E400  INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS

INT21 AX=E400  INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER


INT 21 AX=FEDC

INT21 AX=FEDC  INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK

INT21 AX=FEDC  INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK


INT 21 AX=FFFF

INT21 AX=FFFF  INT 21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK

INT21 AX=FFFF  INT 21 - VIRUS - "Revenge" - INSTALLATION CHECK


INT 2F AX=1100

INT2F AX=1100  INT 2F C - NETWORK REDIRECTOR - INSTALLATION CHECK

INT2F AX=1100  INT 2F - MSCDEX (MS CD-ROM Extensions) - INSTALLATION CHECK


INT 2F AX=110A

INT2F AX=110A  INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - LOCK REGION OF FILE

INT2F AX=110A  INT 2F CU - NETWORK REDIRECTOR (DOS 4+) - LOCK/UNLOCK REGION OF FILE


INT 2F AX=1400

INT2F AX=1400  INT 2F C - NLSFUNC.COM - INSTALLATION CHECK

INT2F AX=1400  INT 2F - European MSDOS 4.0 POPUP - "CheckPu" - INSTALLATION CHECK


INT 2F AX=1401

INT2F AX=1401  INT 2F CU - NLSFUNC.COM - CHANGE CODE PAGE

INT2F AX=1401  INT 2F - European MSDOS 4.0 POPUP - "PostPu" - OPEN/CLOSE POPUP SCREEN


INT 2F AX=1402

INT2F AX=1402  INT 2F CU - NLSFUNC.COM - GET COUNTRY INFO

INT2F AX=1402  INT 2F - European MSDOS 4.0 POPUP - "SavePu" - SAVE POPUP SCREEN


INT 2F AX=1403

INT2F AX=1403  INT 2F CU - NLSFUNC.COM - SET COUNTRY INFO

INT2F AX=1403  INT 2F - European MSDOS 4.0 POPUP - "RestorePu" - RESTORE SCREEN


INT 2F AX=1500

INT2F AX=1500  INT 2F - DOS 4.00 GRAPHICS.COM - INSTALLATION CHECK

INT2F AX=1500  INT 2F - CD-ROM - INSTALLATION CHECK


INT 2F AX=1607

INT2F AX=1607  INT 2F - MS WINDOWS - VIRTUAL DEVICE CALL OUT API

INT2F AX=1607  INT 2F - MS WINDOWS - "VMD" VIRTUAL DEVICE API

INT2F AX=1607  INT 2F - MS WINDOWS - "VNETBIOS" VIRTUAL DEVICE API

INT2F AX=1607  INT 2F - MS WINDOWS - "DOSMGR" VIRTUAL DEVICE API

INT2F AX=1607  INT 2F - Rational Systems DOS/4GW - ???


INT 2F AX=1A00

INT2F AX=1A00  INT 2F - DOS 4+ ANSI.SYS - INSTALLATION CHECK

INT2F AX=1A00  INT 2F - AVATAR.SYS - INSTALLATION CHECK


INT 2F AX=3901

INT2F AX=3901  INT 2F - Kingswood TSR Windows - OPEN WINDOW

INT2F AX=3901  INT 2F - Kingswood TSR Windows - HIDE WINDOWS

INT2F AX=3901  INT 2F - Kingswood TSR Windows - SHOW WINDOWS

INT2F AX=3901  INT 2F - Kingswood TSR Windows - CLOSE WINDOW

INT2F AX=3901  INT 2F - Kingswood TSR Windows - SET WINDOW TITLE

INT2F AX=3901  INT 2F - Kingswood TSR Windows - POSITION CURSOR

INT2F AX=3901  INT 2F - Kingswood TSR Windows - DISPLAY STRING

INT2F AX=3901  INT 2F - Kingswood TSR Windows - SCROLL WINDOW

INT2F AX=3901  INT 2F - Kingswood TSR Windows - SOUND BEEPER

INT2F AX=3901  INT 2F - Kingswood TSR Windows - ADD OR REMOVE USER


INT 2F AX=4653

INT2F AX=4653  INT 2F - F-PROT v1.x only - F-LOCK.EXE

INT2F AX=4653  INT 2F - F-PROT v1.x only - F-XCHK.EXE

INT2F AX=4653  INT 2F - F-PROT v1.x only - F-POPUP.EXE

INT2F AX=4653  INT 2F - F-PROT v1.x only - F-DLOCK.EXE


INT 2F AX=6284

INT2F AX=6284  INT 2F U - PC Tools v7.0+ DATAMON - INSTALLATION CHECK

INT2F AX=6284  INT 2F U - PC Tools v7.0+ DATAMON - GET ???

INT2F AX=6284  INT 2F U - PC Tools v7.0+ DATAMON - GET ???

INT2F AX=6284  INT 2F U - PC Tools v7.0+ DATAMON - SET ??? FLAGS

INT2F AX=6284  INT 2F U - PC Tools v8.0+ DATAMON - ???


INT 2F AX=7AFF

INT2F AX=7AFF  INT 2F - Novell NetWare - TBMI v2.0 - INSTALLATION CHECK???

INT2F AX=7AFF  INT 2F - Novell NetWare - TBMI v2.0, shell v3.01d - INSTALLATION CHECK???


INT 2F AX=8000

INT2F AX=8000  INT 2F - EASY-NET - INSTALLATION CHECK

INT2F AX=8000  INT 2F - Nanosoft, Inc. TurboNET server - INSTALLATION CHECK

INT2F AX=8000  INT 2F - FaxBIOS interface - INSTALLATION CHECK


INT 2F AX=AD10

INT2F AX=AD10  INT 2F U - DOS 4.x DISPLAY.SYS internal - INSTALLATION CHECK???

INT2F AX=AD10  INT 2F U - DOS 5.0 DISPLAY.SYS internal - ???


INT 2F AX=B809

INT2F AX=B809  INT 2F - LANtastic Network, NetWare Lite - VERSION CHECK

INT2F AX=B809  INT 2F - PC LAN Program, LAN Manager, DOS LAN Requester - VERSION CHECK


INT 2F AX=C000

INT2F AX=C000  INT 2F - Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK

INT2F AX=C000  INT 2F - MTEZ XpressFax Hardware TSR (CLASS2) - INSTALLATION CHECK

INT2F AX=C000  INT 2F - AD-DOS - INSTALLATION CHECK


INT 2F AX=CB00

INT2F AX=CB00  INT 2F - Communicating Applications Specification - INSTALLATION CHECK

INT2F AX=CB00  INT 2F - MTEZ XpressFax CASMGR - INSTALLATION CHECK


INT 2F AX=CB11

INT2F AX=CB11  INT 2F - Communicating Applications Specification - GET QUEUE STATUS

INT2F AX=CB11  INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF SEND EVENTS

INT2F AX=CB11  INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF RECEIVE EVENTS


INT 2F AX=CB13

INT2F AX=CB13  INT 2F - Communicating Applications Specification - GET DIAGNOSTICS RESULTS

INT2F AX=CB13  INT 2F - Communicating Applications Specification - START DIAGNOSTICS


INT 2F AX=CD00

INT2F AX=CD00  INT 2F - Intel Image Processing Interface - INSTALLATION CHECK

INT2F AX=CD00  INT 2F - SWELL.EXE - INSTALLATION CHECK


INT 2F AX=CD01

INT2F AX=CD01  INT 2F - Intel Image Processing Interface - SET DEVICE NAME

INT2F AX=CD01  INT 2F - SWELL.EXE - SUSPEND ONCE


INT 2F AX=CD02

INT2F AX=CD02  INT 2F - Intel Image Processing Interface - GET VERSION NUMBER

INT2F AX=CD02  INT 2F - SWELL.EXE - SUSPEND


INT 2F AX=CD03

INT2F AX=CD03  INT 2F - Intel Image Processing Interface - SELECT SCAN LINE

INT2F AX=CD03  INT 2F - SWELL.EXE - ACTIVATE


INT 2F AX=CD04

INT2F AX=CD04  INT 2F - Intel Image Processing Interface - MOVE BITMAP TO SCANLINE

INT2F AX=CD04  INT 2F - SWELL.EXE - TURN OFF VERBOSE MODE


INT 2F AX=CD05

INT2F AX=CD05  INT 2F - Intel Image Processing Interface - PRINT PAGE

INT2F AX=CD05  INT 2F - SWELL.EXE - TURN ON VERBOSE MODE


INT 2F AX=CD06

INT2F AX=CD06  INT 2F - Intel Image Processing Interface - CLEAR PAGE

INT2F AX=CD06  INT 2F - SWELL.EXE - UNINSTALL


INT 2F AX=CD07

INT2F AX=CD07  INT 2F - Intel Image Processing Interface - reserved

INT2F AX=CD07  INT 2F - SWELL.EXE - GET INFO


INT 2F AX=CD08

INT2F AX=CD08  INT 2F - Intel Image Processing Interface - SCREEN IMAGE

INT2F AX=CD08  INT 2F - SWELL.EXE - UNUSED


INT 2F AX=CD09

INT2F AX=CD09  INT 2F - Intel Image Processing Interface - LOAD SCREEN

INT2F AX=CD09  INT 2F - SWELL.EXE - TURN OFF "BORLAND SUPPORT"


INT 2F AX=CD0A

INT2F AX=CD0A  INT 2F - Intel Image Processing Interface - LOAD PALETTE

INT2F AX=CD0A  INT 2F - SWELL.EXE - TURN ON "BORLAND SUPPORT"


INT 2F AX=D000

INT2F AX=D000  INT 2F - MDEBUG display driver - GET DRIVER STATUS

INT2F AX=D000  INT 2F - ZWmous - INSTALLATION CHECK

INT2F AX=D000  INT 2F - Lotus CD/Networker - INSTALLATION CHECK


INT 2F AX=D002

INT2F AX=D002  INT 2F - MDEBUG display driver - SAVE GRAPHIC DATA

INT2F AX=D002  INT 2F - Multiplex - Lotus CD/Networker GET DATA AREA


INT 2F AX=D201

INT2F AX=D201  INT 2F U - Quarterdeck - GET QD HIMEM PRESENCE

INT2F AX=D201  INT 2F U - Quarterdeck - QEMM/QRAM v5.0+ - GET HIRAM MEMORY CHAIN

INT2F AX=D201  INT 2F U - Quarterdeck - MANIFEST v1.0+ - INSTALLATION CHECK

INT2F AX=D201  INT 2F U - Quarterdeck - DVDOS4GX.DVR - ???

INT2F AX=D201  INT 2F U - Quarterdeck - QEMM v5.0+ - INSTALLATION CHECK

INT2F AX=D201  INT 2F U - Quarterdeck - VIDRAM v5.0+ - INSTALLATION CHECK


INT 2F AX=D44F

INT2F AX=D44F  INT 2F - 4DOS v4.0+ - KSTACK.COM - INSTALLATION CHECK

INT2F AX=D44F  INT 2F - 4DOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK


INT 2F AX=D600

INT2F AX=D600  INT 2F - HEART.COM - INSTALLATION CHECK

INT2F AX=D600  INT 2F U - VEDIT VSWAP - INSTALLATION CHECK


INT 2F AX=DE01

INT2F AX=DE01  INT 2F - DESQview v2.26+ External Device Interface - DRIVER CUSTOM SUBFUNCTION

INT2F AX=DE01  INT 2F U - Quarterdeck QDPMI.SYS v1.0 - INSTALLATION CHECK

INT2F AX=DE01  INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, Ralf Brown's XDI drivers

INT2F AX=DE01  INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVTXDI.COM

INT2F AX=DE01  INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVSIXDI.COM

INT2F AX=DE01  INT 2F U - DESQview v2.26+ XDI - DVXMS.DVR - ???


INT 2F AX=FB00

INT2F AX=FB00  INT 2F U - AutoBraille v1.1A - INSTALLATION CHECK

INT2F AX=FB00  INT 2F U - Jot-It! v1.50 - INSTALLATION CHECK


INT 2F AX=FB01

INT2F AX=FB01  INT 2F U - AutoBraille v1.1A - ???

INT2F AX=FB01  INT 2F U - Jot-It! v1.50 - GET USER NAME


INT 2F AX=FB02

INT2F AX=FB02  INT 2F U - AutoBraille v1.1A - ???

INT2F AX=FB02  INT 2F U - Jot-It! v1.50 - GET MESSAGE DIRECTORY


INT 2F AX=FB03

INT2F AX=FB03  INT 2F U - AutoBraille v1.1A - GET NEXT ???

INT2F AX=FB03  INT 2F U - Jot-It! v1.50 - UNINSTALL


INT 2F AX=FB42

INT2F AX=FB42  INT 2F PU - Borland C++ DPMILOAD.EXE - INSTALLATION CHECK???

INT2F AX=FB42  INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ALLOCATE MEMORY

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ALLOCATE MEMORY

INT2F AX=FB42  INT 2F PU - Borland C++ DPMILOAD.EXE - GET AVAILABLE MEMORY

INT2F AX=FB42  INT 2F PU - Borland C++ DPMILOAD.EXE - LOAD PROTECTED-MODE EXECUTABLE???

INT2F AX=FB42  INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NAME

INT2F AX=FB42  INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NUMBER

INT2F AX=FB42  INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - FREE MEMORY BLOCK

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE MEMORY BLOCK

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - RESIZE MEMORY BLOCK

INT2F AX=FB42  INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - INIT DPMI HOST AND SPAWN SUBSHELL

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - UNUSED

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE DESCRIPTORS FOR MEMORY BLOCK???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SIMULATE REAL MODE INTERRUPT

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - REALLOCATE LDT DESCRPS TO MEMBLK???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SEGMENT TO SELECTOR

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROCESSOR EXCEPTION HANDLER VECT

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROCESSOR EXCEPTION HANDLER VECT

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SELECTOR TO SEGMENT NUMBER

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROTECTED-MODE INTERRUPT VECTOR

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROTECTED-MODE INTERRUPT VECTOR

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

INT2F AX=FB42  INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???

INT2F AX=FB42  INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE

INT2F AX=FB42  INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE


INT 2F AX=FBA1

INT2F AX=FBA1  INT 2F U - TKERNEL (Borland DOS extender) - INSTALLATION CHECK

INT2F AX=FBA1  INT 2F U - TKERNEL (Borland DOS extender) - GET ENTRY POINT

INT2F AX=FBA1  INT 2F U - TKERNEL (Borland DOS extender) - UNINSTALL


INT 33 AX=0010

INT33 AX=0010  INT 33 - MS MOUSE - DEFINE SCREEN REGION FOR UPDATING

INT33 AX=0010  INT 33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING


INT 33 AX=0026

INT33 AX=0026  INT 33 - MS MOUSE v6.26+ - GET MAXIMUM VIRTUAL COORDINATES

INT33 AX=0026  INT 33 - Genius Mouse 9.06 - ???


INT 50 AX=0002

INT50 AX=0002  INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW

INT50 AX=0002  INT 50 - PC Thuis Organizer Shell - PLOT TEXT


INT 50 AX=0003

INT50 AX=0003  INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW

INT50 AX=0003  INT 50 - PC Thuis Organizer Shell - WRITE FILE


INT 50 AX=0004

INT50 AX=0004  INT 50 - Vanderaart TEXT WINDOWS - GET KEY

INT50 AX=0004  INT 50 - PC Thuis Organizer Shell - READ FILE


INT 50 AX=0005

INT50 AX=0005  INT 50 -Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE

INT50 AX=0005  INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO


INT 50 AX=0006

INT50 AX=0006  INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW

INT50 AX=0006  INT 50 - PC Thuis Organizer Shell - ALERT USER


INT 61 AX=0001

INT61 AX=0001  INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET

INT61 AX=0001  INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT

INT61 AX=0001  INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION

INT61 AX=0001  INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET

INT61 AX=0001  INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION

INT61 AX=0001  INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE

INT61 AX=0001  INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION

INT61 AX=0001  INT 61 - OPTIMA 1024 VGA-Sync - CENTER ZOOM WINDOW


INT 61 AX=0002

INT61 AX=0002  INT 61 - Banyan VINES - 3270 INTERFACE

INT61 AX=0002  INT 61 - OPTIMA 1024 VGA-Sync - END ZOOM


INT 61 AX=0003

INT61 AX=0003  INT 61 - Banyan VINES - ASYNCHRONOUS TERMINAL EMULATION

INT61 AX=0003  INT 61 - OPTIMA 1024 VGA-Sync - REPORT ZOOM FACTOR


INT 61 AX=0004

INT61 AX=0004  INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER

INT61 AX=0004  INT 61 - OPTIMA 1024 VGA-Sync - ENTER SPECIFY MODE


INT 61 AX=0005

INT61 AX=0005  INT 61 - Banyan VINES - PRINTER CONTROL

INT61 AX=0005  INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW


INT 61 AX=0007

INT61 AX=0007  INT 61 - OPTIMA 1024 VGA-Sync - QUERY APPLICATION KEY

INT61 AX=0007  INT 61 - Banyan VINES - GET PORTS FOR A SERVICE

INT61 AX=0007  INT 61 - Banyan VINES - SET PORTS FOR A SERVICE

INT61 AX=0007  INT 61 - Banyan VINES - GET USER NAME

INT61 AX=0007  INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING

INT61 AX=0007  INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM

INT61 AX=0007  INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES


INT 61 AX=0008

INT61 AX=0008  INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM OFFSET

INT61 AX=0008  INT 61 - Banyan VINES - POST MESSAGE ON LOCAL DISPLAY

INT61 AX=0008  INT 61 - Banyan VINES - INTERCEPT VINES 25th-LINE MESSAGES AT LOCAL PC


INT 00

00 - CPU-generated - DIVIDE ERROR

Desc

     	generated if the divisor of a DIV or IDIV instruction is zero or the
  quotient overflows the result register; DX and AX will be unchanged.

Notes

      	on an 8086/8088, the return address points to the following instruction
on an 80286+, the return address points to the divide instruction

SeeAlso

    INT 04


INT 01

01 - CPU-generated - SINGLE STEP

Desc

     	generated after each instruction if TF (trap flag) is set; TF is
  cleared on invoking the single-step interrupt handler

Notes

      	interrupts are prioritized such that external interrupts are invoked
  after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  first instruction of the handler executes
used by debuggers for single-instruction execution tracing, such as
  MSDOS DEBUG's T command

SeeAlso

    INT 03


INT 01

01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS

Desc

     	generated by the CPU on various occurrences which may be of interest
  to a debugger program

Note

     	events which may trigger the interrupt:
  Instruction address breakpoint fault - will return to execute inst
  Data address breakpoint trap - will return to following instruction
  General detect fault, debug registers in use
  Task-switch breakpoint trap

SeeAlso

    INT 03


INT 02

02 - external hardware - NON-MASKABLE INTERRUPT

Desc

     	generated by the CPU when the input to the NMI pin is asserted

Notes

      	return address points to start of interrupted instruction on 80286+
although the Intel documentation states that this interrupt is
  typically used for power-failure procedures, it has many other uses
  on IBM-compatible machines:
Memory parity error: all except Jr, CONV, and some machines
without memory parity
Breakout switch on hardware debuggers
Coprocessor interrupt: all except Jr and CONV
Keyboard interrupt: Jr, CONV
I/O channel check: CONV, PS50+
Disk-controller power-on request: CONV
System suspend: CONV
Real-time clock: CONV
System watch-dog timer, time-out interrupt: PS50+
DMA timer time-out interrupt: PS50+
Low battery: HP 95LX
Module pulled: HP 95LX


INT 03

03 - CPU-generated - BREAKPOINT

Desc

     	generated by the one-byte breakpoint instruction (opcode CCh)

Notes

      	used by debuggers to implement breakpoints, such as MSDOS DEBUG's G
  command
also used by Turbo Pascal versions 1,2,3 when $U+ specified
return address points to byte following the breakpoint instruction

SeeAlso

    INT 01


INT 03 AH=09

03 - Soft-ICE BACK DOOR COMMANDS

AH = 09h
SI = 4647h ('FG')
DI = 4A4Dh ('JM')
AL = function
    10h display string in Soft-ICE window
DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
    11h execute Soft-ICE command
DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
    12h get breakpoint information
Return:	BH = entry number of last breakpoint set
BL = type of last breakpoint set
    00h BPM (breakpoint register types)
    01h I/O
    02h INTerrupt
    03h BPX (INT 03h-style breakpoint)
    04h reserved
    05h range
DH = entry number of last breakpoint to be triggered
DL = type of last triggered breakpoint (see above)

Desc

     	this API allows application programs to control some aspects of the
  Soft-ICE debugger

Program

         Soft-ICE is a debugger by Nu-Mega Technologies, Inc.


INT 04

04 - CPU-generated - INTO DETECTED OVERFLOW

Desc

     	the INTO instruction will generate this interrupt if OF (Overflow Flag)
  is set; otherwise, INTO is effectively a NOP

Note

     	may be used for convenient overflow testing (to prevent errors from
  propagating) instead of JO or a JNO/JMP combination

SeeAlso

    INT 00


INT 05

05 - PRINT SCREEN

Desc

     	dump the current text screen to the first printer

Notes

      	normally invoked by the INT 09 handler when PrtSc key is pressed, but
  may be invoked directly by applications
byte at 0050h:0000h contains status used by default handler
  00h not active
  01h PrtSc in progress
  FFh last PrtSc encountered error
default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes

SeeAlso

    INT 10 AH=12    /BL=20


INT 05

05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED

Desc

     	generated by BOUND instruction when the value to be tested is less than
  the indicated lower bound or greater than the indicated upper bound.

Note

     	returning from this interrupt re-executes the failing BOUND instruction


INT 06

06 - CPU-generated (80286+) - INVALID OPCODE

Desc

     	this interrupt is generated when the CPU attempts to execute an
  invalid opcode (most protected-mode instructions are considered
  invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  which specifies a register rather than a memory address

Notes

      	return address points to beginning of invalid instruction
with proper programming, this interrupt may be used to emulate
  instructions which do not exist; many 386 BIOSes emulate the 80286
  undocumented LOADALL instruction which was removed from the 80386+

SeeAlso

    INT 0CCPU"    INT 0DCPU


INT 06

06 C - HP 95LX - SLEEP/WAKEUP

Desc

     	this interrupt is called just before going into light or deep
  (shutdown) sleep and just after returning from light or deep sleep

SeeAlso

    INT 0BHP 95LX"    INT 15 AX=4DD4    INT 15 AH=4E


INT 07

07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE

Desc

     	this interrupt is automatically called if a coprocessor instruction is
  encountered when no coprocessor is installed

Note

     	can be used to emulate a numeric coprocessor in software

SeeAlso

    INT 09MATH UNIT PROTECTION


INT 08

08 - IRQ0 - SYSTEM TIMER

Desc

     	generated 18.2 times per second by channel 0 of the 8254 system timer,
  this interrupt is used to keep the time-of-day clock updated

Notes

      	programs which need to be invoked regularly should use INT 1C unless
  they need to reprogram the timer while still keeping the time-of-day
  clock running at the proper rate
default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
may be masked by setting bit 0 on I/O port 21h

SeeAlso

    INT 1CINT 4A    INT 50DESQview"    INT 58DoubleDOS"    INT 70INT 78"GO32


INT 08

08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED

Desc

     	called when multiple exceptions occur on one instruction, or an
  exception occurs in an exception handler

Notes

      	called in protected mode if an interrupt above the defined limit of
  the interrupt vector table occurs
return address points at beginning of instruction with errors or the
  beginning of the instruction which was about to execute when the
  external interrupt caused the exception
if an exception occurs in the double fault handler, the CPU goes into
  SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  this "triple fault" is a faster way of returning to real mode on
  many 80286 machines than the standard keyboard controller reset


INT 09

09 - IRQ1 - KEYBOARD DATA READY

Desc

     	this interrupt is generated when data is received from the keyboard.
  This is normally a scan code (from either a keypress *or* a key
  release), but may also be an ACK or NAK of a command on AT-class
  keyboards.

Notes

      	this IRQ may be masked by setting bit 1 on I/O port 21h
if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  INT 15/AH=4Fh after reading the scan code from the keyboard and
  before further processing; all further processing uses the scan
  code returned from INT 15/AH=4Fh
the default interrupt handler is at F000h:E987h in 100%-compatible
  BIOSes
the interrupt handler performs the following actions for certain
  special keystrokes:
    Ctrl-Break	 clear keyboard buffer, place word 0000h in buffer,
 invoke INT 1B, and set flag at 0040h:0071h
    SysRq	 invoke INT 15/AH=85h
    Ctrl-Numlock place system in a tight wait loop until next INT 09
    Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
   destination of the jump at that address)
    Shift-PrtSc	 invoke INT 05
DRDOS hooks this interrupt to control the cursor shape (underscore/
  half block) for overwrite/insert mode
DR Multiuser DOS hooks this interrupt for cursor shape control and to
  control whether Ctrl-Alt-Del reboots the current session or the
  entire system

SeeAlso

    INT 05INT 0B"HP 95LX"    INT 15 AH=4F    INT 15 AH=85    INT 16INT 1

SeeAlso

    INT 2F AX=A901    INT 51DESQview"    INT 59DoubleDOS"    INT 79GO32

Values for scan code:
 01h	Esc	 31h	N
 02h	1 !	 32h	M
 03h	2 @	 33h	, <	 63h	F16
 04h	3 #	 34h	. >	 64h	F17
 05h	4 $	 35h	/ ?	 65h	F18
 06h	5 %	 36h	Right Shift	 66h	F19
 07h	6 ^	 37h	Grey*	 67h	F20
 08h	7 &	 38h	Alt	 68h	F21
 09h	8 *	 39h	SpaceBar	 69h	F22
 0Ah	9 (	 3Ah	CapsLock	 6Ah	F23
 0Bh	0 )	 3Bh	F1	 6Bh	F24
 0Ch	- _	 3Ch	F2	 6Ch	--
 0Dh	= +	 3Dh	F3	 6Dh	EraseEOF
 0Eh	Backspace	 3Eh	F4
 0Fh	Tab	 3Fh	F5	 6Fh	Copy/Play
 10h	Q	 40h	F6
 11h	W	 41h	F7
 12h	E	 42h	F8	 72h	CrSel
 13h	R	 43h	F9
 14h	T	 44h	F10	 74h	ExSel
 15h	Y	 45h	NumLock	 75h	--
 16h	U	 46h	ScrollLock	 76h	Clear
 17h	I	 47h	Home
 18h	O	 48h	UpArrow
 19h	P	 49h	PgUp
 1Ah	[ 	 4Ah	Grey-
 1Bh	] 	 4Bh	LeftArrow
 1Ch	Enter	 4Ch	Keypad 5
 1Dh	Ctrl	 4Dh	RightArrow
 1Eh	A	 4Eh	Grey+
 1Fh	S	 4Fh	End
 20h	D	 50h	DownArrow	 E0h	prefix code
 21h	F	 51h	PgDn	 E1h	prefix code
 22h	G	 52h	Ins	 FAh	ACK
 23h	H	 53h	Del	 FEh	RESEND
 24h	J	 54h	SysRq	 FFh	kbd error/buffer full
 25h	K
 26h	L
 27h	; :	 57h	F11
 28h	' "	 58h	F12
 29h	` ~
 2Ah	Left Shift	 5Ah	PA1
 2Bh	\ |	 5Bh	F13
 2Ch	Z	 5Ch	F14
 2Dh	X	 5Dh	F15
 2Eh	C
 2Fh	V
 30h	B

Note

     	scan codes 57h-E1h are only available on the extended (101/102-key)
  keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
  are only available on the 122-key keyboard


INT 09

09 - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR

Desc

     	called if the coprocessor attempts to access memory outside a segment
  boundary; it may occur at an arbitrary time after the coprocessor
  instruction was issued

Note

     	until the condition is cleared or the coprocessor is reset, the only
  coprocessor instruction which may be used is FNINIT; WAIT or other
  coprocessor instructions will cause a deadlock because the
  coprocessor is still busy waiting for data

SeeAlso

    INT 07CPU


INT 09

09 P - internal hardware - RESERVED BY Intel (80486)

Note

     	this exception has been moved to INT 0D

SeeAlso

    INT 09MATH"    INT 0D


INT 0A

0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)

Notes

      	the TOPS and PCnet adapters use this interrupt request line by default
DOS 3.2 revectors IRQ2 to a stack-switching routine
on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  connects to the slave 8259.  The BIOS redirects the interrupt for
  IRQ9 back here.
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
many VGA boards do not implement the vertical retrace interrupt,
  including the IBM VGA Adapter where the traces are either cut or
  removed

SeeAlso

    INT 52DESQview"    INT 5ADoubleDOS"    INT 71INT 7A"GO32


INT 0A

0A - IRQ2 - Tandy 1000-series HARD DISK

Note

     	may be masked by setting bit 2 on I/O port 21h

SeeAlso

    INT 52DESQview"    INT 5ADoubleDOS"    INT 71


INT 0A

0A - IRQ2 - ROLAND MPU MIDI INTERFACE

Note

     	newer Roland cards and MIDI interfaces by other manufacturers use
  a jumper-selectable IRQ, but software and hardware generally defaults
  to IRQ2

SeeAlso

    INT 52DESQview"    INT 5ADoubleDOS"    INT 71INT 7A"GO32


INT 0A

0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT

Desc

     	automatically called during a task switch if the new TSS specified by
  the task gate is invalid for any of the following reasons:
TSS limit is less than 43 (80286) or 103 (80386/80486)
LDT selector invalid or segment not present
null SS selector, or SS selector outside LDT/GDT limit
stack segment is read-only
stack segment DPL differs from new CPL, or RPL <> CPL
CS selector is outside LDT/GDT limit or not code
non-conforming code segment's DPL differs from CPL
conforming code segment's DPL > CPL
DS/ES selectors outside LDT/GDT limit or not readable segments

Note

     	the handler must use a task gate in order to have a valid TSS under
  which to execute; it must also reset the busy bit in the new TSS

SeeAlso

    INT 0BCPU


INT 0B

0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)

Notes

      	the TOPS and PCnet adapters use this interrupt request line as an
  alternate
on PS/2's, COM2 through COM8 share this interrupt; on many PC's, COM4
  shares this interrupt
may be masked by setting bit 3 on I/O port 21h

SeeAlso

    INT 0CCOM1"    INT 53DESQview"    INT 5BDoubleDOS"    INT 7BGO32


INT 0B

0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT

Desc

     	generated when loading a segment register if the segment descriptor
  indicates that the segment is not currently in memory, unless the
  segment is an LDT (see INT 0A"CPU") or stack segment (see
  INT 0C"CPU") needed by a task switch

Note

     	may be used to implement virtual memory by loading in segments as they
  are accessed, clearing the "not present" bit after loading

SeeAlso

    INT 0ACPU"    INT 0Ehardware


INT 0B

0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER

Desc

     	this is the lowest-level keyboard handler on an HP 95LX palmtop

Note

     	debounces key, places the keycode in I/O register 60h, and calls INT 09

SeeAlso

    INT 09INT 0D"HP 95LX"    INT 15 AX=4DD4


INT 0C

0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)

Notes

      	on many PC's, COM3 shares this interrupt
may be masked by setting bit 4 on I/O port 21h
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 0BCOM2"    INT 54DESQview"    INT 5CDoubleDOS"    INT 7CGO32


INT 0C

0C - CPU-generated (80286+) - STACK FAULT

Desc

     	this interrupt is generated in protected mode on a stack overflow or
  underflow, or if an inter-level transition or task switch references
  a stack segment marked "not present"; it is generated in real mode
  on accessing a word operand at SS:FFFFh

Note

     	the 80286 will shut down in real mode if SP=1 before a push.  On the
  PC AT and compatibles, external circuitry generates a reset on
  shutdown.

SeeAlso

    INT 0BCPU"    INT 0DCPU


INT 0C

0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER

   Call offset 100h in the interrupt handler's segment with
AH = function
    03h update screen
    05h select next session
AL = session number (00h-03h)
Return: AL = session type code
    00h not active
    01h display session
    02h printer session
    FEh invalid session number
DS = requested session's data segment (0 if not active)

Return

        ???

Table Formats

Emulator's data area (offset from interrupt handler's segment):


INT 0D

0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)

Notes

      	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
may be masked by setting bit 5 on I/O port 21h

SeeAlso

    INT 0EIRQ6"    INT 0FIRQ7"    INT 55DESQview"    INT 5DDoubleDOS

SeeAlso

    INT 7DGO32


INT 0D

0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH

Desc

     	used to ensure that the dynamic RAM retains its contents

SeeAlso

    INT 55


INT 0D

0D - HP 95LX - INFRARED INTERRUPT

Desc

     	this interrupt is used to perform communications over the infrared
  data link

SeeAlso

    INT 0BHP 95LX"    INT 0EHP 95LX"    INT 15 AX=4DD4


INT 0D

0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION

Desc

     	the CPU generates this interrupt when it detects a protection violation
  which does not fit under any other category having a separate
  interrupt

Notes

      	called in real mode when
    an instruction accesses a word operand located at offset FFFFh in
      segment CS, DS, ES, FG, or GS
    a PUSH MEM or POP MEM instruction contains an invalid bit encoding
      in the second byte
    an instruction exceeds the maximum length allowed (10 bytes for
      80286, 15 bytes for 80386/80486)
    an instruction wraps from offset FFFFh to offset 0000h
called in protected mode on protection violations not covered by INT 06
  through INT 0C, including
    segment limit violations
    write to read-only segments
    accesses using null DS or ES selectors
    accesses to segments with privilege greater than CPL
    wrong descriptor type
called on 80486 protected-mode floating-point protection fault

SeeAlso

    INT 0980486"    INT 0CSTACK


INT 0E

0E - IRQ6 - DISKETTE CONTROLLER

Desc

     	this interrupt is generated by the floppy disk controller on
  completion of an operation

Notes

      	default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
may be masked by setting bit 6 on I/O port 21h

SeeAlso

    INT 0DIRQ5"    INT 56DESQview"    INT 5EDoubleDOS"    INT 7EGO32


INT 0E

0E - CPU-generated (80386+ native mode) - PAGE FAULT

Desc

     	this interrupt is generated in protected and virtual-86 modes on
  attempting to access a 4K memory page whose page table entry has
  the "present" bit cleared

Note

     	used to implement virtual memory

SeeAlso

    INT 0Bhardware


INT 0E

0E - HP 95LX - EXTERNAL CARD INTERRUPT

SeeAlso

    INT 0DHP 95LX"    INT 0FHP 95LX"    INT 15 AX=4DD4


INT 0F

0F - IRQ7 - PARALLEL PRINTER

Desc

     	this interrupt is generated by the LPT1 printer adapter when the
  printer becomes ready

Notes

      	most printer adapters do not reliably generate this interrupt
the 8259 interrupt controller generates an interrupt corresponding to
  IRQ7 when an error condition occurs

SeeAlso

    INT 0DLPT2"    INT 57DESQview"    INT 5FDoubleDOS"    INT 7FGO32


INT 0F

0F - HP 95LX - REAL-TIME CLOCK

SeeAlso

    INT 0EHP 95LX"    INT 15 AX=4DD4    INT 70


INT 10

10 - CPU-generated (80286+) - COPROCESSOR ERROR

Desc

     	this interrupt is generated by the CPU when the -ERROR pin is asserted
  by the coprocessor

Note

     	AT's and clones usually wire the coprocessor to use IRQ13, but not all
  get it right

SeeAlso

    INT 09hardware"    INT 75


INT 10 AH=00

10 - VIDEO - SET VIDEO MODE

AH = 00h
AL = mode (see below)

Return

        AL = video mode flag (Phoenix BIOS)
    20h mode > 7
    30h modes 0-5 and 7
    3Fh mode 6
AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)

Notes

      	IBM standard modes do not clear the screen if the high bit of AL is set
  (EGA or higher only)
the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  Everex EV-673
the installation check for Ahead adapters is the signature "AHEAD" at
  C000h:0025h
the installation check for Paradise adapters is the signature "VGA=" at
  C000h:007Dh
the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  signature "OAK VGA" at C000h:0008h
the installation check for ATI adapters is the signature "761295520" at
  C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
31h for 18800
32h for 18800-1
33h for 18800-2
34h for 18800-4
35h for 18800-5
  the two bytes at C000h:0040h indicate the adapter type
"22" EGA Wonder
"31" VGA Wonder
"32" EGA Wonder800+
  the byte at C000h:0042h contains feature flags
bit 1: mouse port present
bit 4: programmable video clock
  the byte at C000h:0044h contains additional feature flags if chipset
  byte > 30h
bit 0: 70 Hz non-interlaced display
bit 1: Korean (double-byte) characters
bit 2: 45 MHz memory clock rather than 40 MHz
bit 3: zero wait states
bit 4: paged ROMs
bit 6: no 8514/A monitor support
bit 7: HiColor DAC
the installation check for Genoa video adapters is the signature
  77h XXh 99h 66h at C000h:0037h, where XXh is
00h for Genoa 6200/6300
11h for Genoa 6400/6600
22h for Genoa 6100
33h for Genoa 5100/5200
55h for Genoa 5300/5400
  for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  "EXTMODE", indicating support for extended modes

SeeAlso
INT 10 AX=0070
INT 10 AX=007E
INT 10 AX=10E0
INT 10 AX=10F0
INT 10 AH=40
INT 10 AX=6F05
INT 10 AH=FF
"GO32"
SeeAlso
INT 33 AX=0028
INT 5F AH=00
INT 62 AX=0001
Values for video mode:
      text/ text pixel
 pixel
colors
disply
scrn  system
      grph resol  box
resoltn
pages
addr
 00h = T   40x25  8x8
16gray
   8
B800 CGA,PCjr
     = T   40x25  8x14
16gray
   8
B800 EGA
     = T   40x25  8x16
  16
   8
B800 MCGA
     = T   40x25  9x16
  16
   8
B800 VGA
 01h = T   40x25  8x8
  16
   8
B800 CGA,PCjr
     = T   40x25  8x14
  16
   8
B800 EGA
     = T   40x25  8x16
  16
   8
B800 MCGA
     = T   40x25  9x16
  16
   8
B800 VGA
 02h = T   80x25  8x8
16gray
   4
B800 CGA,PCjr
     = T   80x25  8x14
16gray
   4
B800 EGA
     = T   80x25  8x16
  16
   4
B800 MCGA
     = T   80x25  9x16
  16
   4
B800 VGA
 03h = T   80x25  8x8
  16
   4
B800 CGA,PCjr
     = T   80x25  8x14
  16
   4
B800 EGA
     = T   80x25  8x16
  16
   4
B800 MCGA
     = T   80x25  9x16
  16
   4
B800 VGA
 04h = G   40x25  8x8
320x200
   4
B800 CGA,PCjr,EGA,MCGA,VGA
 05h = G   40x25  8x8
320x200
 4gray
B800 CGA,PCjr,EGA
     = G   40x25  8x8
320x200
   4
B800 MCGA,VGA
 06h = G   80x25  8x8
640x200
   2
B800 CGA,PCjr,EGA,MCGA,VGA
 07h = T   80x25  9x14
 mono
  var
B000 MDA,Hercules,EGA
     = T   80x25  9x16
 mono
B000 VGA
 08h = T  132x25  8x8
  16
B800 ATI EGA/VGA Wonder [1]
     = T  132x25  8x8
 mono
B000 ATI EGA/VGA Wonder [1]
     = G   20x25  8x8
160x200
  16
     PCjr, Tandy 1000
     = G   90x43  8x8
720x352
 mono
B000 Hercules + MSHERC.COM
 09h = G   40x25  8x8
320x200
  16
     PCjr
 0Ah = G   80x25  8x8
640x200
   4
     PCjr, Tandy 1000
 0Bh =
 reserved (used internally by EGA BIOS)
     = G
640x200
  16
     Tandy 1000 SL/TL
 0Ch =
 reserved (used internally by EGA BIOS)
 0Dh = G   40x25  8x8
320x200
  16
   8
A000 EGA,VGA
 0Eh = G   80x25  8x8
640x200
  16
   4
A000 EGA,VGA
 0Fh = G   80x25  8x14
640x350
 mono
   2
A000 EGA,VGA
 10h = G   80x25  8x14
640x350
   4
   2
A000 64k EGA
     = G
640x350
  16
A000 256k EGA,VGA
 11h = G   80x30  8x16
640x480
 mono
A000 VGA,MCGA,ATI EGA,ATI VIP
 12h = G   80x30  8x16
640x480 16/256k
A000 VGA,ATI VIP
     = G   80x30  8x16
640x480
 16/64
A000 ATI EGA Wonder
     = G
640x480
  16
     UltraVision+256K EGA
 13h = G   40x25  8x8
320x200 256/256k
A000 VGA,MCGA,ATI VIP
 14h = T  132x25  Nx16
  16
     XGA, IBM Enhanced VGA [2]
     = G   80x25  8x8
640x200
     Lava Chrome II EGA
     = G
640x400
  16
     Tecmar VGA/AD
 15h = G   80x25  8x14
640x350
     Lava Chrome II EGA
 16h = G   80x25  8x14
640x350
     Lava Chrome II EGA
     = G
800x600
  16
     Tecmar VGA/AD
 17h = T  132x25
     Tecmar VGA/AD
     = G   80x34  8x14
640x480
     Lava Chrome II EGA
 18h = T  132x25
 mono
B000 Cirrus 5320 chipset
     = T  132x44  8x8
 mono
     Tseng Labs EVA
     = T  132x44  8x8
 16/256
   2
B000 Tseng ET4000 chipset
     = G   80x34  8x14
640x480
     Lava Chrome II EGA
     = G
       1024x768
  16
     Tecmar VGA/AD
 19h = T  132x25  8x14
 mono
     Tseng Labs EVA
     = T  132x25  8x14
 16/256
   4
B000 Tseng ET4000 chipset
     = T  132x34
 mono
B000 Cirrus 5320 chipset
 1Ah = T  132x28  8x13
 mono
     Tseng Labs EVA
     = T  132x28  8x13
 16/256
   4
B000 Tseng ET4000 chipset
     = T  132x44
 mono
B000 Cirrus 5320 chipset
     = G
640x350
 256
     Tecmar VGA/AD
 1Bh = G
640x400
 256
     Tecmar VGA/AD
 1Ch = T  132x25
     Cirrus 5320 chipset
     = G
640x480
 256
     Tecmar VGA/AD
 1Dh = T  132x43
     Cirrus 5320 chipset
     = G
800x600
 256
     Tecmar VGA/AD
 1Eh = T  132x44
     Cirrus 5320 chipset
 1Fh = G
800x600
  16
     Realtek RTVGA
 20h = G
240x128
B000 HP 95LX
 21h = T  132x60
  16
   2
B800 Tseng ET4000 chipset
     = T  132x44  9x9  1188x396
 16/256k
B800 WD90C
     = G   80x43  8x8
720x348
 mono
B000 DESQview 2.x+Hercules [3]
     = G
       1024x768
  16
     Realtek RTVGA
 22h = T  132x44  8x8
     Tseng Labs EVA
     = T  132x44  8x8
 16/256
   2
B800 Tseng ET4000 chipset
     = T  132x44  8x8
     Ahead Systems EGA2001
     = T  132x44  8x8
  16
   2
B800 Ahead B
     = T  132x44
  16
     Orchid Prodesigner VGA
     = T  132x43
     Allstar Peacock (VGA)
     = G   80x43  8x8
720x348
 mono
B800 DESQview 2.x+Hercules [3]
 23h = T  132x25  6x14
     Tseng Labs EVA
     = T  132x25  8x14
 16/256
   4
B800 Tseng ET4000 chipset
     = T  132x25  8x14
     Ahead Systems EGA2001
     = T  132x25  8x14
  16
   4
B800 Ahead B
     = T  132x25  8x8
  16
B800 ATI EGA Wonder,ATI VIP
     = T  132x25
     Cirrus 5320 chipset
     = T  132x28
     Allstar Peacock (VGA)
     = T  132x28
  16
     Orchid Prodesigner VGA
 24h = T  132x25
     Allstar Peacock (VGA)
     = T  132x25
  16
     Orchid Prodesigner VGA
     = T  132x28  6x13
     Tseng Labs EVA
     = T  132x28  8x13
 16/256
   4
B800 Tseng ET4000 chipset
     = T  132x28  8x12
  16
   1
B800 Ahead B
     = T  132x28
     Cirrus 5320 chipset
 25h = G   80x60  8x8
640x480
     Tseng Labs EVA
     = G   80x60  8x8
640x480
 16/256
   1
A000 Tseng ET4000 chipset
     = G
640x480
  16
     VEGA VGA
     = G   80x60  8x8
640x480
  16
A000 Orchid Prodesigner VGA
     = G   80x60  8x8
640x480
  16
   1
A000 Ahead B (same as 26h)
     = G
640x480
  16
     NEC GB-1
     = G
640x480
  16
     Cirrus 5320 chipset
     = G
640x400
 256
     Realtek RTVGA
 26h = T   80x60  8x8
     Tseng Labs EVA
     = T   80x60  8x8
 16/256
   2
B800 Tseng ET4000 chipset
     = T   80x60
     Allstar Peacock (VGA)
     = T   80x60
  16
     Orchid ProDesigner VGA
     = G   80x60  8x8
640x480
     Ahead Systems EGA2001
     = G   80x60  8x8
640x480
  16
   1
A000 Ahead B (same as 25h)
     = G
640x480
 256
     Realtek RTVGA
 27h = T  132x25  8x8
 mono
B000 ATI EGA Wonder,ATI VIP
     = G
720x512
  16
     VEGA VGA
     = G
720x512
  16
     Genoa
     = G
800x600
 256
     Realtek RTVGA
 28h = T  ???x???
     VEGA VGA
     = G
       1024x768
 256
     Realtek RTVGA (1meg)
 29h = G
800x600
  16
     VEGA VGA
     = G  100x37  8x16
800x600
  16
A000 Orchid
     = G
800x600
  16
A000 STB,Genoa,Sigma
     = G
800x600
  16
     Allstar Peacock (VGA)
     = G  100x37  8x16
800x600
 16/256
   1
A000 Tseng ET3000/4000 chipset
     = G
800x600
 ???
     EIZO MDB10
     = G
800x600
  16
     Cirrus 5320 chipset
 2Ah = T  100x40
     Allstar Peacock (VGA)
     = T  100x40  8x16
  16
     Orchid Prodesigner VGA
     = T  100x40  8x15
16/256
   4
B800 Tseng ET4000 chipset
     = G
       1280x1024 256
     Realtek RTVGA
 2Dh = G
640x350
 256
     VEGA VGA
     = G
640x350 256/256k
A000 Orchid, Genoa, STB
     = G   80x25  8x14
640x350 256/256k   1
A000 Tseng ET3000/4000 chipset
     = G
640x350
 256
     Cirrus 5320 chipset
 2Eh = G
640x480
 256
     VEGA VGA
     = G   80x30  8x16
640x480 256/256k
A000 Orchid
     = G
640x480 256/256k
A000 STB,Genoa,Sigma
     = G   80x30  8x16
640x480 256/256k   1
A000 Tseng ET3000/4000 chipset
 2Fh = T  160x50  8x8  1280x400
  16
   4
B800 Ahead B (Wizard/3270)
     = G
720x512
 256
     VEGA VGA
     = G
720x512
 256
     Genoa
     = G   80x25  8x16
640x400 256/256k   1
A000 Tseng ET4000 chipset
 30h = G
800x600
 256
     VEGA VGA
     = G  100x37  8x16
800x600 256/256k
A000 Orchid
     = G
800x600 256/256k
A000 STB,Genoa,Sigma
     = G
720x350
   2
     3270 PC
     = G
800x600
 256
     Cardinal
     = G
???x???
B800 AT&T 6300
     = G  100x37  8x16
800x600 256/256k   1
A000 Tseng ET3000/4000 chipset
 32h = T   80x34  8x10
  16
   4
B800 Ahead B (Wizard/3270)
 33h = T  132x44  8x8
  16
B800 ATI EGA Wonder,ATI VIP
     = T   80x34  8x8
  16
   4
B800 Ahead B (Wizard/3270)
 34h = T   80x66  8x8
  16
   4
B800 Ahead B (Wizard/3270)
 36h = G
960x720
  16
     VEGA VGA
     = G
960x720
  16
     STB
     = G
960x720
  16
     Tseng ET3000 only
 37h = T  132x44  8x8
 mono
B800 ATI EGA Wonder,ATI VIP
     = G
       1024x768
  16
     VEGA VGA
     = G  128x48  8x16 1024x768
  16
A000 Orchid
     = G
       1024x768
  16
A000 STB,Genoa,Sigma
     = G
       1024x768
  16
     Definicon
     = G  128x48  8x16 1024x768
  16
   1
A000 Tseng ET3000/4000
 38h = G
       1024x768
 256
     STB VGA/EM-16 Plus (1MB)
     = G  128x48  8x16 1024x768 256/256k   1
A000 Tseng ET4000 chipset
     = G
       1024x768
 256
     Orchid ProDesigner II
 3Dh = G
       1280x1024  16
     Definicon
     = G  128x64  8x16 1280x1024  16
   1
A000 Tseng ET4000 v3.00 [6,8]
 3Eh = G
       1280x961
  16
     Definicon
 40h = T   80x43
     VEGA VGA, Tecmar VGA/AD
     = T   80x43
     Video7 V-RAM VGA
     = T   80x43
     Tatung VGA
     = T  100x30
  16
     MORSE VGA
     = T  100x30
     Cirrus 510/520 chipset
     = T   80x25
720x350
 mono
     Genoa SuperEGA BIOS 3.0+
     = G   80x25  8x16
640x400
   2
   1
B800 AT&T 6300, AT&T VDC600
     = G   80x25  8x16
640x400
   2
   1
B800 Compaq Portable
 41h = T  132x25
     VEGA VGA
     = T  132x25
     Tatung VGA
     = T  132x25
     Video7 V-RAM VGA
     = T  100x50
  16
     MORSE VGA
     = T  100x50
     Cirrus 510/520 chipset
     = T   80x34  9x14
720x476
 16/256k
B800 WD90C
     = G
640x200
  16
   1
     AT&T 6300
     = G   80x25
720x348
 mono
B000 Genoa SuperEGA BIOS 3.0+
 42h = T  132x43
     VEGA VGA
     = T  132x43
     Tatung VGA
     = T  132x43
     Video7 V-RAM VGA
     = T   80x34  9x10
   4
   4
B800 Ahead B (Wizard/3270)
     = T  100x60
  16
     MORSE VGA
     = T  100x60
     Cirrus 510/520 chipset
     = G   80x25  8x16
640x400
  16
     AT&T 6300, AT&T VDC600
     = G   80x25
720x348
 mono
B800 Genoa SuperEGA BIOS 3.0+
 43h = T   80x60
     VEGA VGA
     = T   80x60
     Tatung VGA
     = T   80x60
     Video7 V-RAM VGA
     = T   80x45  9x8
   4
   4
B800 Ahead B (Wizard/3270)
     = T  100x75
  16
     MORSE VGA
     = T   80x29
720x348
 mono
     Genoa SuperEGA BIOS 3.0+
     = G
     640x200 of 640x400 viewport     AT&T 6300 (unsupported)
 44h =
 disable VDC and DEB output
     AT&T 6300
     = T  100x60
     VEGA VGA
     = T  100x60
     Tatung VGA
     = T  100x60
     Video7 V-RAM VGA
     = T   80x32
720x352
 mono
     Genoa SuperEGA BIOS 3.0+
 45h = T  132x28
     Tatung VGA
     = T  132x28
     Video7 V-RAM VGA
     = T   80x44
720x352
 mono
     Genoa SuperEGA BIOS 3.0+
 46h = T  132x25  8x14
 mono
     Genoa 6400
     = T  132x25  9x14
 mono
     Genoa SuperEGA BIOS 3.0+
     = G  100x40  8x15
800x600
   2
     AT&T VDC600
 47h = T  132x29  8x12
 mono
     Genoa 6400
     = T  132x29  9x12
 mono
     Genoa SuperEGA BIOS 3.0+
     = T  132x28  9x16 1188x448
 16/256k
B800 WD90C
     = G  100x37  8x16
800x600
  16
     AT&T VDC600
 48h = T  132x32  8x12
 mono
     Genoa 6400
     = T  132x32  9x11
 mono
     Genoa SuperEGA BIOS 3.0+
     = G   80x50  8x8
640x400
   2
B800 AT&T 6300, AT&T VDC600
 49h = T  132x44  8x8
 mono
     Genoa 6400
     = T  132x44  9x8
 mono
     Genoa SuperEGA BIOS 3.0+
     = G   80x30  8x16
640x480
     Lava Chrome II EGA
 4Dh = T  120x25
     VEGA VGA
 4Eh = T  120x43
     VEGA VGA
     = T   80x60  8x8
 16/256k
B800 Oak OTI-067/OTI-077 [7]
 4Fh = T  132x25
     VEGA VGA
     = T  132x60
     some Oak Tech VGA [7]
 50h = T   80x30  8x16
 16/256k
B800 Trident TVGA 8800/8900
     = T   80x34
     Lava Chrome II EGA
     = T   80x43
 mono
     VEGA VGA
     = T  132x25  9x14
 mono
     Ahead Systems EGA2001
     = T  132x25  9x14
   4
   4
B800 Ahead B
     = T  132x25  8x14
  16
   8
B800 OAK Technologies VGA-16
     = T  132x25  8x14
 16/256k
B800 Oak OTI-037/067/077 [7]
     = T  132x30
  16
     MORSE VGA
     = T  132x30
     Cirrus 510/520 chipset
     = G   80x30  8x16
640x480
  16
     Paradise EGA-480
     = G   80x30  8x16
640x480
  16
     NEL Electronics BIOS
     = G
640x480
 mono???
     Taxan 565 EGA
     = G   40x25  8x8
320x200
     Genoa SuperEGA BIOS 3.0+
 51h = T   80x30  8x16
     Paradise EGA-480
     = T   80x30  9x16
     NEL Electronics BIOS
     = T   80x30
     Lava Chrome II EGA
     = T   80x43  8x11
 16/256k
B800 Trident TVGA 8800/8900
     = T  132x25
 mono
     VEGA VGA
     = T  132x43  8x8
  16
   5
B800 OAK Technologies VGA-16
     = T  132x43  8x8
16/256k
B800 Oak OTI-037/067/077
     = T  132x28  9x12
   4
   4
B800 Ahead B
     = T  132x50
  16
     MORSE VGA
     = T  132x50
     Cirrus 510/520 chipset
     = G   80x34  8x14
640x480
  16
     ATI EGA Wonder
     = G   80x25  8x8
640x200
     Genoa SuperEGA BIOS 3.0+
 52h = T   80x60
     Lava Chrome II EGA
     = T   80x60  8x8
 16/256k
B800 Trident TVGA 8800/8900
     = T  132x43
 mono
     VEGA VGA
     = T  132x44  9x8
 mono
     Ahead Systems EGA2001
     = T  132x44  9x8
   4
   2
B800 Ahead B
     = T  132x60
  16
     MORSE VGA
     = T  132x60
     Cirrus 510/520 chipset
     = G   94x29  8x14
752x410
  16
     ATI EGA Wonder
     = G  100x75  8x8
800x600
  16
   1
A000 OAK Technologies VGA-16
     = G  100x75  8x8
800x600
  16
A000 Oak OTI-037 chipset [7]
     = G  100x37  8x16
800x600
  16
A000 Oak OTI-067/077 chips [7]
     = G  128x30  8x16 1024x480
  16
     NEL Electronics BIOS
 53h = T   80x25  8x16
     NEL Electronics BIOS
     = T   80x60
  16
     MORSE VGA
     = T   80x60
     Cirrus 510/520 chipset
     = T  132x25  8x14
 16/256k
B800 Trident TVGA 8800/8900
     = T  132x43
     Lava Chrome II EGA
     = G
640x480
 256
     Oak VGA
     = G   80x30  8x16
640x480
 256
A000 Oak OTI-067/OTI-077 [7]
     = G  100x40  8x14
800x560
  16
     ATI EGA Wonder,ATI VIP
     = G
     AX PC
 54h = T  132x25
     Lava Chrome II EGA
     = T  132x30  8x16
 16/256k
B800 Trident TVGA 8800/8900
     = T  132x43  8x8
     Paradise EGA-480
     = T  132x43  8x8
     NEL Electronics BIOS
     = T  132x43  7x9
 16/256k
B800 Paradise VGA
     = T  132x43  8x9
 16/256k
B800 Paradise VGA on multisync
     = T  132x43
     Taxan 565 EGA
     = T  132x43
     AST VGA Plus
     = T  132x43
     Hewlett-Packard D1180A
     = T  132x43  7x9
  16
     AT&T VDC600
     = T  132x50  8x8
  16
A000 NCR 77C22 [9]
     = T  132x43  9x9  1188x387
 16/256k
B800 WD90C
     = G  100x42  8x14
800x600
  16
A000 ATI EGA Wonder, VGA Wonder
     = G  100x42  8x14
800x600
  16
A000 ATI Ultra 8514A, ATI XL
     = G
800x600
 256
A000 Oak VGA
     = G  100x37  8x16
800x600
 256
A000 Oak OTI-067/077 chips [7]
 55h = T   80x66  8x8
 16/256k
A000 ATI VIP
     = T  132x25  8x14
     Paradise EGA-480
     = T  132x25  8x14
     NEL Electronics BIOS
     = T  132x25  7x16
 16/256k
B800 Paradise VGA
     = T  132x25  8x16
 16/256k
B800 Paradise VGA on multisync
     = T  132x25
     Taxan 565 EGA
     = T  132x25
     AST VGA Plus
     = T  132x25
     Hewlett-Packard D1180A
     = T  132x25  7x16
  16
     AT&T VDC600
     = T  132x25  8x16
  16
A000 NCR 77C22 [9]
     = T  132x43  8x11
 16/256k
B800 Trident TVGA 8800/8900
     = T  132x25  9x16 1188x400
 16/256k
B800 WD90C
     = G   94x29  8x14
752x410
     Lava Chrome II EGA
     = G  128x48  8x16 1024x768
 16/256k
A000 ATI VGA Wonder v4+
 [4]
     = G
       1024x768
 16/256k
     ATI VGA Wonder Plus
     = G
       1024x768
 16/256k
     ATI Ultra 8514A,ATI XL
     = G  128x48  8x16 1024x768
   4
A000 Oak OTI-067/077 chips [7]
 56h = T  132x43  8x8
   3???
   2
B000 NSI Smart EGA+
     = T  132x43  7x9
   4
B000 Paradise VGA
     = T  132x43  8x9
   4
B000 Paradise VGA on multisync
     = T  132x43
 mono
     Taxan 565 EGA
     = T  132x43  7x9
   2
     AT&T VDC600
     = T  132x43  9x8
     NEL Electronics BIOS
     = T  132x50  8x8
   4
A000 NCR 77C22 [9]
     = T  132x60  8x8
 16/256k
B800 Trident TVGA 8800/8900
     = G
       1024x768
  16
A000 Oak VGA
     = G  128x48  8x16 1024x768
  16
A000 Oak OTI-067/077 chips [7]
 57h = T  132x25  8x14
   3???
   4
B000 NSI Smart EGA+
     = T  132x25  7x16
   4
B000 Paradise VGA
     = T  132x25  8x16
   4
B000 Paradise VGA on multisync
     = T  132x25  9x14
     NEL Electronics BIOS
     = T  132x25
 mono
     Taxan 565 EGA
     = T  132x25  7x16
   2
     AT&T VDC600
     = T  132x25  9x14
 16/256k
B800 Trident TVGA 8800/8900
     = T  132x25  8x16
   4
A000 NCR 77C22 [9]
     = G   96x48  8x16
768x1024  16
A000 Oak OTI-067/077 chips [7]
 58h = T   80x33  8x14
  16
B800 ATI EGA Wonder,ATI VIP
     = T   80x32  9x16
  16
     Genoa 6400
     = T   80x43  8x8
     NEL Electronics BIOS
     = T  132x30  9x16
 16/256k
B800 Trident TVGA 8800/8900
     = G  100x75  8x8
800x600
 16/256k
A000 Paradise VGA
     = G  100x75  8x8
800x600
  16
     AT&T VDC600
     = G
800x600
  16
     AST VGA Plus, Compaq VGA
     = G
800x600
  16
     Dell VGA
     = G
800x600
  16
     Hewlett-Packard D1180A
     = G
800x600
 ???
     ELT VGA PLUS 16
     = G  100x75  8x8
800x600
  16
A000 NCR 77C22 [9]
     = G  160x64  8x16 1280x1024  16
A000 Oak OTI-077 chipset [7]
     = G  100x75  8x8
800x600
 16/256k
A000 Paradise VGA, WD90C
 59h = T   80x43  9x8
     NEL Electronics BIOS
     = T   80x66  8x8
 16/256k
A000 ATI VIP
     = T  132x43  9x11
 16/256k
B800 Trident TVGA 8800/8900
     = G  100x75  8x8
800x600
   2
A000 Paradise VGA
     = G  100x75  8x8
800x600
   2
     AT&T VDC600
     = G
800x600
   2
     AST VGA Plus, Compaq VGA
     = G
800x600
   2
     Dell VGA
     = G
800x600
   2
     Hewlett-Packard D1180A
     = G  100x75  8x8
800x600
   2
A000 NCR 77C22 [9]
     = G  128x48  8x16 1024x768
 256
A000 Oak OTI-077 chipset [7]
 5Ah = T   80x60  8x8
     NEL Electronics BIOS
     = T  132x60  9x8
 16/256k
B800 Trident TVGA 8800/8900
     = G  128x48  8x16 1024x768
   2
A000 NCR 77C22 [9]
 5Bh = T   80x30  8x16
B800 ATI VGA Wonder (undoc)
     = G
640x350
 256
     Genoa 6400
     = G   80x25  8x16
640x400
  32K
A000 Oak OTI-067/077 chips [7]
     = G
800x600
  16
     Maxxon, SEFCO TVGA, Imtec
     = G  100x75  8x8
800x600
 16/256k
A000 Trident TVGA 8800, 8900
     = G
800x600
 ???
     Vobis MVGA
     = G  100x37  8x16
800x600
     NEL Electronics BIOS
     = G  128x48  8x16 1024x768
  16
A000 NCR 77C22 [8,9]
 5Ch = T  100x37  8x16
     NEL Electronics BIOS
     = G
640x400
 256
     Logix, ATI Prism Elite
     = G
640x400
 256
     Maxxon, SEFCO TVGA, Imtec
     = G   80x25  8x16
640x400
 256/256k
A000 Zymos Poach, Hi Res 512
     = G   80x25  8x16
640x400
 256/256k
A000 Trident TVGA 8800/8900
     = G   80x30  8x16
640x480
 256
     Genoa 6400
     = G   80x30  8x16
640x480
  32K
A000 Oak OTI-077 chipset [7]
     = G  100x75  8x8
800x600
 256
A000 NCR 77C22 [9]
     = G  100x75  8x8
800x600
 256/256k
A000 WD90C
 5Dh = T  100x75  8x8
     NEL Electronics BIOS
     = G
640x480
 256
     Logix, ATI Prism Elite
     = G
640x480
 256
     Maxxon, SEFCO TVGA, Imtec
     = G   80x30  8x16
640x480
 256/256k
A000 Zymos Poach, Hi Res 512
     = G   80x30  8x16
640x480
 256/256k
A000 Trident TVGA 8800 (512K)
     = G  128x48  8x16 1024x768
  16
A000 NCR 77C22 [9]
     = G  128x48  8x16 1024x768
  16/256k
A000 WD90C
 5Eh = G
640x400
 256
     Paradise VGA,VEGA VGA
     = G
640x400
 256
     AST VGA Plus, NCR 77C22
     = G
640x400
 256
     Compaq VGA, Dell VGA
     = G   80x25  8x16
640x400
 256
     AT&T VDC600
     = G   80x25  8x16
640x400
 256
A000 NCR 77C22 [9]
     = G
800x600
  16
     Logix, ATI Prism Elite
     = G  100x37  8x16
800x600
  16
     NEL Electronics BIOS
     = G  100x75  8x8
800x600
 256
     Genoa 6400
     = G  100x75  8x8
800x600
 256/256k
A000 Zymos Poach, Trident 8900
     = G  100x75  8x8
800x600
 256/256k
A000 Hi Res 512
     = G   80x25  8x16
640x400
 256/256k
A000 WD90C
 5Fh = G
640x480
 256
     Paradise VGA
     = G
640x480
 256
     AST VGA Plus, NCR 77C22
     = G
640x480
 256
     Compaq VGA, Dell VGA
     = G
640x480
 256
     Hewlett-Packard D1180A
     = G   80x30  8x16
640x480
 256
     AT&T VDC600 (512K)
     = G   80x30  8x16
640x480
 256
A000 NCR 77C22 [9]
     = G
       1024x768
  16
     Logix, ATI Prism Elite
     = G
       1024x768
  16
     Maxxon, Imtec
     = G  128x48  8x16 1024x768
  16
     Genoa 6400
     = G  128x48  8x16 1024x768
  16/256k
A000 Zymos Poach, Hi Res 512
     = G  128x48  8x16 1024x768
  16/256k
A000 Trident TVGA 88/8900 512K
     = G   80x30  8x16
640x480
 256/256k
A000 WD90C
 60h = T  132x25  8x14
  16/64
   8
B800 Quadram Ultra VGA
     = T  132x25  8x14
  16
     Genoa 6400
     = T  132x25  8x14
  16
     Genoa SuperEGA BIOS 3.0+
     = T  132x25
     Cirrus 5320 chipset
     = G   80x???
???x400
     Corona/Cordata BIOS 4.10+
     = G   80x25  8x16
640x400
 256
   1
A000 Ahead A, Ahead B
     = G
752x410
     VEGA VGA
     = G
752x410
  16
     Tatung VGA
     = G
752x410
  16
     Video7 V-RAM VGA
     = G  128x48  8x16 1024x768
   4/256k
A000 Trident TVGA 8900
     = G  128x48  8x16 1024x768
 256/256k
A000 WD90C
 61h = T  132x29  8x12
  16/64
   8
B800 Quadram Ultra VGA
     = T  132x29  8x8
  16
     Genoa 6400
     = T  132x29  8x8
  16
     Genoa SuperEGA BIOS 3.0+
     = T  132x50
     Cirrus 5320 chipset
     = G
???x400
     Corona/Cordata BIOS 4.10+
     = G   80x25  8x16
640x400
 256
A000 ATI VGA Wonder,VGA Wonder+
     = G   80x25  8x16
640x400
 256
A000 ATI Ultra 8514A,ATI XL
     = G   80x30  8x16
640x480
 256
   1
A000 Ahead A, Ahead B (512K)
     = G
720x540
     VEGA VGA
     = G
720x540
  16
     Tatung VGA
     = G
720x540
  16
     Video7 V-RAM VGA
     = G   96x64  8x16
768x1024  16/256k
A000 Trident TVGA 88/8900 512K
     = G  128x48  8x16 1024x768
 256
A000 NCR 77C22 [8,9]
 62h = T  132x32  8x11
  16/64
   6
B800 Quadram Ultra VGA
     = T  132x32  8x12
  16
     Genoa 6400
     = T  132x32  8x11
  16
     Genoa SuperEGA BIOS 3.0+
     = G
640x450
  16
     Cirrus 510/520 chipset
     = G   80x30  8x16
640x480
 256
A000 ATI VGA Wonder,VGA Wonder+
     = G   80x30  8x16
640x480
 256
A000 ATI Ultra 8514A,ATI XL
     = G
800x600
     VEGA VGA
     = G
800x600
  16
     Tatung VGA
     = G
800x600
  16
     Video7 V-RAM VGA
     = G  100x75  8x8
800x600
 256
   1
A000 Ahead A, Ahead B (512K)
     = G  128x48  8x16 1024x768
 256/256k
A000 Trident TVGA 8900, Zymos
     = G  128x48  8x16 1024x768
 256
A000 NCR 77C22 [9]
     = G
640x480
 32K
A000 WD90C
 63h = T  132x44  8x8
  16/64
   5
B800 Quadram Ultra VGA
     = T  132x44  8x8
  16
     Genoa 6400
     = T  132x44  8x8
  16
     Genoa SuperEGA BIOS 3.0+
     = G
720x540
  16
     MORSE VGA
     = G
720x540
  16
     Cirrus 510/520 chipset
     = G  100x42  8x14
800x600
 256
A000 ATI VGA Wonder,VGA Wonder+
     = G  100x42  8x14
800x600
 256
A000 ATI Ultra 8514A,ATI XL
     = G  128x48  7x16 1024x768
 256
   1
A000 Ahead B (1MB)
     = G
       1024x768
   2
     Video7 V-RAM VGA
     = G
800x600
 32K
A000 WD90C
 64h = T  132x60  8x8
  16
     Genoa 6400
     = G
800x600
  16
     MORSE VGA
     = G
800x600
  16
     Cirrus 510/520 chipset
     = G
800x600
 ???
     SAMPO-Mira VGA
     = G
       1024x768
   4
     Video7 V-RAM VGA
     = G  128x48  8x16 1024x768
 256
A000 ATI VGA Wonder Plus,ATI XL
     = G  160x64  8x16 1280x1024 16/256k
A000 WD90C [8]
 65h = G
       1024x768
  16
     Video7 V-RAM VGA
     = G  128x48  8x16 1024x768
  16
A000 ATI VGA Wonder
 66h = G
640x400
 256
     Tatung VGA
     = G
640x400
 256
     Video7 V-RAM VGA
     = T   80x50  8x8
640x400
 16/256k
B800 WD90C
 67h = G
640x480
 256
     Video7 V-RAM VGA
     = G  128x48  8x16 1024x768
   4
A000 ATI VGA Wonder
     = G  160x64  8x16 1280x1024  16
A000 NCR 77C22 [8,9]
     = T   80x43  8x8
640x344
 16/256k
B800 WD90C
 69h = G
720x540
 256
     Video7 V-RAM VGA
     = T  132x50  8x8  1056x400
 16/256k
B800 WD90C
 6Ah = G
800x600
  16
A000 VESA standard interface
     = G  100x75  8x8
800x600
  16
     Genoa 6400
     = G
800x600
  16
A000 Ahead A
     = G  100x75  8x8
800x600
  16
   1
A000 Ahead B (VESA) (see 71h)
     = G
800x600
  16
     Zymos Poach, Hi Res 512
     = G
800x600
  16
     Epson LT-386SX in CRT Mode
     = G
800x600
  16
     Compuadd 316SL in CRT Mode
     = G  100x42  8x14
800x600
A000 ATI VGA Wonder (undoc)
     = G  160x64  8x16 1280x1024 256
A000 NCR 77C22 [8,9]
 6Bh = T  100x37  8x16
  16
     Genoa 6400
     = T  100x37  8x16
     NEL Electronics BIOS
 6Ch = G  100x75  8x8
800x600
 256
     Genoa 6400
     = G  160x60  8x16 1280x960
 16/256k
A000 WD90C [8]
 70h =
 extended mode set (see AX=0070h)
     Everex Micro Enhancer EGA
     = T   40x25  8x8
  16
   8
B800 Quadram (CGA double scan)
     = T   40x25  8x8
(CGA dblscan)
     Genoa SuperEGA BIOS 3.0+
     = G
360x480
 256
     Cirrus 510/520/5320 chips
     = G   90x28  8x14
720x392
  16
   1
A000 Ahead B
     = G
800x600
  16
     C&T chipset, Cardinal
 71h = T   80x25  8x8
  16
   8
B800 Quadram (CGA double scan)
     = T   80x25  8x8
(CGA dblscan)
     Genoa SuperEGA BIOS 3.0+
     = G
528x400
 256
     Cirrus 510/520 chipset
     = G  100x35  8x16
800x600
 16of64
A000 NSI Smart EGA+
     = G  100x75  8x8
800x600
  16
   1
A000 Ahead B (same as 6Ah)
     = G
960x720
  16
     C&T chipset, Cardinal
 72h = T   80x60  8x8
  16
B800 Quadram Ultra VGA
     = T   80x60  8x8
  16
B800 Genoa 6400
     = T   80x60  8x8
  16
B800 Genoa SuperEGA BIOS 3.0+
     = G
528x480
 256
     Cirrus 510/520 chipset
     = G
640x480 32768
A000 ATI
     = G
       1024x768
  16
     C&T chipset, Cardinal
     = G
640x480
 16M
A000 WD90C
 73h = G   80x60  8x8
640x480
  16
A000 Quadram Ultra VGA
     = G   80x60  8x8
640x480
  16
     Genoa 6400
     = G   80x60  8x8
640x480
  16
     Genoa SuperEGA BIOS 3.0+
 74h = T   80x66  8x8
  16
B800 Quadram Ultra VGA
     = T   80x66  8x8
  16
B800 Genoa 6400
     = T   80x66  8x8
  16
B800 Genoa SuperEGA BIOS 3.0+
     = G
640x400
   2
B800 Toshiba 3100 AT&T mode
     = G  128x48  8x16 1024x768
  16
   1
A000 Ahead A, Ahead B (512K)
 75h = G  128x48  8x16 1024x768
   4
   1
A000 Ahead B
     = G   80x66
640x528
  16???
A000 Quadram Ultra VGA
     = G   80x66
640x528
  16
     Genoa SuperEGA BIOS 3.0+
 76h = T   94x29  8x14
  16
B800 Quadram Ultra VGA
     = T   94x29  8x14
     Genoa SuperEGA BIOS 3.0+
     = G  128x48  8x16 1024x768
   2
   1
A000 Ahead B
 77h = G   94x29
752x410
  16???
A000 Quadram Ultra VGA
     = G   94x29
752x410
  16
     Genoa SuperEGA BIOS 3.0+
 78h = T  100x37  8x16
  16
     Genoa 6400
     = T  100x75  8x8
  16
B800 Quadram Ultra VGA
     = T  100x75  8x8
     Genoa SuperEGA BIOS 3.0+
     = G
640x400
 256
     STB VGA/EM-16 Plus
     = G
640x400
 256
     Cardinal, C&T chipset
     = G
640x400
 256
     Cirrus 5320 chipset
 79h = G
640x480
 256
     Cardinal, C&T chipset
     = G  100x75
800x600
  16???
A000 Quadram Ultra VGA
     = G  100x75  8x8
800x600
  16
     Genoa SuperEGA BIOS 3.0+
     = G  100x75  8x8
800x600
  16
     Genoa 6400
 7Ah = T  114x60  8x8
  16
B800 Quadram Ultra VGA
     = T  114x60  8x8
     Genoa SuperEGA BIOS 3.0+
     = G
720x540
 256
     C&T chipset, Cardinal
 7Bh = G
800x600
 256
     C&T chipset, Cardinal
     = G  114x60
912x480
  16???
A000 Quadram Ultra VGA
     = G
912x480
  16
     Genoa SuperEGA BIOS 3.0+
 7Ch = G
512x512
  16
     Genoa
 7Dh = G   64x32  8x16
512x512
 256
     Genoa
 7Eh =
 special mode set (see AX=007Eh)
     Paradise VGA, AT&T VDC600
     = G   80x25  8x16
640x400
 256
     Genoa 6400
 7Fh =
 special function set (see AX=007Fh)
     Paradise VGA, AT&T VDC600
     = G  128x48  8x16 1024x768
   4
     Genoa 6400
 82h = T   80x25
 B&W
     AT&T VDC overlay mode [5]
 83h = T   80x25
     AT&T VDC overlay mode [5]
 86h = G
640x200
 B&W
     AT&T VDC overlay mode [5]
 88h = G   90x43  8x8
720x352
 mono
B000 Hercules + MSHERC.COM
 C0h = G
640x400
 2/prog pallet
     AT&T VDC overlay mode [5]
 C4h =
 disable output
     AT&T VDC overlay mode [5]
 D0h = G
640x400
   2
B800 DEC VAXmate AT&T mode

Notes

[1] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
      SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
      otherwise to mode 23h, thus selecting the appropriate (monochrome or
      color) 132x25 character mode.
    for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
      resident
[2] early XGA boards support 132-column text but do not have this BIOS mode
[3] DESQview intercepts calls to change into these two modes (21h is page 0,
      22h is page 1) even if there is no Hercules graphics board installed
[4] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
[5] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
      40h, or 44h
[6] BIOS text support is broken in this undocumented mode; scrolling moves only
      about 1/3 of the screen (and does even that portion incorrectly), while
      screen clears only clear about 3/4.
[7] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
      may choose to use only partially or not at all; thus, not all Oak boards
      support all "Oak" modes listed here
[8] interlaced only
[9] this card uses the full 128K A000h-BFFFh range for the video buffer,
      precluding the use of a monochrome adapter in the same system


INT 10 AX=0070

10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET

AX = 0070h
BL = mode (see below)

SeeAlso

    INT 10 AH=00    INT 10 AX=6F05    INT 10 AX=7000    /BX=0004h    INT 10 AH=FF"GO32"

Values for video mode:
      text/ text pixel	 pixel	colors	disp	scrn  monitor	adapter
      grph resol  box	resoltn	page	addr
 00h = G	640x480	  16	     multsync	EGA,VGA
 01h = G	752x410	  16	     multsync	EGA,VGA
 02h = G	800x600	  16	     multsync	EGA,VGA
 03h = T   80x34	     multsync	EGA,VGA
 04h = T   80x60	     multsync	EGA,VGA
 05h = T   94x29	     multsync	EGA only
 06h = T   94x51	     multsync	EGA only
 07h = T  100x43  8x14	  16	VGA only
 08h = T  100x75  8x8	  16	VGA only
 09h = T   80x44	     EGA	EGA only
 0Ah = T  132x25	     EGA	EGA,VGA
 0Bh = T  132x44	     EGA	EGA,VGA
 0Ch = T  132x25	     CGA	EGA only
 0Dh = T   80x44	     mono	EGA only
 0Eh = T  132x25	     mono
 0Fh = T  132x44	     mono
 10h =	 reserved
 11h = G	       1280x350	   4	EGA only
 12h = G	       1280x600	   4	EGA only
 13h = G	640x350	 256	EGA,EV673
 14h = G	640x400	 256
 15h = G	512x480	 256
 16h = T   80x30  8x16	 256	VGA only
 18h = T  100x27  8x16	  16	VGA only
 20h = G	       1024x768	  16	Everex 629,678
Everex EV-673
 21h = T  160x64  8x16 1280x1024  16	1MB VGA only
 30h = G	640x480	 256	Everex 629,678
Everex EV-673
 31h = G	800x600	 256	Everex 629,678
Everex EV-673
 32h = G  128x48  8x16 1024x768	 256	1MB VGA only
 40h = T  132x30  8x16	  16	VGA only
 50h = T  132x32  8x16	 mono	VGA only
 62h = G   40x25  8x8	320x200	 32K	Vwpt TC (EV629)
 70h = G   64x30  8x16	512x480	 32K	Viewpoint TC
 71h = G   80x30  8x16	640x480	 32K	Viewpoint TC
 76h = G   64x30  8x16	512x480	 16M	Viewpoint TC
 77h = G   80x30  8x16	640x480	 16M	Viewpoint TC


INT 10 AX=007E

10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE

AX = 007Eh
BX = horizontal dimension of the mode desired
CX = vertical dimension of the mode desired
     (both BX/CX in pixels for graphics modes, rows for alpha modes)
DX = number of colors of the mode desired (0000h for monochrome modes)

Return

        BH = 7Eh if successful (Paradise VGA)
AL = 7Eh if successful (AT&T VDC600)

SeeAlso

    INT 10 AH=00    INT 10 AX=0070    INT 10 AX=007F    INT 10 AX=6F05    INT 10 AH=FF"GO32"


INT 10 AX=007F

10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS

AX = 007Fh
BH = function
    00h	 set VGA operation
    01h	 set non-VGA operation
color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation
monochrome mode 7 will set non-VGA MDA/Hercules operation
    02h	 query mode status
Return: BL = 00h if operating in VGA mode, 01h if non-VGA mode
CH = total video RAM size in 64k byte units
CL = video RAM used by the current mode
    03h	 lock current mode
allows current mode (VGA or non-VGA) to survive re-boot
    04h	 enter CGA mode (AT&T VDC600 only)
    05h	 enter MDA mode (AT&T VDC600 only)
    0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
(port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
BL = value to set in the paradise register
    1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
(port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
Return: BL = value of the paradise register
BH = 7Fh if successful

Return

        AL = 7Fh if successful (AT&T VDC600)

SeeAlso

    INT 10 AX=007E


INT 10 AH=01

10 - VIDEO - SET TEXT-MODE CURSOR SHAPE

AH = 01h
CH = bit 7    should be zero
     bits 6,5 cursor blink
     (00=normal, 01=invisible, 10=erratic, 11=slow)
     (00=normal, other=invisible on EGA/VGA)
     bits 4-0 top scan line containing cursor
CL = bottom scan line containing cursor (bits 0-4)

Notes

      	buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  returns unmapped cursor shape
UltraVision scales size to the current font height by assuming 14-line
  monochrome and 8-line color fonts; this call is not valid if cursor
  emulation has been disabled
applications which wish to change the cursor by programming the
  hardware directly on EGA or above should call INT 10/AX=1130h or
  read 0040h:0085h first to determine the current font height

BUG

    	AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  is not equal to the current video mode

SeeAlso

    INT 10 AH=03    INT 10 AX=CD05


INT 10 AH=02

10 - VIDEO - SET CURSOR POSITION

AH = 02h
BH = page number
    0-3 in modes 2&3
    0-7 in modes 0&1
    0 in graphics modes
DH = row (00h is top)
DL = column (00h is left)

SeeAlso

    INT 10 AH=03    INT 10 AH=05    INT 60DI=030B


INT 10 AH=03

10 - VIDEO - GET CURSOR POSITION AND SIZE

AH = 03h
BH = page number
    0-3 in modes 2&3
    0-7 in modes 0&1
    0 in graphics modes

Return

        AX = 0000h (Phoenix BIOS)
CH = start scan line
CL = end scan line
DH = row (00h is top)
DL = column (00h is left)

Notes

      	a separate cursor is maintained for each of up to 8 display pages
many ROM BIOSes incorrectly return the default size for a color display
  (start 06h, end 07h) when a monochrome display is attached

SeeAlso

    INT 10 AH=01    INT 10 AH=02


INT 10 AH=04

10 - VIDEO - READ LIGHT PEN POSITION (except VGA)

AH = 04h

Return

        AH = light pen trigger flag
    00h not down/triggered
    01h down/triggered
DH,DL = row,column of character light pen is on
CH = pixel row (graphics modes 04h-06h)
CX = pixel row (graphics modes with >200 rows)
BX = pixel column

Notes

      	on a CGA, returned column numbers are always multiples of 2 (320-
  column modes) or 4 (640-column modes)
returned row numbers are only accurate to two lines


INT 10 AH=05

10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE

AH = 05h
AL = new page number (00h to number of pages - 1) (see AH=00h)

Note

     	to determine whether the requested page actually exists, use AH=0Fh
  to query the current page after making this call

SeeAlso

    INT 10 AH=0F    INT 10 AH=43    INT 10 AH=45


INT 10 AH=05

10 - VIDEO - PCjr - MANIPULATE CRT/CPU PAGE REGISTERS

AH = 05h
AL = subfunction
    80h read CRT and CPU page registers
Return: BH = CRT page register
BL = CPU page register
    81h set CPU page register
BL = CPU page
    82h set CRT page register
BH = CRT page
    83h set both CPU and CRT page registers
BL = CPU page
BH = CRT page

Notes

      	the CPU page determines which 16K block of the first 128K of physical
  memory will be mapped at B800h by the hardware
the CRT page determines the start address of the memory used by the
  video controller


INT 10 AH=05

10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER

AH = 05h
AL =
    00h set address of graphics bitmap buffer (video modes 60h,61h)
BX = segment of buffer
    0Fh get address of graphics bitmap buffer (video modes 60h,61h)
Return: DX = segment of graphics bitmap buffer


INT 10 AH=06

10 - VIDEO - SCROLL UP WINDOW

AH = 06h
AL = number of lines by which to scroll up (00h = clear entire window)
BH = attribute used to write blank lines at bottom of window
CH,CL = row,column of window's upper left corner
DH,DL = row,column of window's lower right corner

Note

     	affects only the currently active page (see AH=05h)
Warning: some implementations have a bug which destroys BP

SeeAlso

    INT 10 AH=07    INT 10 AH=72    INT 10 AH=73    INT 10 AX=7F07    INT 50 AX=0014


INT 10 AH=07

10 - VIDEO - SCROLL DOWN WINDOW

AH = 07h
AL = number of lines by which to scroll down (00h=clear entire window)
BH = attribute used to write blank lines at top of window
CH,CL = row,column of window's upper left corner
DH,DL = row,column of window's lower right corner

Note

     	affects only the currently active page (see AH=05h)
Warning: some implementations have a bug which destroys BP

SeeAlso

    INT 10 AH=06    INT 10 AH=72    INT 10 AH=73    INT 50 AX=0014


INT 10 AH=08

10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION

AH = 08h
BH = page number (00h to number of pages - 1) (see AH=00h)

Return

        AH = attribute
bit 7: blink
bits 6-4: background color
000 black
001 blue
010 green
011 cyan
100 red
101 magenta
110 brown
111 white
bits 3-0: foreground color
0000 black	 1000 dark gray
0001 blue	 1001 light blue
0010 green	 1010 light green
0011 cyan	 1011 light cyan
0100 red	 1100 light red
0101 magenta	 1101 light magenta
0110 brown	 1110 yellow
0111 light gray	 1111 white
AL = character

Notes

      	for monochrome displays, a foreground of 1 with background 0 is
  underlined
the blink bit may be reprogrammed to enable intense background colors
  using AX=1003h or by programming the CRT controller
the foreground intensity bit (3) can be programmed to switch between
  character sets A and B on EGA and VGA cards, thus enabling 512
  simultaneous characters on screen.  In this case the bit's usual
  function (intensity) is regularly turned off.

SeeAlso

    INT 10 AH=09    INT 10 AX=1003    INT 10 AX=5001


INT 10 AH=09

10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION

AH = 09h
AL = character to display
BH = page number (00h to number of pages - 1) (see AH=00h)
BL = attribute (text mode) or color (graphics mode)
     if bit 7 set in graphics mode, character is xor'ed onto screen
CX = number of times to write character

Notes

      	all characters are displayed, including CR, LF, and BS
replication count in CX may produce an unpredictable result in graphics
  modes if it is greater than the number of positions remaining in the
  current row

SeeAlso

    INT 10 AH=08    INT 10 AH=0A    INT 10 AH=4B"GRAFIX"    INT 17 AH=60    INT 1FINT 43    INT 44


INT 10 AH=0A

10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION

AH = 0Ah
AL = character to display
BH = page number (00h to number of pages - 1) (see AH=00h)
BL = attribute (PCjr only) or color (graphics mode)
     if bit 7 set in graphics mode, character is xor'ed onto screen
CX = number of times to write character

Notes

      	all characters are displayed, including CR, LF, and BS
replication count in CX may produce an unpredictable result in graphics
  modes if it is greater than the number of positions remaining in the
  current row

SeeAlso

    INT 10 AH=08    INT 10 AH=09    INT 10 AH=4B    INT 17 AH=60    INT 1FINT 43    INT 44


INT 10 AH=0B

10 - VIDEO - SET BACKGROUND/BORDER COLOR

AH = 0Bh
BH = 00h
BL = background/border color (border only in text modes)

SeeAlso

    INT 10 AH=0B    /BH=01


INT 10 AH=0B

10 - VIDEO - SET PALETTE

AH = 0BH
BH = 01h
BL = palette ID
    00h background, green, red, and brown/yellow
    01h background, cyan, magenta, and white

SeeAlso

    INT 10 AH=0B    /BH=00


INT 10 AH=0C

10 - VIDEO - WRITE GRAPHICS PIXEL

AH = 0Ch
BH = page number
AL = pixel color (if bit 7 set, value is xor'ed onto screen)
CX = column
DX = row

Notes

      	valid only in graphics modes
BH is ignored if the current video mode supports only one page

SeeAlso

    INT 10 AH=0D    INT 10 AH=46


INT 10 AH=0D

10 - VIDEO - READ GRAPHICS PIXEL

AH = 0Dh
BH = page number
CX = column
DX = row

Return

        AL = pixel color

Notes

      	valid only in graphics modes
BH is ignored if the current video mode supports only one page

SeeAlso

    INT 10 AH=0C    INT 10 AH=47


INT 10 AH=0E

10 - VIDEO - TELETYPE OUTPUT

AH = 0Eh
AL = character to write
BH = page number
BL = foreground color (graphics modes only)

Desc

     	display a character on the screen, advancing the cursor and scrolling
  the screen as necessary

Notes

      	characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  and do the expected things
IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  the current active page

SeeAlso

    INT 10 AH=02    INT 10 AH=0A


INT 10 AH=0F

10 - VIDEO - GET CURRENT VIDEO MODE

AH = 0Fh

Return

        AH = number of character columns
AL = display mode (see AH=00h)
BH = active page (see AH=05h)

Notes

      	if mode was set with bit 7 set ("no blanking"), the returned mode will
  also have bit 7 set
EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  (monochrome) in all extended-row text modes

SeeAlso

    INT 10 AH=00    INT 10 AH=05    INT 10 AX=10F2    /BL=00h    INT 10 AX=1130    INT 10 AX=CD04


INT 10 AX=0F56

10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)

AX = 0F56h
BX = 4756h
CX = 4944h
DL = function
    01h installation check
Return: AX = 5649h
BX = 4443h
CX = 5647h
DH = 01h
    02h get first video mode's parameters
Return: AX = BIOS mode number
BX = width in pixels
CX = height in pixels
DX = number of colors
    03h get next video mode's parameters
Return: as for DL=02h
    04h display line???
ES:DI -> record (see below)
???
Return: ???

Notes

      	VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
the use of TSR display drivers was discontinued after v2.20

Table Formats

Record for DL=04h:


INT 10 AH=0F

10 - FRIEZE v7.41+ - INSTALLATION CHECK

AH = 0Fh
SI = F123h
DI = 321Fh

Return

        AH = number of character columns
AL = display mode (see AH=00h)
BH = active page (see AH=05h)
SI = DI = F345h if installed

Notes

      	if mode was set with bit 7 set ("no blanking"), the returned mode will
  also have bit 7 set
EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  (monochrome) in all extended-row text modes

SeeAlso

    INT 10 AH=0F"VIDEO"    INT 10 AH=4B"FRIEZE"


INT 10 AH=10

10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES

AH = 10h
CH,CL = row,column of upper left corner of window
DH,DL = row,column of lower right corner of window

Return

        AL = status
    00h successful
    01h failed
AH destroyed

Program

         BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal

Note

     	when a window has been set, all output via AH=0Eh is restricted to
  the specified window

SeeAlso

    INT 10 AH=11"Window"    INT 10 AH=12"Window"


INT 10 AH=10

10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED

AH = 10h
AL = speed
    00h fast
    01h slow (only moves characters during vertical retrace)

Return

        AH = previous speed


INT 10 AX=1000

10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,EGA,MCGA,VGA)

AX = 1000h
BL = palette register number (00h-0Fh)
   = attribute register number (undocumented)
     10h attribute mode control register (should let BIOS control this)
     11h overscan color register (see also AX=1001h)
     12h color plane enable register (bits 3-0 enable corresponding
text attribute bit)
     13h horizontal PEL panning register
     14h color select register
BH = color or attribute register value

Notes

      	on MCGA, only BX = 0712h is supported
under UltraVision, the palette locking status (see AX=CD01h)
  determines the outcome

SeeAlso

    INT 10 AX=1002    INT 10 AX=1007    INT 10 AX=CD01


INT 10 AX=1001

10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,EGA,VGA)

AX = 1001h
BH = border color (00h-3Fh)

BUG

    	the original IBM VGA BIOS incorrectly updates the parameter save area
  and places the border color at offset 11h of the palette table
  rather than offset 10h

Note

     	under UltraVision, the palette locking status (see AX=CD01h)
  determines the outcome

SeeAlso

    INT 10 AX=1002    INT 10 AX=1008    INT 10 AX=CD01


INT 10 AX=1002

10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,EGA,VGA)

AX = 1002h
ES:DX -> palette register list

Note

     	under UltraVision, the palette locking status (see AX=CD01h)
  determines the outcome

SeeAlso

    INT 10 AX=1000    INT 10 AX=1001    INT 10 AX=1009    INT 10 AX=CD01

Table Formats

Palette register list:


INT 10 AX=1003

10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)

AX = 1003h
BL = new state
    00h background intensity enabled
    01h blink enabled
BH = 00h to avoid problems on some adapters

Notes

      	although there is no function to get the current status on adapters
  prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  VGA, use AH=1Bh and check offset 2Dh of the returned data
when configured for a monochrome display, the Boca Research Multi-EGA
  with ROM v M1.1 Type D has its screen disrupted if BH is not clear

SeeAlso

    INT 10 AH=08    INT 10 AH=1B


INT 10 AX=1007

10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)

AX = 1007h
BL = palette or attribute (undoc) register number (see AX=1000h)

Return

        BH = palette or attribute register value

Note

     	UltraVision v2+ supports this function even on color EGA systems in
  video modes 00h-03h, 10h, and 12h; direct programming of the palette
  registers will cause incorrect results because the EGA registers are
  write-only.  To guard against older versions or unsupported video
  modes, programs which expect to use this function on EGA systems
  should set BH to FFh on entry.

SeeAlso

    INT 10 AX=1000    INT 10 AX=1009


INT 10 AX=1008

10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)

AX = 1008h

Return

        BH = border color (00h-3Fh)

Note

     	UltraVision v2+ supports this function even on color EGA systems in
  video modes 00h-03h, 10h, and 12h; direct programming of the palette
  registers will cause incorrect results because the EGA registers are
  write-only.  To guard against older versions or unsupported video
  modes, programs which expect to use this function on EGA systems
  should set BH to FFh on entry.

SeeAlso

    INT 10 AX=1001


INT 10 AX=1009

10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)

AX = 1009h
ES:DX -> 17-byte buffer (see AX=1002h)

Note

     	UltraVision v2+ supports this function even on color EGA systems in
  video modes 00h-03h, 10h, and 12h; direct programming of the palette
  registers will cause incorrect results because the EGA registers are
  write-only.  To guard against older versions or unsupported video
  modes, programs which expect to use this function on EGA systems
  should set the ES:DX buffer to FFh before calling.

SeeAlso

    INT 10 AX=1002    INT 10 AX=1007    INT 10 AX=CD02


INT 10 AX=1010

10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)

AX = 1010h
BX = register number
CH = new value for green (0-63)
CL = new value for blue (0-63)
DH = new value for red (0-63)

SeeAlso

    INT 10 AX=1012    INT 10 AX=1015


INT 10 AX=1012

10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)

AX = 1012h
BX = starting color register
CX = number of registers to set
ES:DX -> table of 3*CX bytes where each 3 byte group represents one
 byte each of red, green and blue (0-63)

SeeAlso

    INT 10 AX=1010    INT 10 AX=1017


INT 10 AX=1013

10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)

AX = 1013h
BL = subfunction
    00h select paging mode
BH = 00h select 4 blocks of 64
BH = 01h select 16 blocks of 16
    01h select page
BH = page number (00h to 03h) or (00h to 0Fh)

Note

     	this function is not valid in mode 13h

SeeAlso

    INT 10 AX=101A


INT 10 AX=1015

10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)

AX = 1015h
BL = palette register number

Return

        DH = red value
CH = green value
CL = blue value

SeeAlso

    INT 10 AX=1010    INT 10 AX=1017


INT 10 AX=1017

10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)

AX = 1017h
BX = starting palette register
CX = number of palette registers to read
ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)

Return

        buffer filled with CX red, green and blue triples

SeeAlso

    INT 10 AX=1012    INT 10 AX=1015


INT 10 AX=1018

10 U - VIDEO - SET PEL MASK (VGA/MCGA)

AX = 1018h
BL = new PEL value

SeeAlso

    INT 10 AX=1019


INT 10 AX=1019

10 U - VIDEO - READ PEL MASK (VGA/MCGA)

AX = 1019h

Return

       	BL = value read

SeeAlso

    INT 10 AX=1018


INT 10 AX=101A

10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)

AX = 101Ah

Return

        BL = paging mode
    00h four pages of 64
    01h sixteen pages of 16
BH = current page

SeeAlso

    INT 10 AX=1013


INT 10 AX=101B

10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)

AX = 101Bh
BX = starting palette register
CX = number of registers to convert

SeeAlso

    INT 10 AH=12    /BL=33


INT 10 AX=10E0

10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE

AX = 10E0h
BL = video mode (see also AH=00h)
    2Eh = 640x480

Return

        ???

SeeAlso

    INT 10 AH=00    INT 10 AX=10F0


INT 10 AX=10F0

10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE

AX = 10F0h
BL = video mode (see also AH=00h)
    32768-color modes:
13h = 320x200
2Dh = 640x350
2Eh = 640x480
2Fh = 640x400
30h = 800x600
    16M-color modes:
3Eh = 640x480 (Genoa 7900)

Return

       	AL = 10h if supported
AH = status
    00h if successful
    other on error

Note

     	the Tseng HiColor BIOS extensions are supported by:
  Diamond Computer Systems	SpeedStar HiColor VGA
  Everex Systems	HC VGA
  Focus Information Systems	2theMax 4000
  Cardinal Technologies	VGA732
  Orchid ProDesigner IIs	Genoa 7900

SeeAlso

    INT 10 AH=00    INT 10 AX=10E0    INT 10 AX=10F1    INT 10 AX=10F2


INT 10 AX=10F1

10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE

AX = 10F1h

Return

        AL = 10h if supported
BL = type of digital/analog converter
    00h normal VGA DAC
    01h Sierra SC1148x HiColor DAC
    02h new Sierra DAC
   else other HiColor DAC

SeeAlso

    INT 10 AX=10F0    INT 10 AX=10F2


INT 10 AX=10F2

10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF IN HiColor MODE

AX = 10F2h
BL = 00h

Return

        AX = 0010h if supported
BL = video mode type
    00h normal
    else HiColor mode

SeeAlso

    INT 10 AH=0F    INT 10 AX=10F0    INT 10 AX=10F1


INT 10 AH=11

10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES

AH = 11h

Return

        CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner

Program

         BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal

SeeAlso

    INT 10 AH=10"Window"    INT 10 AH=12"Window"


INT 10 AH=11

10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)

AH = 11h
The following functions will cause a mode set, completely resetting
the video environment, but without clearing the video buffer
AL = 00h, 10h: load user-specified patterns
    ES:BP -> user table
    CX	  = count of patterns to store
    DX	  = character offset into map 2 block
    BL	  = block to load in map 2
    BH	  = number of bytes per character pattern
AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
    BL	  = block to load
AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
    BL	  = block to load
AL = 03h: set block specifier
    BL	  = block specifier
   (EGA/MCGA) bits 0,1 = block selected by chars with attribute
 bit 3 = 0
      bits 2,3 = block selected by chars with attribute
 bit 3 = 1
   (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
 bits 2,3,5 = block selected by attribute bit 3 = 1
AL = 04h, 14h: load ROM 8x16 character set (VGA)
    BL	= block to load

Notes

      	The routines called with AL=1xh are designed to be called only
  immediately after a mode set and are similar to the routines called
  with AL=0xh, except that:
      Page 0 must be active.
      Bytes/character is recalculated.
      Max character rows is recalculated.
      CRT buffer length is recalculated.
      CRTC registers are reprogrammed as follows:
     R09 = bytes/char-1 ; max scan line (mode 7 only)
     R0A = bytes/char-2 ; cursor start
     R0B = 0	; cursor end
     R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
     R14 = bytes/char	; underline loc
   (*** BUG: should be 1 less ***)
the current block specifiers may be determined with INT 10/AH=1Bh,
  looking at offsets 2Bh and 2Ch of the returned data (VGA only)

SeeAlso

    INT 10 AH=1B    INT 10 AX=CD10


INT 10 AH=11

10 - VIDEO - GRAPHICS-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)

AH = 11h
AL = 20h: set user 8 by 8 graphics characters (INT 1F)
    ES:BP -> user table
AL = 21h: set user graphics characters
    ES:BP -> user table
    CX	  = bytes per character
    BL	  = row specifier
   00h user set
      DL = number of rows
   01h 14 rows
   02h 25 rows
   03h 43 rows
AL = 22h: ROM 8 by 14 set
    BL = row specifier (see above)
AL = 23h: ROM 8 by 8 double dot
    BL = row specifier (see above)
AL = 24h: load 8x16 graphics characters (VGA/MCGA)
    BL = row specifier (see above)
AL = 29h: load 8x16 graphics characters (Compaq Systempro)
    BL = row specifier (see above)

Notes

      	these functions are meant to be called only after a mode set
UltraVision v2+ sets INT 43 to the appropriate font for AL=22h,23h,24h,
  and 29h

SeeAlso

    INT 1F INT 4


INT 10 AX=1130

10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)

AX = 1130h
BH = pointer specifier
    00h INT 1Fh pointer
    01h INT 43h pointer
    02h ROM 8x14 character font pointer
    03h ROM 8x8 double dot font pointer
    04h ROM 8x8 double dot font (high 128 characters)
    05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
    06h ROM 8x16 font (MCGA, VGA)
    07h ROM alternate 9x16 font (VGA only)
    11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
    12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)

Return

        ES:BP = specified pointer
CX    = bytes/character of on-screen font (not the requested font!)
DL    = character rows on screen - 1 (VGA)
      = character rows on screen (EGA)

Note

     	for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  8xN font at ES:BP+256N

SeeAlso

    INT 10 AX=1100    INT 10 AX=1120    INT 1FINT 4


INT 10 AH=12

10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE

AH = 12h

Return

        BH = attribute to use on blanked lines when scrolling

Program

         BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal

SeeAlso

    INT 10 AH=11"Window"    INT 10 AH=12"Window"


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO

AH = 12h
BL = 10h

Return

        BH = 00h color mode in effect (I/O port 3Dxh)
     01h mono mode in effect (I/O port 3Bxh)
BL = 00h  64k bytes memory installed
     01h 128k bytes memory installed
     02h 192k bytes memory installed
     03h 256k bytes memory installed
CH = feature bits
CL = switch settings

Note

     	one possible check for the presence of an EGA or later display card
  is to call this function with BH=FFh; if not present, BH will be
  unchanged on return


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC

AH = 12h
BL = 20h  select alternate print screen routine

Notes

      	installs a PrtSc routine from the video card's BIOS to replace the
  default PrtSc handler from the ROM BIOS, which usually does not
  understand screen heights other than 25 lines
some adapters disable print-screen instead of enhancing it

SeeAlso

    INT 05


INT 10 AH=12

10 - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = 2Eh

Note

     	due to an omitted end-of-list marker, this version of the BIOS will
  crash the system on this function


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION

AH = 12h
BL = 30h
AL = vertical resolution
     00h 200 scan lines
     01h 350 scan lines
     02h 400 scan lines

Return

        AL = 12h if function supported


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING

AH = 12h
BL = 31h
AL = 00h enable default palette loading
     01h disable default palette loading

Return

        AL = 12h if function supported


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING

AH = 12h
BL = 32h
AL = 00h enable video addressing
     01h disable video addressing

Return

        AL = 12h if function supported


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING

AH = 12h
BL = 33h
AL = 00h enable gray scale summing
     01h disable gray scale summing

Return

        AL = 12h if function supported

SeeAlso

    INT 10 AX=101B    INT 10 AX=BF06


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION

AH = 12h
BL = 34h
AL = 00h enable alphanumeric cursor emulation
     01h disable alphanumeric cursor emulation

Return

        AL = 12h if function supported


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE

AH = 12h
BL = 35h
AL = 00h initial adapter video off
     01h initial planar video on
     02h switch active video off
     03h switch inactive video on
     80h *UNDOCUMENTED* set system board video active flag
ES:DX -> buffer (128 byte save area if AL = 0, 2 or 3)

Return

        AL = 12h if function supported


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL

AH = 12h
BL = 36h
AL = 00h enable refresh
     01h disable refresh

Return

        AL = 12h if function supported


INT 10 AH=12

10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES

AH = 12h
BH = 55h
BL = subfunction
    00h disabled enhanced features
    01h enable enhanced features
    02h get status
Return: AL = status flags
    bit 3: set if enhanced features enabled
    bits 7-5 monitor type
000 PS/2 mono
001 PS/2 color
010 multi-sync
011 Taxan 650 25kHz
100 RGB
101 mono
110 EGA
111 Compaq internal
    03h disable register trapping (CGA emulation)
    04h enable register trapping
    05h program mode described by table at ES:BP
    06h get mode table
AL = video mode
Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
BP = FFFFh on error

Table Formats

ATI VGA Wonder video mode table:


INT 10 AH=12

10 - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = 74h

Note

     	due to an omitted end-of-list marker, this version of the BIOS will
  crash the system on this function


INT 10 AH=12

10 - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = 80h

Note

     	due to an omitted end-of-list marker, this version of the BIOS will
  crash the system on this function


INT 10 AH=12

10 - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = BEh

Note

     	due to an omitted end-of-list marker, this version of the BIOS will
  crash the system on this function


INT 10 AH=12

10 - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = C6h

Note

     	due to an omitted end-of-list marker, this version of the BIOS will
  crash the system on this function


INT 10 AH=12

10 - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = F0h

Note

     	due to an omitted end-of-list marker, this version of the BIOS will
  crash the system on this function


INT 10 AH=13

10 - VIDEO - WRITE STRING (AT and later,EGA)

AH = 13h
AL = write mode
   bit 0: update cursor after writing
       1: string contains alternating characters and attributes
BH = page number
BL = attribute if string contains only characters
CX = number of characters in string
DH,DL = row,column at which to start writing
ES:BP -> string to write

Notes

      	recognizes CR, LF, BS, and bell
also available PC or XT with EGA or higher
HP 95LX only supports write mode 00h

BUG

    	on the IBM VGA Adapter, any scrolling which may occur is performed on
  the active page rather than the requested page

SeeAlso

    INT 10 AH=09    INT 10 AH=0A


INT 10 AX=1400

10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)

AX = 1400h
ES:DI -> character font
BH = number of bytes per character
    08h or 10h (Compaq)
BL = 00h load main font (block 0)
     01h load alternate font (block 1)
CX = number of characters to store
DX = character offset into RAM font area

SeeAlso

    INT 10 AH=11    INT 10 AX=1401


INT 10 AX=1401

10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)

AX = 1401h
BL = font to load
    00h main font (block 0)
    01h alternate font (block 1)

SeeAlso

    INT 10 AH=11    INT 10 AX=1400


INT 10 AX=1402

10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)

AX = 1402h
BL = function
    00h ignore high intensity attribute
    01h map high intensity to underscore
    02h map high intensity to reverse video
    03h map high intensity to selected alternate font
    B0h half intensity (Compaq)
    B1h toggle active intensity bit interpretation (CP386)


INT 10 AH=15

10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)

AH = 15h

Return

        AX = alternate display adapter type
    0000h none
    5140h LCD
    5153h CGA
    5151h mono
ES:DI -> parameter table (see below)

SeeAlso

    INT 10 AH=1B

Table Formats

Display parameter table:


INT 10 AH=15

10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)

AH = 15h
AL = superimpose mode
    00h show graphics screen
    01h show text screen
    02h show text screen superimposed on graphics screen


INT 10 AH=1A

10 - VIDEO - DISPLAY COMBINATION (PS,VGA/MCGA)

AH = 1Ah
AL = 00h read display combination code
Return: BL = active display code (see below)
BH = alternate display code
     01h set display combination code
BL = active display code (see below)
BH = alternate display code

Return

        AL = 1Ah if function was supported

Values for display combination code:
00h no display
01h monochrome adapter w/ monochrome display
02h CGA w/ color display
03h reserved
04h EGA w/ color display
05h EGA w/ monochrome display
06h PGA w/ color display
07h VGA w/ monochrome analog display
08h VGA w/ color analog display
09h reserved
0Ah MCGA w/ digital color display
0Bh MCGA w/ monochrome analog display
0Ch MCGA w/ color analog display
FFh unknown display type


INT 10 AH=1B

10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)

AH = 1Bh
BX = implementation type
    0000h return funtionality/state information
ES:DI -> 64 byte buffer for state information (see below)

Return

        AL = 1Bh if function supported
    ES:DI buffer filled with state information

SeeAlso

    INT 10 AH=15

Table Formats

State information:
Static Functionality Table:


INT 10 AH=1C

10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)

AH = 1Ch
AL = 00h return state buffer size
Return: BX = number of 64-byte blocks needed
     01h save video state
ES:BX -> buffer
     02h restore video state
ES:BX -> buffer containing previously saved state
CX = requested states
     bit 0 video hardware
 1 BIOS data areas
 2 color registers and DAC state
      3-15 reserved

Return

        AL = 1Ch if function supported

Notes

      	many BIOSes corrupt the video registers when saving the state, so a
  program should restore the state immediately after saving it (the
  saved data is uncorrupted)
the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h

Table Formats

Video hardware state:
DAC state:


INT 10 AH=1D

10 - Tseng ET-4000 BIOS v3.00 - BUG

AH = 1Dh

Note

     	this version of the BIOS jumps to a random location on this function
  due to a fencepost error


INT 10 AX=3000

10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)

AX = 3000h
CX = 0000h
DX = 0000h

Return

        CX:DX -> 3270PC configuration table (see below)
CX:DX = 0000h:0000h if 3270PC Control Program not active

Table Formats

3270 PC configuration table:
Control Program Level table:


INT 10 AH=38

10 - Tinytalk Personal v1.09f - GET CONFIGURATION INFO

AH = 38h

Return

        ES:DI -> configuration info (see below)

Notes

      	Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
this call is also used as the installation check by verifying that the
  returned ES:DI points at valid configuration info

SeeAlso

    INT 14 AX=F0F1    INT 2FFB00h"AutoBraille

Table Formats

Configuration info:


INT 10 AH=40

10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)

AH = 40h

SeeAlso

    INT 10 AH=00    INT 10 AH=41


INT 10 AH=41

10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)

AH = 41h

SeeAlso

    INT 10 AH=00    INT 10 AH=40


INT 10 AH=42

10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)

AH = 42h

SeeAlso

    INT 10 AH=45


INT 10 AH=43

10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)

AH = 43h
AL = page number (0,1)

SeeAlso

    INT 10 AH=05    INT 10 AH=44    INT 10 AH=45


INT 10 AH=44

10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)

AH = 44h
AL = drawing function
    00h clear pixels
    01h set pixels
    02h invert pixels

SeeAlso

    INT 10 AH=45    INT 10 AH=46    INT 10 AH=4C    INT 10 AH=4D


INT 10 AH=45

10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)

AH = 45h
AL = page number (0,1)

SeeAlso

    INT 10 AH=05    INT 10 AH=42    INT 10 AH=43


INT 10 AH=46

10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)

AH = 46h
DI = x (0-720)
BP = y (0-347)

Note

     	function 44h determines operation and function 43h which page to use

SeeAlso

    INT 10 AH=0C    INT 10 AH=47    INT 10 AH=49    INT 10 AH=4C    INT 10 AH=4D


INT 10 AH=47

10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)

AH = 47h
DI = x (0-720)
BP = y (0-347)

Return

        AL = 00h pixel clear
AL = 01h pixel set

Note

     	function 43h specifies which page is used

SeeAlso

    INT 10 AH=0D    INT 10 AH=46


INT 10 AH=48

10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)

AH = 48h
DI = x (0-720)
BP = y (0-347)

SeeAlso

    INT 10 AH=49


INT 10 AH=49

10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)

AH = 49h
DI = x (0-720)
BP = y (0-347)

Note

     	function 48h or 49h specify first point, 44h operation and 43h page to
  use

SeeAlso

    INT 10 AH=43    INT 10 AH=44    INT 10 AH=48    INT 10 AH=4C    INT 10 AH=4D


INT 10 AH=4A

10 - VIDEO - BLOCK FILL (Hercules GRAFIX)

AH = 4Ah
DI = x coordinate of lower left corner
BP = y coordinate of lower left corner
BX = height in pixels
CX = width in pixels

Note

     	draws a solid rectangle

SeeAlso

    INT 10 AH=4E


INT 10 AH=4B

10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)

AH = 4Bh
AL = character to display
DI = x (0-720)
BP = y (0-347)

Note

     	unlike the other BIOS character functions character position is
  specified in pixels rather than rows and columns

SeeAlso

    INT 10 AH=09    INT 10 AH=0A


INT 10 AH=4B

10 - FRIEZE v7.0+ - API

AH = 4Bh
CL = function
    00h reserved
    01h load window
ES:BX -> ASCIZ filename from which to read
    02h save window
ES:BX -> ASCIZ filename to which to write
    03h (v7.41) set ???
AL = ???
    04h (v7.41) set ???
AL = ???
    06h (v7.41) ???
AL = ???
    07h set window size
ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
    09h set patterns
ES:BX -> 16-BYTE vector of screen->printer color correspondnces
    0Ah get patterns
ES:BX -> 16-BYTE buffer for color correspondences
    0Bh set mode
AL = mode
    0Ch (v7.41) ???
AL = ???
    00h ??? (calls original INT 05)
    else ???
    0Dh (v7.41) ???
AL = ???
    00h ??? (calls original INT 05)
    else ???
    0Eh (v7.41) ???
???
    0Fh get window
ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
    10h set print options
ES:BX -> printer options in same format as FRIEZE cmdline
    11h (v7.41) ???
???
    12h (v7.41) ???
???
    13h (v7.41) ???
???
    14h get version
Return: AH = major version (00h if FRIEZE version before 7)
AL = minor version
    15h set parameters
ES:BX -> parameter table (see below)
    16h get parameters
ES:BX -> buffer for parameter table (see below)
    17h get printer resolution
ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
    18h reserved (v8.0 only)
    50h (v7.41) get ???
Return: AX = ???
    51h (v7.41) get ???
Return: ES = ??? (seen 2348h)
AX = ??? (seen 8432h)

Return

        AX = status
    00h successful
    01h user aborted printout with ESC
    02h reserved
    03h file read error
    04h file write error
    05h file not found
    06h invalid header (not an image or wrong screen mode)
    07h file close error
    08h disk error
    09h printer error
    0Ah invalid function
    0Bh can't create file
    0Ch wrong video mode

SeeAlso

    INT 10 AH=0F    /SI=F123

Table Formats

Parameter table:


INT 10 AH=4C

10 - VIDEO - DRAW ARC (Hercules GRAFIX)

AH = 4Ch
AL = quadrant (1 = upper right, 2 = upper left, etc)
DI = x coordinate of center
BP = y coordinate of center
BX = radius

SeeAlso

    INT 10 AH=49    INT 10 AH=4D


INT 10 AH=4D

10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)

AH = 4Dh
DI = x of center
BP = y of center
BX = radius

SeeAlso

    INT 10 AH=49    INT 10 AH=4C


INT 10 AH=4E

10 - VIDEO - FILL AREA (Hercules GRAFIX)

AH = 4Eh
DI = x coordinate of an interior point
BP = y coordinate of an interior point

Notes

      	fills convex polygonal areas
the first fill makes the figure solid, the second erases it

SeeAlso

    INT 10 AH=4A


INT 10 AX=4F00

10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION

AX = 4F00h
ES:DI -> 256-byte buffer for SuperVGA information (see below)

Return

        AL = 4Fh function supported
AH = status
    00h successful
    01h failed

SeeAlso

    INT 10 AX=4F01    INT 10 AX=7F00

Table Formats

SuperVGA information:


INT 10 AX=4F01

10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION

AX = 4F01h
CX = SuperVGA video mode
ES:DI -> 256-byte buffer mode information (see below)

Return

        AL = 4Fh function supported
AH = status
    00h successful
    01h failed

SeeAlso

    INT 10 AX=4F00    INT 10 AX=4F02

Table Formats

Mode information:


INT 10 AX=4F02

10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE

AX = 4F02h
BX = mode
bit 15 set means don't clear video memory

Return

        AL = 4Fh function supported
AH = status
    00h successful
    01h failed

SeeAlso

    INT 10 AX=4F01    INT 10 AX=4F03

Values for VESA video mode:
 00h-FFh OEM video modes (see AH=00h)
 100h	640x400x256
 101h	640x480x256
 102h	800x600x16
 103h	800x600x256
 104h	1024x768x16
 105h	1024x768x256
 106h	1280x1024x16
 107h	1280x1024x256
 108h	80x60 text
 109h	132x25 text
 10Ah	132x43 text
 10Bh	132x50 text
 10Ch	132x60 text
---VBE v1.2---
 10Dh	320x200x32K
 10Eh	320x200x64K
 10Fh	320x200x16M
 110h	640x480x32K
 111h	640x480x64K
 112h	640x480x16M
 113h	800x600x32K
 114h	800x600x64K
 115h	800x600x16M
 116h	1024x768x32K
 117h	1024x768x64K
 118h	1024x768x16M
 119h	1280x1024x32K
 11Ah	1280x1024x64K
 11Bh	1280x1024x16M

Values for S3 OEM video mode:
 201h	640x480x256
 202h	800x600x16
 203h	800x600x256
 204h	1024x768x16
 205h	1024x768x256
 206h	1280x960x16
 208h	1280x1024x16
 301h	640x480x32K


INT 10 AX=4F03

10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE

AX = 4F03h

Return

        AL = 4Fh function supported
AH = status
    00h successful
    01h failed
BX = video mode (see AX=4F02h)

SeeAlso

    INT 10 AX=4F02


INT 10 AX=4F04

10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE

AX = 4F04h
DL = subfunction
    00h get state buffer size
Return: BX = number of 64-byte blocks needed
    01h save video states
ES:BX -> buffer
    02h restore video states
ES:BX -> buffer
CX = flags for states to save/restore
    bit 0: video hardware state
    bit 1: video BIOS data state
    bit 2: video DAC state
    bit 3: SuperVGA state

Return

        AL = 4Fh function supported
AH = status
    00h successful
    01h failed


INT 10 AX=4F05

10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL

AX = 4F05h
BH = subfunction
    00h select video memory window
DX = window address in video memory (in granularity units)
    01h get video memory window
Return: DX = window address in video memory (in gran. units)
BL = window number
    00h window A
    01h window B

Return

        AL = 4Fh function supported
AH = status
    00h successful
    01h failed

SeeAlso

    INT 10 AX=4F01    INT 10 AX=4F06    INT 10 AX=4F07    INT 10 AX=7000    /BX=0004


INT 10 AX=4F06

10 - VESA SuperVGA BIOS v1.1 - GET/SET LOGICAL SCAN LINE LENGTH

AX = 4F06h
BL = function
    00h set scan line length
CX = desired width in pixels
    01h get scan line length

Return

        AL = 4Fh if function supported
AH = status
    00h successful
    01h failed
BX = bytes per scan line
CX = number of pixels per scan line
DX = maximum number of scan lines

Notes

      	if the desired width is not achievable, the next larger width will be
  set
the scan line may be wider than the visible area of the screen
this function is valid in text modes, provided that values are
  multiplied by the character cell width/height

SeeAlso

    INT 10 AX=4F01    INT 10 AX=4F05    INT 10 AX=4F07


INT 10 AX=4F07

10 - VESA SuperVGA BIOS v1.1 - GET/SET DISPLAY START

AX = 4F07h
BH = 00h (reserved)
BL = 00h set display start
CX = leftmost displayed pixel in scan line
DX = first displayed scan line
   = 01h get display start
Return: BH = 00h
CX = leftmost displayed pixel in scan line
DX = first displayed scan line

Return

        AL = 4Fh if function supported
AH = status
    00h successful
    01h failed

Note

     	this function is valid in text modes, provided that values are
  multiplied by the character cell width/height

SeeAlso

    INT 10 AX=4F01    INT 10 AX=4F05    INT 10 AX=4F06


INT 10 AX=4F08

10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL

AX = 4F08h
BL = function
    00h set DAC palette width
BH = desired number of bits per primary color
    01h get DAC palette width

Return

        AL = 4Fh if function supported
AH = status
BH = current number of bits per primary (06h = standard VGA)


INT 10 AX=4FFF

10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF

AX = 4FFFh
DL = new state (00h off, 01h on)

Return

        AX = 0000h if successful


INT 10 AH=50

10 - SCROLOCK.COM - INSTALLATION CHECK

AH = 50h

Return

        BX = 1954h if installed
    AL = 00 if inactive, nonzero if active

Program

         SCROLOCK is a utility supplied with System Enhancement Associates' ARC

SeeAlso

    INT 10 AH=51


INT 10 AX=5000

10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE

AX = 5000h
BX = country code
0001h USA (English), 0051h Japan

Return

        AL = status
    00h successful
    01h bad country code
    02h other error

SeeAlso

    INT 10 AX=5001    INT 16 AX=5000


INT 10 AX=5001

10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE

AX = 5001h

Return

        AL = status
    00h successful
BX = country code
    02h error

SeeAlso

    INT 10 AH=00    INT 10 AX=5000    INT 16 AX=5001    INT 21 AH=38


INT 10 AX=5049

10 - VIDEO - SCREENR v1.55+ - API

AX = 5049h ('PI')
BX = function
    0000h installation check
    0001h lock mode
    0002h unlock mode
    0003h lock palette
    0004h unlock palette

Return

        AX = 0000h if installed
    BX = TSR version (BH=major,BL=minor)
    CL = mode locking status
00h mode not locked
01h mode locked : INT 10/AH=00h disabled
    CH = palette locking status
00h palette not locked
01h palette locked, the following functions are disabled:
AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h

Program

         SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  utility.


INT 10 AH=51

10 - SCROLOCK.COM - ENABLE/DISABLE

AH = 51h
AL = state
    00h disable
    nonzero enable

Program

         SCROLOCK is a utility supplied with System Enhancement Associates' ARC

SeeAlso

    INT 10 AH=50"SCROLOCK"


INT 10 AX=5100

10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER

AX = 5100h
BH = character width in bits (10h)
BL = character height (10h)
DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
ES:BP -> character bitmap

Return

        AL = status (00h successful, 01h failed)

SeeAlso

    INT 10 AX=5101    INT 1F


INT 10 AX=5101

10 - VIDEO - AX PC - READ CHARACTER

AX = 5101h
BH = character width in bits
BL = character height
DX = character code (DH = 00h if 8-bit character)
ES:BP -> buffer for character bitmap

Return

        AL = status (00h successful, 01h failed)

SeeAlso

    INT 10 AH=09    INT 10 AX=5100


INT 10 AX=5200

10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER

AX = 5200h
BX = segment of buffer

SeeAlso

    INT 10 AX=5201


INT 10 AX=5201

10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER

AX = 5201h

Return

        BX = segment of buffer or 0000h if failed

SeeAlso

    INT 10 AX=8300    INT 10 AH=FE


INT 10 AH=53

10 - Show Partner F/X v3.6 - START PRESENTATION

AH = 53h
DS:DX -> ASCIZ name of presentation file (no path, extension forced to
.PR2)

Return

        ???

SeeAlso

    INT 10 AH=55


INT 10 AH=55

10 - Show Partner F/X v3.6 - UNINSTALL

AH = 55h

Return

        FXSHOW.EXE removed from memory

SeeAlso

    INT 10 AH=53


INT 10 AX=5555

10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK

AX = 5555h

Return

        AX = AAAAh    if installed
BX:CX -> ??? routine in SMS.COM resident portion
      -> data area in VCONFIG

Program

         Super Switch (SMS.COM) is a video mode switch program supplied with
  ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.

SeeAlso

    INT 10 AH=00    INT 2F AX=6400

Table Formats

Data area:


INT 10 AX=6A00

10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES

AX = 6A00h
BX = 0000h
CX = 0000h
DX = buffer length (may be 0)
ES:DI -> buffer

Return

        BX = number of bytes stored in buffer
CX = bytes required for all descriptions (0 if no DGIS)

Note

     	buffer contains descriptions and addresses of DGIS-compatible
  display(s) and printer(s)

SeeAlso

    INT 10 AX=6A02


INT 10 AX=6A01

10 - DGIS - REDIRECT CHARACTER OUTPUT

AX = 6A01h
CX = 0000h
ES:DI = address of device to send INT 10 output to

Return

        CX = 0000h  output could not be redirected
     else INT 10h output now routed to requested display

SeeAlso

    INT 10 AX=6A02


INT 10 AX=6A02

10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE

AX = 6A02h
ES:DI = 0000h:0000h

Return

        ES:DI = 0000h:0000h  if current display is non-DGIS
else address of the current DGIS INT 10 display

SeeAlso

    INT 10 AX=6A00    INT 10 AX=6A01


INT 10 AX=6E00

10 - Paradise VGA internal - GET ???

AX = 6E00h

Return

        AH = ??? (depends on serial number)
AL = ???
BX = ???
CL = ???
CH = ???
DX = ???

SeeAlso

    INT 10 AX=6E04    INT 10 AX=6E05


INT 10 AX=6E04

10 - Paradise VGA internal - GET SCREEN SIZE AND ???

AX = 6E04h

Return

        BX = screen width (columns)
CX = screen height (lines)
AH = ??? (05h or FFh)
AL = ??? (04h or video mode)

SeeAlso

    INT 10 AX=6E00    INT 10 AX=6E05


INT 10 AX=6E05

10 - Paradise VGA internal - SET MODE

AX = 6E05h
BL = mode

Note

     	like AH=0, AL=BL.

SeeAlso

    INT 10 AH=00    INT 10 AX=6E00    INT 10 AX=6E04    INT 10 AX=6F05


INT 10 AX=6F00

10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK

AX = 6F00h
BX = 0000h

Return

        BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
BX = 4850h ('HP') indicates HP Extended BIOS video functions present

SeeAlso

    INT 10 AX=6F01    INT 10 AX=6F02    INT 10 AX=6F03    INT 10 AX=6F04    INT 10 AX=6F05


INT 10 AX=6F01

10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO

AX = 6F01h

Return

        AL = monitor type code (HP,VEGA VGA only) (see below)
AH = status register information
     bit  0 = display enable
0 = display enabled
1 = vertical or horizontal retrace in progress
     bit  1 = light pen flip flop set
     bit  2 = light pen switch activated
     bit  3 = vertical sync
     bit  4 = monitor resolution
0 = high resolution (>200 lines)
1 = low resolution (<=200 lines)
     bit  5 = display type
0 = color
1 = monochrome
     bits6,7= diagnostic bits
CL = current value of Extended Control register (HP Ext BIOS, and only
if AL=41h)

Note

     	bits 0-3 are the same as the EGA/VGA status register bits 0-3

Values for monitor type code (HP Extended BIOS):
 00h	non-HP card with ROM and possibly its own INT 10h driver
 41h	MultiMode video display adapter
 42h-44h reserved
 45h	industry standard monochrome display adapter
 46h	industry standard color display adapter
 51h	reserved


INT 10 AX=6F04

10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION

AX = 6F04h

Return

        AL = current video mode (see AX=6F05h)
BX = horizontal columns (text) or pixels (graphics)
CX = vertical columns (text) or pixels (graphics)

SeeAlso

    INT 10 AX=6F05


INT 10 AX=6F05

10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE

AX = 6F05h
BL = mode (see below)

Notes

      	also supported by the HP Vectra Extended BIOS
on the HP Vectra, this function rather than AH=00h must be used to
  return to an IBM-standard mode after setting an HP-specified mode
  from 08h to 0Fh.

SeeAlso

    INT 10 AH=00    INT 10 AX=0070    INT 10 AX=007E    INT 10 AX=6F04

Values for video mode:
      text/ text pixel	 pixel	colors	disp	scrn  system
      grph resol  box	resoltn	page	addr
 00h-13h = standard IBM modes (see AH=00h)
 08h = T   80x27	       mono	     HP MultiMode Video
 09h = T   80x27	     HP MultiMode Video
 0Ah = T   40x27	       mono	     HP MultiMode Video
 0Bh = T   40x27	     HP MultiMode Video
 0Ch = Reserved	     HP MultiMode Video
 0Dh = G	640x400	     HP MultiMode Video
 0Eh = G	320x400	     HP MultiMode Video
 0Fh = G	320x400	     HP MultiMode Video
 40h = T   80x43  8x8	     Video7/VEGA VGA
 41h = T  132x25  8x14	     Video7/VEGA VGA
 42h = T  132x43  8x8	     Video7/VEGA VGA
 43h = T   80x60  8x8	     Video7/VEGA VGA
 44h = T  100x60  8x8	     Video7/VEGA VGA
 45h = T  132x28  8x8	     Video7/VEGA VGA
 60h = G	752x410	  16	     Video7 VGA, VEGA VGA
 61h = G	720x540	  16	     Video7 VGA, VEGA VGA
     = G	720x540	  16	     Northgate, Headland 1024i
 62h = G	800x600	  16	     Video7 VGA, VEGA Ext EGA
     = G	800x600	  16	     Headland 1024i
 63h = G	       1024x768	   2	     Video7 VGA
 64h = G	       1024x768	   4	     Video7 VGA
 65h = G	       1024x768	  16	     Video7 VGA, VEGA Ext EGA
     = G	       1024x768	  16	     Headland 1024i
 66h = G	640x400	 256	     Video7 VGA, VEGA Ext VGA
     = G	640x400	 256	     Northgate, Headland 1024i
 67h = G	640x480	 256	     Video7 VGA, VEGA Ext VGA
     = G	640x480	 256	     Headland 1024i
 68h = G	720x540	 256	     Video7 VGA, VEGA Ext VGA
     = G	720x540	 256	     Headland 1024i
 69h = G	800x600	 256	     Video7 VGA, VEGA Ext VGA
     = G	800x600	 256	     Headland 1024i
 70h = G	752x410	  16gray	     Video7 VGA, VEGA VGA
 71h = G	720x540	  16gray	     Video7 VGA, VEGA VGA
 72h = G	800x600	  16gray	     Video7 VGA
 73h = G	       1024x768	   2gray	     Video7 VGA
 74h = G	       1024x768	   4gray	     Video7 VGA
 75h = G	       1024x768	  16gray	     Video7 VGA
 76h = G	640x400	 256gray	     Video7 VGA
 77h = G	640x480	 256gray	     Video7 VGA
 78h = G	720x540	 256gray	     Video7 VGA
 79h = G	800x600	 256gray	     (future)

SeeAlso

    INT 10 AH=00    INT 10 AX=0070    INT 10 AX=007E    INT 10 AX=6F04


INT 10 AX=6F06

10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE

AX = 6F06h
BL = Autoswitch mode select
     00h select EGA/VGA-only modes
     01h select Autoswitched VGA/EGA/CGA/MGA modes
     02h select 'bootup' CGA/MGA modes
BH = enable/disable (00h enable, 01h = disable selection)


INT 10 AX=6F07

10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION

AX = 6F07h

Return

        AL = 6Fh
AH = bits 0-6 = number of 256K blocks of video memory
     bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
CX = 0000h

SeeAlso

    INT 10 AH=12    /BL=10


INT 10 AH=70

10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM

AH = 70h

Return

        AX:BX -> WORD containing green plane's offset
AX:CX -> WORD containing green plane's segment
AX:DX -> WORD containing segment of red (offset 0) and blue (offset
4000) planes

SeeAlso

    INT 10 AH=71


INT 10 AX=7000

10 - Everex Extended Video BIOS - RETURN EMULATION STATUS

AX = 7000h
BX = 0000h

Return

        AL = 70h if Trident-based Everex card
CL = monitor type
    00h mono
    01h CGA
    02h EGA
    03h digital multifrequency
    04h IBM PS/2
    05h IBM 8514
    06h SuperVGA
    07h analog multifrequency
    08h super multifrequency
CH = feature bits
    bits 7,6: 00 = 256K memory
      01 = 512K memory
      10 = 1024K
      11 = 2048K memory
    bit 5:    special oscillator present
    bit 4:    VGA protect enabled
    bit 0:    6845 emulation
DX = video board info
    bits 4-15: board ID model
    bits 0-3:  board ID revision
DI = BCD BIOS version number

Note

     	board models for Trident-based Everex cards:
    236h Ultragraphics II
    620h Vision VGA
    673h EVGA
    678h Viewpoint


INT 10 AX=7000

10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE

AX = 7000h
BX = 0004h

Return

        ES:DI -> FAR paging function (call with DL = page to set)

Note

     	the word preceding ES:DI is the length of the function in bytes, and
  the last byte of the function is a FAR return instruction.

SeeAlso

    INT 10 AX=4F05    INT 10 AX=7000    /BX=0000h    INT 10 AX=7000    /BX=0005


INT 10 AX=7000

10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO

AX = 7000h
BX = 0005h
CL = maximum number of modes to get info for
CH = mode type to get info for (see below)
DL = monitor type to get info for
ES:DI -> buffer for mode info (see below)

Return

        CL = total number of modes fitting criteria
CH = size of each info record

SeeAlso

    INT 10 AX=7000    /BX=0000h    INT 10 AX=7000    /BX=0004

Values for mode type:
 00h all modes
 01h monochrome text modes
 02h color text modes
 03h four-color CGA graphics modes
 04h two-color CGA graphics modes
 05h 16-color graphics modes
 06h 256-color graphics modes

Table Formats

Mode information record:


INT 10 AH=71

10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM

AH = 71h

Return

        AX:BX -> WORD containing segment address of INCRAM
AX:CX -> WORD containing offset of INCRAM

SeeAlso

    INT 10 AH=70


INT 10 AH=72

10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN

AH = 72h
AL = number of columns to shift scroll area, 00h to clear entire area
BH = new attributes for blanked columns at left
CH,CL = row, column of upper left corner of scroll area
DH,DL = row, column of lower right corner of scroll area

SeeAlso

    INT 10 AH=06    INT 10 AH=07    INT 10 AH=73    INT 15 AH=12    /BH=05


INT 10 AH=73

10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN

AH = 73h
AL = number of columns to shift scroll area, 00h to clear entire area
BH = new attributes for blanked columns at right
CH,CL = row, column of upper left corner of scroll area
DH,DL = row, column of lower right corner of scroll area

SeeAlso

    INT 10 AH=06    INT 10 AH=07    INT 10 AH=72    INT 15 AH=12    /BH=05


INT 10 AX=7F00

10 - SOLLEX SuperVGA - GET EXTENSIONS INFO

AX = 7F00h

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
    ES:DI -> info structure (see below)
01h failed

SeeAlso

    INT 10 AX=4F00

Table Formats

Info structure:
ResInfo:
Font info table [array] entry:
Values for clock value index:
 00h	25 MHz
 01h	28 MHz
 02h	PCLK
 03h	31.5 MHz (VESA 640x480)
 04h	reserved
 05h	16 MHz (EGA)
 06h	PCLK
 07h	24 MHz (EGA)
 08h	25 MHz
 09h	28 MHz
 0Ah	36 MHz
 0Bh	45 MHz (for 1024x768)
 0Ch	80 MHz
 0Dh	40 MHz
 0Eh	65 MHz
 0Fh	 1 MHz (for powerdown)


INT 10 AX=7F01

10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER

AX = 7F01h
BL = 00h
CX = adapter request
    bits 1-0: adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
    bit 2:    reserved
    bits 4-3: change displays (00 none, 01 analog 10 digital 11 panel)
    bits 6-5: desired monitor sense (01 color, 10 mono, 11=8514)
    bit 7:    lock override
    bit 8:    alternate adapter mode
    bits 15-9: reserved

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

Note

     	initializes video hardware to a particular standard

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F01    /BL=01h    INT 10 AX=7F01    /BL=02


INT 10 AX=7F01

10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER

AX = 7F01h
BL = 01h

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed
    BX = adapter type (see AX=7F01h/BL=00h)
    DX = display type
bits 1-0: monitor sense (00 none, 01 color, 10 mono, 11=8514)
bit 2:	  multi-frequency analog monitor active
bit 3:	  LCD panel active
bit 4:	  plasma/electroluminescent panel active
bit 5:	  PS/2-type monitor active
bit 6:	  multi-frequency digital monitor active
bit 7:	  Enhanced Color Display monitor active
bit 8:	  alternate display active
bits 15-9: reserved

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F01    /BL=00h    INT 10 AX=7F01    /BL=02


INT 10 AX=7F01

10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT

AX = 7F01h
BL = 02h
CX = adapter request (see AX=7F01h/BL=00h)

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h requested setting can successfully be made
01h requested setting not available in this configuration

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F01    /BL=00


INT 10 AX=7F02

10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT

AX = 7F02h
BL = 00h
CX = display output setting
    bit 0: CRTC control in bits 2,1 valid
    bit 1: enable digital output
    bit 2: enable analog output
    bit 3: panel control in bits 5,4 valid
    bit 4: enable LCD output
    bit 5: enable plasma/EL output
    bit 6: inverse control in bit 7 valid
    bit 7: 0=normal, 1=inverse
    bits 15-8 reserved

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F02    /BL=00


INT 10 AX=7F02

10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT

AX = 7F02h
BL = 01h

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
    BX = display output setting (see AX=7F02h/BL=00h)
    CX = displays attached
bit 0: PS/2 display on analog output
bit 1: multi-frequency monitor on analog output
bit 2: LCD panel attached
bit 3: plasma/electroluminescent panel attached
bit 4: multi-frequency monitor on digital output
bit 5: Enhanced Color Display attached to digital outpt
bit 6: alternate display
bits 15-7: reserved
01h failed

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F02    /BL=00


INT 10 AX=7F03

10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO

AX = 7F03h
BL = 00h
CX = support type
0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
0005h-0012h reserved for SOLLEX, 0013h Hercules,
0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
    CX = size of video support code
    DX = segment of physical video support (0000h if no ROM)
    ES = segment of active video support
    ES:DI -> information block (DI = 0000h if none available)
01h failed

SeeAlso

    INT 10 AX=7F03    /BL=01


INT 10 AX=7F03

10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT

AX = 7F03h
BL = 01h
CX = support request
ES = segment of support code

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

Note

     	initializes the indicated video support by calling ES:0003h; this
  function may be used to switch the active video support back to
  ROM after AX=7F03h/BL=02h

SeeAlso

    INT 10 AX=7F03    /BL=00


INT 10 AX=7F03

10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT

AX = 7F03h
BL = 02h
CX = support request
ES = destination segment

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F03    /BL=01


INT 10 AX=7F04

10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE

AX = 7F04h
BL = 00h
CX = new power state

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

Note

     	higher values progressively reduce the operations available on the
  video adapter while yielding increasing power savings

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F04    /BL=01


INT 10 AX=7F04

10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE

AX = 7F04h
BL = 01h

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
    CX = current power state
    DX = maximum state
01h failed

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F04    /BL=00


INT 10 AX=7F04

10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET

AX = 7F04h
BL = 02h
CX = timeout reset

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F04    /BL=03


INT 10 AX=7F04

10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET

AX = 7F04h
BL = 03h

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
    BX = time increment
    CX = current timeout reset
    DX = maximum timeout reset
    ES:DI -> timeout reset table (array of bytes)
01h failed

Note

     	the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks

SeeAlso

    INT 10 AX=7F00    INT 10 AX=7F04    /BL=02


INT 10 AX=7F05

10 - SOLLEX SuperVGA - LOAD REGISTER

AX = 7F05h
ES:DI -> register value table (see below)

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

SeeAlso

    INT 10 AH=F1    INT 10 AH=F3    INT 10 AH=F5

Table Formats

Register value table:


INT 10 AX=7F06

10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL

AX = 7F06h
BL = subfunction
    00h set multiple font state
CX = new state (00h off, 01h on)
    01h get multiple font state
Return: BL = current state (00h off, 01h on)

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

SeeAlso

    INT 10 AH=11


INT 10 AX=7F07

10 - SOLLEX SuperVGA - FILL VIDEO RAM

AX = 7F07h
BL = how much to fill
   00h regen size
   01h all video memory
CX = pattern to write (normally 0720h for text modes and 0000h for gr)

Return

        AL != 7Fh if not supported
AL = 7Fh if supported
    AH = status
00h successful
01h failed

SeeAlso

    INT 10 AH=06


INT 10 AH=80

10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER

AH = 80h
DX = 4456h ('DV')
ES:DI -> FAR subroutine to be called on ???

Return

        DS = segment of DESQview data structure for video buffer

Note

     	this function is probably meant for internal use only, due to the magic
  value required in DX
the subroutine seems to be called when the DESQview menu is accessed;
  on entry, AL = 03h or 04h


INT 10 AH=81

10 U - VIDEO - DESQview 2.0x only - internal - GET ???

AH = 81h
DX = 4456h ('DV')

Return

        ES = segment of DESQview data structure for video buffer
    BYTE ES:[0] = current window number in DV 2.0x

Note

     	this function is probably meant for internal use only, due to the magic
  value required in DX

SeeAlso

    INT 10 AH=82


INT 10 AH=82

10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO

AH = 82h
DX = 4456h ('DV')

Return

        DS = segment in DESQview for data structure
     in DV 2.00,
  BYTE DS:[0] = window number
  WORD DS:[1] = segment of other data structure
  WORD DS:[3] = segment of window's object handle
ES = segment of DESQview data structure for video buffer
AL = current window number
AH = ???
BL = direct screen writes
    00h program does not do direct writes
    01h program does direct writes, so shadow buffer not usable
BH = ???
CL = current video mode
CH = ???

Note

     	this function is probably meant for internal use only, due to the magic
  value required in DX

SeeAlso

    INT 10 AH=81


INT 10 AX=8200

10 - VIDEO - AX PC - GET/SET SCROLL MODE

AX = 8200h
BL = new scroll mode or FFh to get current mode
    00h dynamic, 01h software

Return

        AL = scroll mode (current mode if BL=FFh, previous mode otherwise)

SeeAlso

    INT 10 AH=06    INT 10 AH=07


INT 10 AX=8300

10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS

AX = 8300h

Return

        AX = offset of video RAM
ES:BX -> virtual text RAM buffer

SeeAlso

    INT 10 AX=5201


INT 10 AH=8B

10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE

AH = 8Bh

SeeAlso

    INT 10 AH=92    INT 10 AH=93


INT 10 AH=90

10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE

AH = 90h

Return

        AL = current video mode (see AH=00h)

SeeAlso

    INT 10 AH=91


INT 10 AH=91

10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE

AH = 91h

Return

        AL = video adapter type
    00h monochrome
    01h Hercules monochrome graphics
    02h CGA
    03h EGA
    04h VGA
    80h monochrome text terminal
    81h Hercules graphics terminal
    82h color graphics terminal

Note

     	types less than 80h do not imply that the current user is on the host

SeeAlso

    INT 10 AH=90


INT 10 AH=92

10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES

AH = 92h

Note

     	the terminal will be updated even when screen updates are inhibited if
  TTY output is used

SeeAlso

    INT 10 AH=8B


INT 10 AH=93

10 - Alloy MW386 - REDRAW SCREEN

AH = 93h

SeeAlso

    INT 10 AH=8B


INT 10 AX=BF00

10 - VIDEO - Compaq Portable Extensions - SELECT EXTERNAL MONITOR

AX = BF00h

Note

     	all registers preserved and the internal monitor is blanked
the external monitor becomes the active monitor

SeeAlso

    INT 10 AX=BF01


INT 10 AX=BF01

10 - VIDEO - Compaq Portable Extensions - SELECT INTERNAL MONITOR

AX = BF01h

Note

     	all registers preserved and the external monitor is blanked
the internal monitor becomes the active monitor

SeeAlso

    INT 10 AX=BF00


INT 10 AX=BF02

10 - VIDEO - Compaq Portable Extensions - SET MASTER MODE OF CURRENT CTRLR

AX = BF02h
BH = master mode
    04h CGA
    05h EGA
    07h MDA

SeeAlso

    INT 10 AX=BF03


INT 10 AX=BF03

10 - VIDEO - Compaq Portable/Systempro Extensions - GET ENVIRONMENT

AX = BF03h
BX = 0000h

Return

        BH = active monitor
    00h = external
    01h = internal
BL = master mode
    00h = switchable VDU not present
    04h = CGA
    05h = EGA
    07h = MDA
    08h = switchable LCD controller present
CH = 00h (reserved)
CL = switchable VDU mode supported
    bit	 0   = CGA supported
    bits 1,2 = reserved (1)
    bit	 3   = MDA supported
    bits 4-7 = reserved (1)
DH = internal monitor type
    00h = none
    01h = Dual-mode monitor
    02h = 5153 RGB monitor
    03h = Compaq Color monitor
    04h = 640x400 flat panel
    07h = LCD VGA
DL = external monitor type
    00h = none
    01h = dual-mode monitor
    02h = 5153 RGB monitor
    03h = Compaq Color monitor
    04h = 640x400 flat panel
    05h = VGC monochrome
    06h = VGC color

SeeAlso

    INT 10 AH=1A    INT 10 AX=BF00    INT 10 AX=BF01    INT 10 AX=BF02


INT 10 AX=BF04

10 - VIDEO - Compaq Portable Extensions - SET MODE SWITCH DELAY

AX = BF04h
BH = new state of delay
    00h enabled
    01h disabled

SeeAlso

    INT 10 AX=BF05


INT 10 AX=BF05

10 - VIDEO - Compaq Systempro Extensions - ENABLE/DISABLE DISPLAY

AX = BF05h
BH = new state of video
    00h off
    01h on

SeeAlso

    INT 10 AX=BF04


INT 10 AX=BF06

10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE

AX = BF06h
CL = address to be read from gray scale table

Return

        AL = bit 3-0 - Value read from gray scale table
CL = address to be read from gray scale table

SeeAlso

    INT 10 AH=12    /BL=33h    INT 10 AX=BF07


INT 10 AX=BF07

10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE

AX = BF07h
CH = value to write to gray scale table
CL = address to be written to gray scale table

SeeAlso

    INT 10 AX=BF06


INT 10 AX=BF08

10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS

AX = BF08h
CH = bits 7-4 - Green weight
     bits 3-0 - Blue weight
CL = bits 7-4 - unused
     bits 3-0 - Red weight


INT 10 AX=CC00

10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)

AX = CC00h
SI = 0000h (if checking version)

Return

        CX = ABCDh
AL = Ultravision extensions
    00h enabled
    FFh disabled
AH = card designator
BX:00F0h -> palette values (for compatibility with NEWFONT)
DX = support for high resolution modes
    00h not active
    01h active
SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
   = unchanged for versions <1.2

SeeAlso

    INT 10 AX=CC01    INT 10 AX=CC02


INT 10 AX=CC01

10 - VIDEO - UltraVision - DISABLE EXTENSIONS

AX = CC01h

Notes

      	subsequent BIOS calls will be passed through to previous handler
should be followed immediately by mode set to restore normal EGA/VGA
  state

SeeAlso

    INT 10 AX=CC02


INT 10 AX=CC02

10 - VIDEO - UltraVision - ENABLE EXTENSIONS

AX = CC02h

Note

     	should be followed immediately by mode set to restore previous
  UltraVision state

SeeAlso

    INT 10 AX=CC01


INT 10 AX=CD00

10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)

AX = CD00h
CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)

Notes

      	if palette locking is in effect for the current mode, the new colors
  will be displayed immediately; otherwise, the system reverts to the
  default palette
palette table 0 is reserved for the default palette and cannot be set
UltraVision always sets the border color to black

SeeAlso

    INT 10 AX=CD01    INT 10 AX=CD02


INT 10 AX=CD01

10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)

AX = CD01h
CL = palette locking value
    00h none
    01h text modes only (02h,03h)
    FFh all modes (all standard color text and graphics modes)

Notes

      	intended for video modes with 16 or fewer colors

SeeAlso

    INT 10 AX=1000    INT 10 AX=1002    INT 10 AX=CD00    INT 10 AX=CD03


INT 10 AX=CD02

10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)

AX = CD02h

Return

        CL = palette table number
DS:DX -> 17-byte palette register list
DS:SI -> current font names table (see below)

Note

     	only the font names are valid on monochrome EGA systems

SeeAlso

    INT 10 AX=1009    INT 10 AX=CD00

Table Formats

Palette register list:
Current font names table (v2+):
Current font names table (v1.x):


INT 10 AX=CD03

10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)

AX = CD03h

Return

        CL = palette locking value
    00h none
    01h text modes only
    FFh all modes

SeeAlso

    INT 10 AX=CD01


INT 10 AX=CD04

10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)

AX = CD04h

Return

        AL = mode number
    11h 80x25
    12h 80x43, 80x50
    13h 80x34, 80x36
    14h 80x60, 80x63
    19h 94x25
    1Ah 94x43, 94x50
    1Bh 94x36
    1Ch 94x63
    21h 108x25
    22h 108x43, 108x50
    23h 107x34, 108x36
    24h 108x60, 108x63
    31h 120x25
    32h 120x43, 120x50
    33h 132x25
    34h 132x44, 132x50
    39h 120x36
    3Ah 120x63
    3Bh 132x36
    3Ch 132x60

SeeAlso

    INT 10 AH=0F    INT 10 AX=CC00    INT 10 AH=CD


INT 10 AX=CD05

10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)

AX = CD05h
CL = type
    00h line cursor
    FFh box cursor

Note

     	sets default cursor type for text-based programs

SeeAlso

    INT 10 AH=01    INT 10 AX=CD06


INT 10 AX=CD06

10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)

AX = CD06h

Return

       	CL = type
    00h line cursor
    FFh box cursor

SeeAlso

    INT 10 AH=03    INT 10 AX=CD05


INT 10 AX=CD07

10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)

AX = CD07h
CL = hardware underline status
    00h off (color systems only)
    01h underline below characters
    02h strike through characters
BL = foreground color for normal text (FFh = current)
BH = foreground color for bright text (FFh = current)

Return

        CL = hardware underline status
BL = current foreground color for normal text
BH = current foreground color for bright text

Notes

      	when underline or strikeout is enabled in color text modes, the
  specified colors will be assigned temporarily to colors 01h and 09h,
  allowing affected text to match non-underlined text.	The color
  remapping uses values from the current onscreen palette regardless
  of the palette locking status (see AX=CD01h)
specify the standard colors (BL=01h,BH=09h) to enable underline or
  strikeout without color remapping

SeeAlso

    INT 10 AX=CD08


INT 10 AX=CD08

10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)

AX = CD08h

Return

        CL = hardware underline status (see AX=CD07h)
BL = foreground color for normal text
BH = foreground color for bright text

Note

     	only CL is valid on monochrome EGA systems

SeeAlso

    INT 10 AX=CD07


INT 10 AX=CD10

10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)

AX = CD10h
BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
CX = ABCDh load 9xN alternate font (v2+)
   else number of characters to load
DX = character offset into font table
DS:SI -> 8-byte ASCII font name
ES:BP -> font definitions

Return

        AX = FFFFh if invalid font parameters

Notes

      	loads the designated characters into UltraVision's resident font area
should be followed by a video mode set to reload character generator

SeeAlso

    INT 10 AX=1100


INT 10 AH=CD

10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)

AH = CDh
AL = text mode number (see AX=CD04h)

Return

        AX = CDCDh if invalid mode

SeeAlso

    INT 10 AX=CD04


INT 10 AH=EF

10 - VIDEO - MSHERC.COM - INSTALLATION CHECK???

AH = EFh

Return

        DL = video adapter type
    00h original Hercules
    01h ???  \ one is probably Hercules Plus, the other
    02h ???  / Hercules InColor
    FFh non-Hercules
DH = memory mode byte
    01h "half" mode
    03h "full" mode

Note

     	MSHERC.COM is a support program for the Microsoft Quick languages which
  makes their graphics libraries compatible with a Hercules card by
  adding video modes 08h and 88h, and supporting text in the new
  graphics modes.  While in mode 08h or 88h, INT 10 supports the
  Hercules card much like a CGA.


INT 10 AH=F0

10 - EGA Register Interface Library - READ ONE REGISTER

AH = F0h
BL = register number
BH = 00h
DX = group index
    Pointer/data chips
       00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
       08h Sequencer (5 registers) 3C4h
       10h Graphics Controller (9 registers) 3CEh
       18h Attribute Controller (20 registers) 3C0h
    Single registers
       20h Miscellaneous Output register 3C2h
       28h Feature Control register (3BAh mono modes, 3DAh color modes)
       30h Graphics 1 Position register 3CCh
       38h Graphics 2 Position register 3CAh

Return

        BL = data

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AH=F1    INT 10 AH=F2    INT 2F AX=BC00


INT 10 AH=F1

10 - EGA Register Interface Library - WRITE ONE REGISTER

AH = F1h
DX = group index (see AH=F0h)
    if single register:
BL = value to write
    otherwise
BL = register number
BH = value to write

Return

        BL = data

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AX=7F05    INT 10 AH=F0    INT 10 AH=F3


INT 10 AH=F2

10 - EGA Register Interface Library - READ REGISTER RANGE

AH = F2h
CH = starting register number
CL = Number of registers (>1)
DX = group index
     00h CRTC (3B4h mono modes, 3D4h color modes)
     08h Sequencer 3C4h
     10h Graphics Controller 3CEh
     18h Attribute Controller 3C0h
ES:BX -> buffer, CL bytes

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AH=F0    INT 10 AH=F3


INT 10 AH=F3

10 - EGA Register Interface Library - WRITE REGISTER RANGE

AH = F3h
CH = starting register
CL = number of registers (>1)
DX = group index (see AH=F2h)
ES:BX -> buffer, CL bytes

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AX=7F05    INT 10 AH=F1    INT 10 AH=F2


INT 10 AH=F4

10 - EGA Register Interface Library - READ REGISTER SET

AH = F4h
CX = number of registers to read (>1)
ES:BX -> table of records (see below)

Return

        register values in table filled in

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AH=F0    INT 10 AH=F2    INT 10 AH=F5

Table Formats

Entries in table of register records:


INT 10 AH=F5

10 - EGA Register Interface Library - WRITE REGISTER SET

AH = F5h
CX = number of registers to write (>1)
ES:BX -> table of records (see AH=F4h)

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AX=7F05    INT 10 AH=F1    INT 10 AH=F3    INT 10 AH=F4


INT 10 AH=F6

10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS

AH = F6h

Note

     	provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  others

SeeAlso

    INT 10 AH=F7


INT 10 AH=F7

10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE

AH = F7h
DX = port number
   Pointer/data chips
      00h CRTC (3B4h mono modes, 3D4h color modes)
      08h Sequencer 3C4h
      10h Graphics Controller 3CEh
      18h Attribute Controller 3C0h
   Single registers
      20h Miscellaneous Output register 3C2h
      28h Feature Control register (3BAh mono modes, 3DAh color modes)
      30h Graphics 1 Position register 3CCh
      38h Graphics 2 Position register 3CAh
ES:BX -> table of one-byte entries, one byte to be written to each
 register

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AH=F6


INT 10 AH=FA

10 - EGA Register Interface Library - INTERROGATE DRIVER

AH = FAh
BX = 0000h

Return

        BX = 0000h if mouse driver not present
ES:BX -> EGA Register Interface version number, if present:
    byte 0 = major release number
    byte 1 = minor release number

Note

     	the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  compatibility box, and others

SeeAlso

    INT 10 AH=F6    INT 2F AX=BC00


INT 10 AH=FA

10 - FASTBUFF.COM - INSTALLATION CHECK

AH = FAh

Return

        AX = 00FAh if installed
    ES = segment of resident code

Program

         FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  Steiner


INT 10 AH=FE

10 - TopView - GET SHADOW BUFFER

AH = FEh
ES:DI -> assumed video buffer
B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  or A000h:0000h EGA/VGA graphics (RSIS environments only)

Return

        ES:DI -> actual video buffer for calling process

Notes

      	if no multitasker or RSIS-compliant environment is installed, ES:DI is
  returned unchanged; RSIS is the Relocated Screen Interface
  Specification
for display pages other than 0, use AH=05h and AH=0Fh to determine
  whether a particular page exists
TopView requires a call to AH=FFh to notify it that the screen has
  changed; DESQview will check for changes itself until the first call
  to AH=FFh

SeeAlso

    INT 10 AH=05    INT 10 AX=5201    INT 10 AH=FF    INT 15 AX=1024    INT 21 AH=2B"DESQview"

SeeAlso

    INT 21 AH=EC"DoubleDOS"


INT 10 AH=FF

10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER

AH = FFh
CX = number of consecutive changed characters
ES:DI -> first changed character in shadow buffer

Notes

      	avoid CX=0000h
DESQview will discontinue the automatic screen updating initiated by
  AH=FEh after this call
not supported (ignored) by DESQview/X 1.0x

SeeAlso

    INT 10 AH=FE


INT 10 AH=FF

10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS

AH = FFh
AL = video mode
    00h 80x25 text
    01h default text
    02h CXxDX text
    03h biggest text
    04h 320x200 graphics
    05h default graphics
    06h CXxDX graphics
    07h	biggest non-interlaced graphics
    08h biggest graphics

SeeAlso

    INT 10 AH=00    INT 21 AH=FF"GO32"


INT 10 AX=FF00

10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP

AX = FF00h

Return

        BL = 00h not connected
   = 01h connected

SeeAlso

    INT 10 AX=FF01    INT 10 AX=FF02


INT 10 AX=FF01

10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE

AX = FF01h

SeeAlso

    INT 10 AX=FF00    INT 10 AX=FF02


INT 10 AX=FF02

10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED

AX = FF02h

Return

        ES:DI -> ASCIZ phone number

SeeAlso

    INT 10 AX=FF00    INT 10 AX=FF01


INT 11

11 - CPU-generated (80486+) - ALIGNMENT CHECK

   Bit AC in the EFLAGS register enables this interrupt on a memory reference
     on a mis-aligned address when in privilege mode 3.


INT 11

11 - BIOS - GET EQUIPMENT LIST

Return

        AX = BIOS equipment list word
    bits
    0	  floppy disk(s) installed (see bits 6-7)
    1	  80x87 coprocessor installed
    2,3	  number of 16K banks of RAM on motherboard (PC only)
  number of 64K banks of RAM on motherboard (XT only)
    2	  pointing device installed (PS)
    3	  unused (PS)
    4-5	  initial video mode
  00 EGA, VGA, or PGA
  01 40x25 color
  10 80x25 color
  11 80x25 monochrome
    6-7	  number of floppies installed less 1 (if bit 0 set)
    8	  DMA support installed (PCjr, some Tandy 1000s, 1400LT)
    9-11  number of serial ports installed
    12	  game port installed
    13	  serial printer attached (PCjr)
  internal modem installed (PC/Convertible)
    14-15 number of parallel ports installed
---Compaq and many other 386/486 machines--
EAX bit 23: page tables set so that Weitek coprocessor addressable in
real mode
    bit 24: Weitek math coprocessor present
---Compaq Systempro
EAX bit 25: internal DMA parallel port available
26: IRQ for internal DMA parallel port (if bit 25 set)
    0 = IRQ5
    1 = IRQ7
     27,28: parallel port DMA channel
    00 DMA channel 0
    01 DMA channel 0 ???
    10 reserved
    11 DMA channel 3

SeeAlso

    INT 12


INT 11

11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6

SI = 6A6Ah
AH = command (see below)
AL = SCSI Addressing
    bits 2-0 SCSI Target LUN (logical unit number)
    bits 5-3 SCSI Target ID
    bits 7-6 Host Adapter

Return

        CF clear if successful
CF set on error
    AL = error code

SeeAlso

    INT 21 AX=4402    ASPI

Values for SDLP command:
 00h SDLP initialization
 01h SDLP System Identify
 02h simple read sectors
 03h simple write sectors
 04h simple verify sectors/seek to sector
 05h get device size/type
 06h ready unit
 07h format unit
 08h diagnostics
 09h rewind
 0Ah erase
 0Bh write filemarks
 0Ch space
 0Dh prevent/allow media removal
 0Eh load/unload media
 0Fh reserved - returns good status
 10h set block size
 11h write setmark
 12h set error level
 13h get address of Request Sense Buffer
 14h get SDLP error via Request Sense
 F0h Vendor Unique Function (WD7000-FASST2 only)
 FDh reset current SCSI HAC
 FEh get/set current SCSI HAC
 FFh execute SCSI command


INT 11 AH=BC

11 - BNU FOSSIL - INSTALLATION CHECK

AH = BCh
DX = 1954h

Return

        AX = 1954h
ES:DX -> entry point of driver (instead of INT 14)


INT 11 AH=FF

11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND

AH = FFh
SI = 6A6Ah
AL = SCSI Addressing
    bits 2-0 SCSI Target LUN (logical unit number)
    bits 5-3 SCSI Target ID
    bit 7    write flag, set for write operations, clear otherwise
CX = bytes of data to be transmitted (max FFF0h)
DH = 00h
DL = length of SCSI Command Descriptor Block
DS:DI -> SCSI Command Descriptor Block
ES:BX -> data buffer

Return

        CF set on error
    AL = error code
CF clear if successful

Note

     	because of busmaster operations with WD7000FASST avoid accessing
  video memory directly; check 386 memory manager for VDS support.
  The WD7000XTAT works with programmed IO and does not have this
  limitation.

SeeAlso

    INT 21 AX=4402    ASPI


INT 11 AX=FFFE

11 - BACK&FORTH (before v1.62) API

AX = FFFEh
CX = FFFEh
BX = function
    00h installation check
Return: AX = 0001h BNFHIGH and BNFLOW both loaded
   = 0003h only BNFHIGH loaded
   else neither loaded
    01h ???
Return: DX:AX -> ???
    02h ???
    03h ???
    04h ???
    05h ??? switches current PSP segment and stack if BNFLOW has not
    yet announced itself installed
    06h ???
Return: AX = ???

SeeAlso

    INT 12 AX=FFFE


INT 12

12 - BIOS - GET MEMORY SIZE

Return

       	AX = kilobytes of contiguous memory starting at absolute address 00000h

Note

     	this call returns the contents of the word at 0040h:0013h; in PC and
  XT, this value is set from the switches on the motherboard

SeeAlso

    INT 11INT 2F/AX=4A06


INT 12

12 - KEYBUI v2.0+ - INSTALLATION CHECK

CX = 1806h

Return

       	AX = kilobytes of contiguous memory starting at absolute address 00000h
CX = 1960h if installed

Note

     	KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  accented characters and box drawing on standard QWERTY keyboards; it
  also provides break-to-DOS and screen blanking capabilities


INT 12

12 - PARKER v2.0+ - INSTALLATION CHECK

CX = 1807h

Return

       	AX = kilobytes of contiguous memory starting at absolute address 00000h
CX = 1961h if installed

Note

     	PARKER is an optionally-resident hard disk parking program by Johan
  Zwiekhorst


INT 12 AX=FFFE

12 - Back&Forth v1.62+ - API

AX = FFFEh
CX = FFFEh
BX = function
    00h installation check
Return: AX = 0001h installed
     else  not loaded
    02h build program ID list
ES:DI -> buffer of at least 100 bytes, to be filled with words
Return: AX = number of programs defined
ES:DI buffer filled with AX words
    03h switch to specified task (task need not be open yet)
DX = two-letter program ID
Return: AX = 0000h if task undefined
    04h ???
    05h	???
    06h	get version (undoc)
Return: AX = version * 100 (v1.71 = 00ABh)
    07h ???
    08h get open tasks (undoc)
ES:DI -> task info buffer (see below)
Return: AX = number of open tasks (max 20)
    09h	???

Note

     	Back & Forth is a task switcher by Progressive Solutions, Inc.

SeeAlso

    INT 11 AX=FFFE

Table Formats

Task info buffer:


INT 13 AH=00

13 - DISK - RESET DISK SYSTEM

AH = 00h
DL = drive (if bit 7 is set both hard disks and floppy disks reset)

Return

        AH = status (see AH=01h)
CF clear if successful (returned AH=00h)
CF set on error

Note

     	forces controller to recalibrate drive heads (seek to track 0)

SeeAlso

    INT 13 AH=0D    INT 13 AH=11    INT 21 AH=0D    INT 4ETI Professional


INT 13 AH=01

13 - DISK - GET STATUS OF LAST OPERATION

AH = 01h
DL = drive (bit 7 set for hard disk)

Return

        CF clear if successful (returned status 00h)
CF set on error
AH = status of previous operation
    00h successful completion
    01h invalid function in AH or invalid parameter
    02h address mark not found
    03h disk write-protected (floppy)
    04h sector not found
    05h reset failed (hard disk)
    06h disk changed (floppy)
    07h drive parameter activity failed (hard disk)
    08h DMA overrun
    09h attempted DMA across 64K boundary
    0Ah bad sector detected (hard disk)
    0Bh bad track detected (hard disk)
    0Ch unsupported track or invalid media
    0Dh invalid number of sectors on format (hard disk)
    0Eh control data address mark detected (hard disk)
    0Fh DMA arbitration level out of range (hard disk)
    10h uncorrectable CRC or ECC error on read
    11h data ECC corrected (hard disk)
    20h controller failure
    40h seek failed
    80h timeout (not ready)
    AAh drive not ready (hard disk)
    BBh undefined error (hard disk)
    CCh write fault (hard disk)
    E0h status register error (hard disk)
    FFh sense operation failed (hard disk)

Note

     	some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  status in both AH and AL


INT 13 AH=02

13 - DISK - READ SECTOR(S) INTO MEMORY

AH = 02h
AL = number of sectors to read (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number (bits 0-5)
     high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer

Return

        CF set on error
    if AH = 11h (corrected ECC error), AL = burst length
CF clear if successful
AH = status (see AH=01h)
AL = number of sectors transferred

Notes

      	errors on a floppy may be due to the motor failing to spin up quickly
  enough; the read should be retried at least three times, resetting
  the disk with AH=00h between attempts
AWARD AT BIOS extended to handle more than 1024 cylinders by placing
  bits 10 and 11 of the cylinder number into bits 6 and 7 of DH

SeeAlso

    INT 13 AH=03    INT 13 AH=0A


INT 13 AH=03

13 - DISK - WRITE DISK SECTOR(S)

AH = 03h
AL = number of sectors to write (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number (bits 0-5)
     high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer

Return

        CF set on error
CF clear if successful
AH = status (see AH=01h)
AL = number of sectors transferred

Notes

      	errors on a floppy may be due to the motor failing to spin up quickly
  enough; the write should be retried at least three times, resetting
  the disk with AH=00h between attempts
AWARD AT BIOS extended to handle more than 1024 cylinders by placing
  bits 10 and 11 of the cylinder number into bits 6 and 7 of DH

SeeAlso

    INT 13 AH=02    INT 13 AH=0B


INT 13 AH=04

13 - DISK - VERIFY DISK SECTOR(S)

AH = 04h
AL = number of sectors to verify (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number (bits 0-5)
     high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)

Return

        CF set on error
CF clear if successful
AH = status (see AH=01h)
AL = number of sectors verified

Notes

      	errors on a floppy may be due to the motor failing to spin up quickly
  enough; the write should be retried at least three times, resetting
  the disk with AH=00h between attempts
this function does not compare the disk with memory, it merely
  checks whether the sector's stored CRC matches the data's actual CRC
AWARD AT BIOS extended to handle more than 1024 cylinders by placing
  bits 10 and 11 of the cylinder number into bits 6 and 7 of DH

SeeAlso

    INT 13 AH=02


INT 13 AH=05

13 - FLOPPY - FORMAT TRACK

AH = 05h
AL = number of sectors to format
CH = track number
DH = head number
DL = drive number
ES:BX -> address field buffer (see below)

Return

        CF set on error
CF clear if successful
AH = status (see AH=01h)

Notes

      	on AT or higher, call AH=17h first
the number of sectors per track is read from the diskette parameter
  table pointed at by INT 1E

SeeAlso

    INT 13 AH=05"FIXED"    INT 13 AH=17    INT 13 AH=18    INT 1E

Table Formats

Address field buffer entry (one per sector in track):


INT 13 AH=05

13 - FIXED DISK - FORMAT TRACK

AH = 05h
AL = interleave value (XT-type controllers only)
ES:BX -> 512-byte format buffer
the first 2*(sectors/track) bytes contain F,N for each sector
   F = 00h for good sector, 80h for bad sector
   N = sector number
CH = cylinder number (bits 8,9 in high bits of CL)
CL = high bits of cylinder number (bits 7,6)
DH = head
DL = drive

Return

        AH = status code (see AH=01h)

Notes

      	AWARD AT BIOS extended to handle more than 1024 cylinders by placing
  bits 10 and 11 of the cylinder number into bits 6 and 7 of DH
for XT-type controllers on an AT or higher, AH=0Fh should be called
  first

SeeAlso

    INT 13 AH=05"FLOPPY"    INT 13 AH=06"FIXED"    INT 13 AH=07"FIXED"    INT 13 AH=0F    INT 13 AH=18    INT 13 AH=1A


INT 13 AH=05

13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND

AH = 05h
DL = hard drive ID
ES:BX -> mode select data (see below)

Return

        CF set on error
AH = status code (see AH=01h)

Notes

      	this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  format a SCSI disk with the desired parameters
the mode select data below is from the SCSI-1 specification

SeeAlso

    INT 13 AH=06"SCSI"    INT 13 AH=07"SCSI"

Table Formats

Mode select data:


INT 13 AH=06

13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)

AH = 06h
AL = interleave value
CH = cylinder number (bits 8,9 in high bits of CL)
CL = sector number
DH = head
DL = drive

Return

        AH = status code (see AH=01h)

Note

     	AWARD AT BIOS extended to handle more than 1024 cylinders by placing
  bits 10 and 11 of the cylinder number into bits 6 and 7 of DH

SeeAlso

    INT 13 AH=05"FIXED"    INT 13 AH=07"FIXED"


INT 13 AH=06

13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING

AH = 06h
AL = interleave
     (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
DL = hard drive ID
DH = bits 7-5 drive LUN
     bit 4    defect list is available
     bit 3    defect list is complete (erase drive's defect list)
     bits 2-0 defect table format
      (000=use defect table A, 100=use defect table B,
      101=use defect table C)
ES:BX ->  defect table A, B or C (see below)

Return

        CF set on error
AH = status code (see AH=01h)

Notes

      	block addresses must be in ascending order (for table B, cylinder is
  most significant, byte from index least significant; for table C,
  cylinder is most significant, sector number least significant)
table B defect bytes from index of FFFFFFFFh indicates that the entire
  track shall be reassigned
table C defect sector number of FFFFFFFFh indicates that the entire
  track shall be reassigned

SeeAlso

    INT 13 AH=05"SCSI"    INT 13 AH=06"FIXED"    INT 13 AH=07"SCSI"

Table Formats

Defect table A:
Defect table B:
Defect table C:


INT 13 AH=07

13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)

AH = 07h
AL = interleave value (XT only)
ES:BX = 512-byte format buffer (see AH=05h)
CH = cylinder number (bits 8,9 in high bits of CL)
CL = sector number
DH = head
DL = drive

Return

        AH = status code (see AH=01h)

Note

     	AWARD AT BIOS extended to handle more than 1024 cylinders by placing
  bits 10 and 11 of the cylinder number into bits 6 and 7 of DH

SeeAlso

    INT 13 AH=05"FIXED"    INT 13 AH=06"FIXED"    INT 13 AH=1A


INT 13 AH=07

13 - Future Domain SCSI BIOS - FORMAT DRIVE

AH = 07h
AL = interleave (0 = default, 1 = consecutive sectors,
       2 - 255 = vendor unique)
DL = hard drive ID

Return

        CF set on error
AH = status code (see AH=01h)

SeeAlso

    INT 13 AH=05"SCSI"    INT 13 AH=06"SCSI"    INT 13 AH=07"FIXED"


INT 13 AH=08

13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)

AH = 08h
DL = drive (bit 7 set for hard disk)

Return

        CF set on error
    AH = status (07h) (see AH=01h)
CF clear if successful
    AH = 00h
    BL = drive type (AT/PS2 floppies only)
01h 360K
02h 1.2M
03h 720K
04h 1.44M
06h ??? (checked by 386MAX v6.01)
    CH = low eight bits of maximum cylinder number
    CL = maximum sector number (bits 5-0)
 high two bits of maximum cylinder number (bits 7-6)
    DH = maximum head number
    DL = number of drives
    ES:DI -> drive parameter table (floppies only)

Notes

      	may return successful even though specified drive is greater than the
  number of attached drives of that type (floppy/hard); check DL to
  ensure validity
for systems predating the IBM AT, this call is only valid for hard
  disks, as it is implemented by the hard disk BIOS rather than the
  ROM BIOS
Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.

SeeAlso

    INT 13 AH=15    INT 1EINT 4


INT 13 AH=09

13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)

AH = 09h
DL = drive (80h for first, 81h for second)

Return

        CF clear if successful
CF set on error
AH = status (see AH=01h)

Notes

      	on the PC and XT, this function uses the parameter table pointed at by
  INT 41
on the AT and later, this function uses the parameter table pointed at
  by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  DL=81h

SeeAlso

    INT 41INT 4


INT 13 AH=0A

13 - HARD DISK - READ LONG SECTOR(S) (AT and later)

AH = 0Ah
AL = number of sectors
CH = low eight bits of cylinder number
CL = sector number (bits 5-0)
     high two bits of cylinder number (bits 7-6)
DH = head number
DL = drive number (80h = first, 81h = second)
ES:BX -> data buffer

Return

        CF clear if successful
CF set on error
AH = status (see AH=01h)
AL = number of sectors transferred

Notes

      	this function reads in four to seven bytes of error-correcting code
  along with each sector's worth of information
data errors are not automatically corrected, and the read is aborted
  after the first sector with an ECC error
used for diagnostics only on PS/2 systems

SeeAlso

    INT 13 AH=02    INT 13 AH=0B


INT 13 AH=0B

13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)

AH = 0Bh
AL = number of sectors
CH = low eight bits of cylinder number
CL = sector number (bits 5-0)
     high two bits of cylinder number (bits 7-6)
DH = head number
DL = drive number (80h = first, 81h = second)
ES:BX -> data buffer

Return

        CF clear if successful
CF set on error
AH = status (see AH=01h)
AL = number of sectors transferred

Notes

      	each sector's worth of data must be followed by four to seven bytes of
  error-correction information
used for diagnostics only on PS/2 systems

SeeAlso

    INT 13 AH=03    INT 13 AH=0A


INT 13 AH=0C

13 - HARD DISK - SEEK TO CYLINDER

AH = 0Ch
CH = low eight bits of cylinder number
CL = sector number (bits 5-0)
     high two bits of cylinder number (bits 7-6)
DH = head number
DL = drive number (80h = first, 81h = second hard disk)

Return

        CF set on error
CF clear if successful
AH = status (see AH=01h)

SeeAlso

    INT 13 AH=00    INT 13 AH=02    INT 13 AH=0A


INT 13 AH=0D

13 - HARD DISK - RESET HARD DISKS

AH = 0Dh
DL = drive number (80h = first, 81h = second hard disk)

Return

        CF set on error
CF clear if successful
AH = status (see AH=01h)

Notes

      	reinitializes the hard disk controller, resets the specified drive's
  parameters, and recalibrates the drive's heads (seek to track 0)
not for PS/2 ESDI drives

SeeAlso

    INT 13 AH=00    INT 21 AH=0D


INT 13 AH=0E

13 - HARD DISK - READ SECTOR BUFFER (XT only)

AH = 0Eh
DL = drive number (80h = first, 81h = second hard disk)
ES:BX -> buffer

Return

        CF set on error
CF clear if successful
AH = status code (see AH=01h)

Notes

      	transfers controller's sector buffer.  No data is read from the drive
used for diagnostics only on PS/2 systems

SeeAlso

    INT 13 AH=0A


INT 13 AH=0F

13 - HARD DISK - WRITE SECTOR BUFFER (XT only)

AH = 0Fh
DL = drive number (80h = first, 81h = second hard disk)
ES:BX -> buffer

Return

        CF set on error
CF clear if successful
AH = status code (see AH=01h)

Notes

      	does not write data to the drive
should be called before formatting to initialize an XT-type
  controller's sector buffer
used for diagnostics only on PS/2 systems

SeeAlso

    INT 13 AH=0B


INT 13 AH=10

13 - HARD DISK - CHECK IF DRIVE READY

AH = 10h
DL = drive number (80h = first, 81h = second hard disk)

Return

        CF set on error
CF clear if successful
AH = status (see AH=01h)


INT 13 AH=11

13 - HARD DISK - RECALIBRATE DRIVE

AH = 11h
DL = drive number (80h = first, 81h = second hard disk)

Return

       	CF set on error
CF clear if successful
AH = status (see AH=01h)

Note

     	causes hard disk controller to seek the specified drive to cylinder 0

SeeAlso

    INT 13 AH=00    INT 13 AH=0C    INT 13 AH=19"FIXED DISK"


INT 13 AH=12

13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)

AH = 12h
DL = drive number (80h = first, 81h = second hard disk)

Return

        CF set on error
CF clear if successful
AH = status code (see AH=01h)

SeeAlso

    INT 13 AH=13    INT 13 AH=14


INT 13 AH=12

13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK

AH = 12h
DL = hard drive ID

Return

        CF set on error
AH = status code (see AH=01h)

Notes

      	available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  and either "Disk prepared for shipping" or "Disk Stop command failed"
  is displayed


INT 13 AH=13

13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)

AH = 13h
DL = drive number (80h = first, 81h = second hard disk)

Return

        CF set on error
CF clear if successful
AH = status code (see AH=01h)

SeeAlso

    INT 13 AH=12    INT 13 AH=14


INT 13 AH=14

13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC

AH = 14h

Return

        CF set on error
CF clear if successful
AH = status code (see AH=01h)

SeeAlso

    INT 13 AH=12    INT 13 AH=13


INT 13 AH=15

13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)

AH = 15h
DL = drive number (bit 7 set for hard disk)

Return

       	CF clear if successful
    AH = type code
00h no such drive
01h floppy without change-line support
02h floppy with change-line support
03h hard disk
    CX:DX = number of 512-byte sectors
CF set on error
    AH = status (see AH=01h)

SeeAlso

    INT 13 AH=08    INT 13 AH=16    INT 13 AH=17    INT 13 AH=19"SCSI"


INT 13 AH=16

13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)

AH = 16h
DL = drive number

Return

        CF clear if change line inactive
    AH = 00h (disk not changed)
CF set if change line active
    AH = 06h change line active or not supported
       = 80h drive not ready or not present

Note

     	call AH=15h first to determine whether the drive supports a change
  line

SeeAlso

    INT 13 AH=15


INT 13 AH=17

13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)

AH = 17h
AL = format type
    01h = 320/360K disk in 360K drive
    02h = 320/360K disk in 1.2M drive
    03h = 1.2M disk in 1.2M drive
    04h = 720K disk in 720K drive
DL = drive number

Return

        CF set on error
CF clear if successful
AH = status (see AH=01h)

Note

     	this function does not handle 1.44M drives; use AH=18h instead

SeeAlso

    INT 13 AH=15    INT 13 AH=18


INT 13 AH=18

13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)

AH = 18h
DL = drive number
CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
CL = sectors per track (bits 0-5)
     top 2 bits of highest cylinder number (bits 6,7)

Return

        AH = status
    00h requested combination supported
    01h function not available
    0Ch not supported or drive type unknown
    80h there is no disk in the drive
ES:DI -> 11-byte parameter table

SeeAlso

    INT 13 AH=05    INT 13 AH=07    INT 13 AH=17


INT 13 AH=18

13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION

AH = 18h
DL = hard drive ID

Return

        CF set on error
    AH = status code (see AH=01h)
CF clear if successful
    AX = 4321h (magic number)
    CX = controller family code
0203h TMC-1650/1660/1670/1680 (ROM 2.0)
BH = number of exclusively ROM-controlled SCSI devices
BL = canonical SCSI device number for specified drive
040Ah TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
BH = number of exclusively ROM-controlled SCSI devices
BL = canonical SCSI device number for specified drive
050Dh TMC-840/841/880/881 (ROM 5.2D)
BH = number of exclusively ROM-controlled SCSI devices
BL = canonical SCSI device number for specified drive
0700h TMC-830/850/860/875/885 (ROM 7.0)
DH = number of exclusively ROM-controlled SCSI devices
DL = canonical SCSI device number for specified drive

Note

     	also sets an internal flag (non-resettable) which prevents some
  controller messages from being displayed, allows writes to
  removable devices (use caution!), and enables the INT 13 interface
  for more than one drive (i.e. DL >= 81h) in at least some ROM
  versions

SeeAlso

    INT 13 AH=05"SCSI"    INT 13 AH=1B"SCSI"


INT 13 AH=19

13 - FIXED DISK - PARK HEADS (XT286,PS)

AH = 19h
DL = drive

Return

        CF set on error
AH = status (see AH=01h)

SeeAlso

    INT 13 AH=11


INT 13 AH=19

13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE

AH = 19h
DL = hard drive ID

Return

        CF set on error
    AH = status code (see AH=01h)
CF clear if successful
    AH = disk type (03h = fixed disk)
    CX:DX = number of 512-byte sectors

Notes

      	sends SCSI Read Capacity command to get number of logical blocks and
  adjusts the result for 512-byte sectors
displays either "Error in Read Capacity Command" or "nnn Bytes per
  sector" (nnn=256 or 512, the only sizes supported in the translation
  code)
should probably be called when a removable device has its media changed
returns the same values as AH=15h

SeeAlso

    INT 13 AH=15    INT 13 AH=1A


INT 13 AH=1A

13 - ESDI FIXED DISK - FORMAT UNIT (PS)

AH = 1Ah
AL = defect table count
CL = format modifiers
    bit 4: generate periodic interrupt
    bit 3: perform surface analysis
    bit 2: update secondary defect map
    bit 1: ignore secondary defect map
    bit 0: ignore primary defect map
DL = drive
ES:BX -> defect table

Return

        CF set on error
AH = status (see AH=01h)

Note

     	if periodic interrupt selected, INT 15/AH=0Fh is called after each
  cylinder is formatted

SeeAlso

    INT 13 AH=07    INT 15 AH=0F


INT 13 AH=1A

13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY

AH = 1Ah
CH = track (bits 8,9 in high bits of CL)
CL = sector (01h to number of sectors/track for drive)
DH = head
DL = hard drive ID

Return

        CF set on error
AH = status code (see AH=01h)
CX:DX = logical block number of last quickly-accessible block after
given block

Note

     	sends SCSI Read Capacity command with the PMI bit set to obtain the
  logical block address of the last block after which a substantial
  delay in data transfer will be encountered (usually the last block
  on the current cylinder).  No translation to 512 byte sectors is
  performed on the result if data is stored on the disk in other than
  512 byte sectors.

SeeAlso

    INT 13 AH=15    INT 13 AH=19"SCSI"


INT 13 AH=1B

13 - ESDI FIXED DISK - GET MANUFACTURING HEADER

AH = 1Bh
AL = number of record
DL = drive
ES:BX -> buffer for manufacturing header (defect list)

Return

        CF set on error
    AH = status

Note

     	manufacturing header format (Defect Map Record format) can be found
  in IBM 70MB, 115MB Fixed Disk Drives Technical Reference


INT 13 AH=1B

13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK

AH = 1Bh
DL = hard drive ID

Return

        CF set on error
    AH = status code (see AH=01h)
CF clear if successful
    ES:BX -> SCSI disk information block

Note

     	also sets a non-resettable flag which prevents some controller messages
  from being displayed

SeeAlso

    INT 13 AH=18"SCSI"    INT 13 AH=1C"SCSI"

Table Formats

SCSI disk information block:


INT 13 AH=1C

13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM

AH = 1Ch
DL = hard drive ID (any valid SCSI hard disk)

Return

        CF set on error
    AH = status code (see AH=01h)
CF clear if successful
    ES:BX -> first byte of free RAM on controller

Notes

      	the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  to 1BFFh on-bard the controller for storing drive information and
  controller status; ES:BX points to the first byte available for other
  uses
ES contains the segment at which the controller resides; the
  controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h

SeeAlso

    INT 13 AH=1B"SCSI"


INT 13 AX=1C0A

13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION

AX = 1C0Ah
DL = drive
ES:BX -> buffer for device configuration (drive physical parameter)

Return

        CF set on error
    AH = status

Note

     	device configuration format can be found in IBM ESDI Fixed Disk Drive
  Adapter/A Technical Reference


INT 13 AX=1C0B

13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION

AX = 1C0Bh
ES:BX -> buffer for adapter configuration

Return

        CF set on error
    AH = status

SeeAlso

    INT 13 AX=1C0C


INT 13 AX=1C0C

13 - ESDI FIXED DISK - GET POS INFORMATION

AX = 1C0Ch
ES:BX -> POS information

Return

        CF set on error
    AH = status

SeeAlso

    INT 13 AX=1C0B


INT 13 AX=1C0E

13 - ESDI FIXED DISK - TRANSLATE RBA TO ABA

AX = 1C0Eh
CH = low 8 bits of cylinder number
CL = sector number, high two bits of cylinder number in bits 6 and 7
DH = head number
DL = drive number
ES:BX -> ABA number

Return

        CF set on error
    AH = status

Note

     	ABA (absolute block address) format can be found in IBM ESDI Adapter
  Technical Reference by using its Device Configuration Status Block


INT 13 AH=1D

13 - IBMCACHE.SYS - CACHE STATUS

AH = 1Dh
AL = subfunction
    01h get status record
DL = drive???
Return: ES:BX -> status record
CF set on error
    AH = error code
    02h set cache status
ES:BX -> status record
DL = drive???
Return: CF set on error

Table Formats

Status record:
Error list:


INT 13 AH=20

13 - DISK - ??? (Western Digital "Super BIOS")

AH = 20h
???

Return

        ???

Note

     	seems to return some kind of status


INT 13 AX=20FF

13 - QCACHE - DISMOUNT

AX = 20FFh

Return

        ???


INT 13 AH=21

13 - QCACHE - FLUSH CACHE

AH = 21h

Return

        ???

SeeAlso

    INT 13 AH=25    INT 13 AH=2E


INT 13 AH=22

13 - QCACHE - ENABLE/DISABLE CACHE

AH = 22h
AL = 00h disable cache
     01h enable cache


INT 13 AH=24

13 - QCACHE - SET SECTORS

AH = 24h
BX = number of sectors

Return

        ???


INT 13 AH=25

13 - QCACHE - SET FLUSH INTERVAL

AH = 25h
BC = interval

Return

        ???

SeeAlso

    INT 13 AH=21    INT 13 AH=2E


INT 13 AH=27

13 - QCACHE - INSTALLATION CHECK

AH = 27h
BX = 0000h

Return

        BX nonzero if installed


INT 13 AH=2A

13 - QCACHE - SET BUFFER SIZE

AH = 2Ah
AL = buffer size

Return

        ???


INT 13 AH=2C

13 - QCACHE - SET BUFFERED WRITES

AH = 2Ch
AL = state
    00h disable
    01h enable

Return

        ???

SeeAlso

    INT 13 AH=2D


INT 13 AH=2D

13 - QCACHE - SET BUFFERED READ

AH = 2Dh
AL = state
    00h disable
    01h enable

Return

        ???

SeeAlso

    INT 13 AH=2C


INT 13 AH=2E

13 - QCACHE - SET FLUSH COUNT

AH = 2Eh
BX = flush count

Return

        ???

SeeAlso

    INT 13 AH=21    INT 13 AH=25


INT 13 AH=30

13 - QCACHE - GET INFO

AH = 30h
AL = what to get
    00h system info
    01h drive info
DS:DX -> buffer for info

Return

        ???


INT 13 AX=5504

13 - Seagate - GET CONTROLLER TYPE???

AX = 5504h
DX = drive (bit 7 set for hard disk)

Return

        CF clear if successful
    AX = 4321h,4322h if Seagate controller
CF set on error

SeeAlso

    INT 13 AX=5505    INT 13 AX=5514


INT 13 AX=5505

13 - Seagate - PARK HEADS???

AX = 5505h
DX = drive (bit 7 set for hard disk)

Return

        CF clear if successful
CF set on error

SeeAlso

    INT 13 AX=5504    INT 13 AX=5515


INT 13 AX=5514

13 - Seagate - ???

AX = 5514h
DX = drive (bit 7 set for hard disk)

Return

        CF clear if successful
CF set on error
AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)

SeeAlso

    INT 13 AX=5504    INT 13 AX=5515


INT 13 AX=5515

13 - Seagate - PARK HEADS???

AX = 5515h
DX = drive (bit 7 set for hard disk)

Return

        CF clear if successful
CF set on error

Note

     	appears to be identical to AX=5505h

SeeAlso

    INT 13 AX=5504    INT 13 AX=5505


INT 13 AH=70

13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???

AH = 70h
???

Return

        ???

Note

     	Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  formatting program) make this call, presumably to EDVR.SYS (the
  partitioning driver)

SeeAlso

    INT 13 AH=AD


INT 13 AH=75

13 - ???

AH = 75h
???

Return

        AH = ???
???

Note

     	intercepted by PC-Cache (v5.1 only)


INT 13 AH=76

13 - ???

AH = 76h
???

Return

        AH = ???
???

Note

     	intercepted by PC-Cache (v5.1 only)


INT 13 AX=7B00

13 - NOW! - GET INFORMATION

AX = 7B00h
CX:DX -> 1F8h-byte buffer for information record (see below)

Return

        AX = 0000h
BX = segment of main resident code
ES = ???

Program

         NOW! is a disk cache by Vertisoft Systems, Inc.

SeeAlso

    INT 13 AX=7B02    INT 13 AH=EF

Table Formats

Information record:


INT 13 AX=7B01

13 - NOW! - ???

AX = 7B01h

Return

        DX = segment of ???

SeeAlso

    INT 13 AX=7B00


INT 13 AX=7B02

13 - NOW! - SET INFORMATION

AX = 7B02h
BX = segment of ??? (10h above a PSP)
CX:DX -> 1F8h-byte information record (see AX=7B00h)

Return

        ???

Program

         NOW! is a disk cache by Vertisoft Systems, Inc.

Note

     	NOW! grabs the INT 24h value from the PSP reached via the segment in
  BX

SeeAlso

    INT 13 AX=7B00


INT 13 AX=7B03

13 - NOW! - ???

AX = 7B03h
???

Return

        ???

SeeAlso

    INT 13 AX=7B00    INT 13 AX=7B04


INT 13 AX=7B04

13 - NOW! - ???

AX = 7B04h
???

Return

        ???

SeeAlso

    INT 13 AX=7B03


INT 13 AX=7B05

13 - NOW! - GET ???

AX = 7B05h
BX:AX = number of physical accesses???
DX:CX = total disk accesses???

SeeAlso

    INT 13 AX=7B00    INT 13 AX=7B06


INT 13 AX=7B06

13 - NOW! - GET ???

AX = 7B06h
BX = ???

Return

        AX = 0000h
BX = ???

SeeAlso

    INT 13 AX=7B05    INT 13 AX=7B07


INT 13 AX=7B07

13 - NOW! - GET ???

AX = 7B07h

Return

        AX = ???
BX = ???
CX = ???
DX = ???

SeeAlso

    INT 13 AX=7B06


INT 13 AX=7B08

13 - NOW! - ???

AX = 7B08h
CX = ??? (default 00h)

Return

        ???

SeeAlso

    INT 13 AX=7B00


INT 13 AH=80

13 - FAST! - API

AH = 80h
CX = 6572h
DX = 1970h
ES:BX -> data structure (see below)
AL = function
    01h ???
    04h ???
    05h ???
    06h installation check
Return: AX = 1965h if installed
    07h ???
    09h ???
    0Ah ???
    0Bh ???
    0Ch set ??? flag
    0Dh clear ??? flag

Return

        AH = 00h if successful (except function 06h)

Table Formats

Data structure:


INT 13 AH=81

13 - Super PC Kwik/PC-Cache 5.x - ???

AH = 81h
SI = 4358h
???

Return

        ???

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call
returns immediately in PC-Cache v5.x


INT 13 AH=82

13 - Super PC Kwik/PC-Cache 5.x - ???

AH = 82h
SI = 4358h
???

Return

        AL = ???

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call

SeeAlso

    INT 13 AH=84


INT 13 AH=83

13 - Super PC Kwik/PC-Cache 5.x - ???

AH = 83h
SI = 4358h
AL = ???
ES:BX -> ???
???

Return

        ???

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call

SeeAlso

    INT 13 AH=85


INT 13 AH=84

13 - Super PC Kwik/PC-Cache 5.x - ???

AH = 84h
SI = 4358h
AL = ???
???

Return

        AL = ???

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call

SeeAlso

    INT 13 AH=82


INT 13 AH=85

13 - Super PC Kwik/PC-Cache 5.x - ???

AH = 85h
SI = 4358h
AL = ???
DL = ???
???

Return

        ???

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call

SeeAlso

    INT 13 AH=83


INT 13 AH=86

13 - Qualitas Qcache v4.00 - ???

AH = 86h
SI = 4358h
???

Return

        ???


INT 13 AH=87

13 - Qualitas Qcache v4.00 - ???

AH = 87h
SI = 4358h
???

Return

        ???


INT 13 AH=88

13 - Qualitas Qcache v4.00 - ???

AH = 88h
SI = 4358h
???

Return

        ???


INT 13 AX=8EED

13 - HyperDisk v4.01+ - ???

AX = 8EEDh
???

Return

        ???

Note

     	HyperDisk is a shareware disk cache by HyperWare (Roger Cross)

SeeAlso

    INT 13 AX=8EEE    INT 13 AX=8EEF    INT 13 AH=EE    INT 2F AH=DF


INT 13 AX=8EEE

13 - HyperDisk v4.01+ - ???

AX = 8EEEh

Return

        CF set
AX = CS of HyperDisk resident code
???

Note

     	identical to AX=8EEFh in HYPERDKX v4.21-4.30

SeeAlso

    INT 13 AX=8EED    INT 13 AX=8EEF    INT 13 AH=EE


INT 13 AX=8EEF

13 - HyperDisk v4.01+ - ???

AX = 8EEFh

Return

        CF set
AX = CS of HyperDisk resident code
???

Note

     	identical to AX=8EEEh in HYPERDKX v4.21-4.30

SeeAlso

    INT 13 AX=8EED    INT 13 AX=8EEE    INT 13 AH=EE


INT 13 AH=A0

13 - Super PC Kwik - GET RESIDENT CODE SEGMENT

AH = A0h
SI = 4358h

Return

        AX = segment of resident code

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call

SeeAlso

    INT 16 AX=FFA5    /CX=1111


INT 13 AH=A1

13 - Super PC Kwik - FLUSH CACHE

AH = A1h
SI = 4358h

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call

SeeAlso

    INT 16 AX=FFA5    /CX=FFFF


INT 13 AH=A2

13 - Super PC Kwik - ???

AH = A2h
SI = 4358h
???

Return

        ???

Note

     	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  Super PC Kwik, and thus support this call


INT 13 AH=A5

13 C - Super PC Kwik - ???

AH = A5h
SI = ???

Return

        AX = ???
SI = ???

Notes

      	called when a program terminates but stays resident (see INT 21/AH=31h)
this call is not supported by Qualitas Qcache 4.00


INT 13 AH=AA

13 - Qualitas Qcache v4.00 - ???

AH = AAh
SI = 4358h
???

Return

        ???


INT 13 AH=AB

13 - Qualitas Qcache v4.00 - ???

AH = ABh
SI = 4358h
???

Return

        ???


INT 13 AH=AC

13 - Qualitas Qcache v4.00 - ???

AH = ACh
SI = 4358h
???

Return

        ???


INT 13 AH=AD

13 - Priam HARD DISK CONTROLLER???

AH = ADh
???

Return

        ???

Note

     	this call is made from Priam's EFMT.EXE (low-level formatter), probably
  to check the ROM type on the controller for their hard disk kits

SeeAlso

    INT 13 AH=70


INT 13 AH=AD

13 - Qualitas Qcache v4.00 - ???

AH = ADh
SI = 4358h
???

Return

        ???


INT 13 AH=B0

13 - Super PC Kwik - ???

AH = B0h
SI = 4358h
???

Return

        ???

Note

     	PC Tools PC-Cache 5.x is an OEM version of Super PC Kwik, and thus
  supports this call; Qualitas Qcache does not support it


INT 13 AH=EE

13 - SWBIOS - SET 1024 CYLINDER FLAG

AH = EEh
DL = drive number (80h, 81h)

Return

        CF clear
   AH = 00h

Notes

      	the following INT 13 call will interpret the cylinder number as 1024
  less than the desired cylinder
flag cleared by all INT 13 calls except AH=EEh
SWBIOS is a TSR by Ontrack Computer Systems; Disk Manager also supports
  these calls
also supported by HyperDisk v4.01+ and PC-Cache v5.5+, in order to allow
  caching of drives using SWBIOS to access more than 1024 cylinders

SeeAlso

    INT 13 AH=F9    INT 13 AH=FE    INT 16 AX=FFA5    /CX=1111h    INT 2F AH=DF


INT 13 AH=EF

13 - NOW! - ???

AH = EFh
CX = ???
DL = ???
???

Return

        ???

SeeAlso

    INT 13 AX=7B00


INT 13 AH=F9

13 - SWBIOS - INSTALLATION CHECK

AH = F9h
DL = drive number (80h,81h)

Return

        CF clear
    DX = configuration word
bit 15 set if other SWBIOS extensions available
CF set on error

Note

     	SWBIOS is a TSR by Ontrack Computer Systems; Disk Manager also supports
  these calls

SeeAlso

    INT 13 AH=EE


INT 13 AH=FA

13 - PC Tools v8+ VSAFE, VWATCH - API

AH = FAh
DX = 5945h
AL = function (00h-07h)

Return

        varies by function

Note

     	this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  so it is listed in its entirety under INT 16/AX=FA00h and following

SeeAlso

    INT 16 AX=FA00


INT 13 AH=FE

13 - SWBIOS - GET EXTENDED CYLINDER COUNT

AH = FEh
DL = drive number (80h, 81h)

Return

        CF clear
DX = number of cylinders beyond 1024 on drive

Notes

      	standard INT 13/AH=08h will return a cylinder count truncated to 1024
BIOS without this extension would return count modulo 1024
SWBIOS is a TSR by Ontrack Computer Systems; Disk Manager also supports
  these calls

SeeAlso

    INT 13 AH=EE


INT 14

14 - SERIAL I/O- Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)

Note

     	the installation check for this driver is to determine whether the
  "~DOSXAM~" character device exists


INT 14 AH=00

14 - SERIAL - INITIALIZE PORT

AH = 00h
AL = port parameters
    bits 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
    bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
    bit 2    stop bits (set = 2, clear = 1)
    bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)

Return

        AH = line status (see AH=03h)
    FFh if error on Digiboard XAPCM232.SYS
AL = modem status (see AH=03h)

Notes

      	default handler is at F000h:E739h in IBM PC and 100% compatible BIOSes
since the PCjr supports a maximum of 4800 bps, attempting to set 9600
  bps will result in 4800 bps
various network and serial-port drivers support the standard BIOS
  functions with interrupt-driven I/O instead of the BIOS's polled I/O

SeeAlso

    INT 14 AH=04"SERIAL"    INT 14 AH=04"MultiDOS"    INT 14 AH=05"SERIAL"    INT 14 AX=8000"ARTICOM"

SeeAlso

    INT 14 AH=81"COMM-DRV"    INT 14 AH=82"COURIERS"    INT 14 AH=8C


INT 14 AH=00

14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE

AH = 00h
AL = initializing parameters
    7 - 6 - 5	   4 - 3     2	  1 - 0
    -BAUD RATE-	   PARITY   STOP   WORD
    BITS  LENGTH
    000 19200 bd   00 none  0: 1  00: 5
    001 38400 bd   01 odd   1: 2  01: 6
    010	  300 bd   11 even	  10: 7
    011	  600 bd	  11: 8
    100	 1200 bd
    101	 2400 bd
    110	 4800 bd
    111	 9600 bd (4800 on PCjr)
DX = port number (0-3 or FFh if only performing non-I/O setup)

Return

        AH = RS-232 status code bits
    0: RDA - input data is available in buffer
    1: OVRN - data has been lost
    5: THRE - room is available in output buffer
    6: TSRE - output buffer empty
AL = modem status bits
    3: always 1
    7: DCD - carrier detect

SeeAlso

    INT 14 AH=05"FOSSIL"    INT 14 AH=81"COMM-DRV"    INT 14 AH=82"COURIERS"


INT 14 AH=00

14 - MBBIOS - INITIALIZE PORT

AH = 00h
AL = port parameters
    bits 7-5 data rate
(normally 110,150,300,600,1200,2400,4800,9600 bps;
9600,14400,19200,28800,38400,57600,115200,330400 bps
if the high-speed option is set)
    bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
    bit 2    stop bits (set = 2, clear = 1)
    bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
DX = port number

Return

        AH = line status (see AH=03h)
AL = modem status (see AH=03h)

Note

     	MBBIOS was written by H. Roy Engehausen

SeeAlso

    INT 14 AH=04"MBBIOS"    INT 14 AH=05"MBBIOS"


INT 14 AH=01

14 - SERIAL - WRITE CHARACTER TO PORT

AH = 01h
AL = character to write
DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)

Return

        AH bit 7 clear if successful
AH bit 7 set on error
AH bits 6-0 = port status (see AH=03h)

Note

     	various network and serial-port drivers support the standard BIOS
  functions with interrupt-driven I/O instead of the BIOS's polled I/O

SeeAlso

    INT 14 AH=02    INT 14 AH=0B"FOSSIL"    INT 14 AX=8000"ARTICOM"    INT 14 AH=89


INT 14 AH=02

14 - SERIAL - READ CHARACTER FROM PORT

AH = 02h
AL = 00h (ArtiCom)
DX = port number (00h-03h (04h-43h for Digiboard XAPCM232.SYS))

Return

        AH = line status (see AH=03h)
AL = received character if AH bit 7 clear

Notes

      	will timeout if DSR is not asserted, even if function 03h returns
  data ready
various network and serial-port drivers support the standard BIOS
  functions with interrupt-driven I/O instead of the BIOS's polled I/O

SeeAlso

    INT 14 AH=01    INT 14 AH=02"FOSSIL"    INT 14 AH=84    INT 14 AH=FC


INT 14 AH=02

14 - FOSSIL - RECEIVE CHARACTER WITH WAIT

AH = 02h
DX = port number (0-3)

Return

        AL = character received
AH = 00h

SeeAlso

    INT 14 AH=01    INT 14 AH=02"SERIAL"


INT 14 AH=03

14 - SERIAL - GET PORT STATUS

AH = 03h
AL = 00h (ArtiCom)
DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)

Return

        AH = line status
    bit 7: timeout
6: transmit shift register empty
5: transmit holding register empty
4: break detected
3: framing error
2: parity error
1: overrun error
0: receive data ready
AL = modem status
    bit 7: carrier detect
6: ring indicator
5: data set ready
4: clear to send
3: delta carrier detect
2: trailing edge of ring indicator
1: delta data set ready
0: delta clear to send
AX = 9E00h if disconnected (ArtiCom)

SeeAlso

    INT 14 AH=00    INT 14 AH=07"MultiDOS"    INT 14 AX=8000"ARTICOM"    INT 14 AH=81"COURIERS"    INT 14 AX=FD02


INT 14 AH=04

14 - SERIAL I/O - EXTENDED INITIALIZE (CONVERTIBLE,PS)

AH = 04h
AL = break status
    00h if break
    01h if no break
BH = parity
    00h no parity
    01h odd parity
    02h even parity
    03h stick parity odd
    04h stick parity even
BL = number of stop bits
    00h one stop bit
    01h two stop bits (1.5 if 5 bit word length)
CH = word length
    00h 5 bits
    01h 6 bits
    02h 7 bits
    03h 8 bits
CL = bps rate
    00h 110
    01h 150
    02h 300
    03h 600
    04h 1200
    05h 2400
    06h 4800
    07h 9600
    08h 19200
DX = port number

Return

        AX = port status code (see AH=00h)

SeeAlso

    INT 14 AH=00    INT 14 AH=1E    INT 14 AX=8000"ARTICOM"


INT 14 AH=04

14 - FOSSIL - INITIALIZE DRIVER

AH = 04h
DX = port number
optionally BX=4F50h
   ES:CX -> byte to be set upon ^C

Return

        AX = 1954h (if successful)
BL = maximum function number supported (excluding 7Eh and above)
BH = revision of FOSSIL supported
DTR is raised

Note

     	the word at offset 6 in the interrupt handler contains 1954h, and the
  following byte contains the maximum function number supported

SeeAlso

    INT 14 AH=05"FOSSIL"    INT 14 AH=1C


INT 14 AH=04

14 - MultiDOS Plus IODRV - INITIALIZE PORT

AH = 04h

Return

        port initialized; if Hayes-compatible modem, a connection has been
  established

Note

     	the port number is stored at offset BEh in the Task Control Block
  (see INT 15/AH=13h"MultiDOS")

SeeAlso

    INT 14 AH=00    INT 14 AH=05"MultiDOS"    INT 14 AH=20"MultiDOS"    INT 15 AH=13"MultiDOS"


INT 14 AH=04

14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE

AH = 04h
AL = initializing parameters
    bits 7-5 unused
    bits 4,3: parity (00 none, 01 odd, 11 even)
    bit 2: stop bits (0 = one, 1 = two)
    bits 1,0: data bits (00 = five, 01 = six, 10 = seven, 11 = eight)
BX = baud rate
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    FFh error

SeeAlso

    INT 14 AH=05"Digiboard"


INT 14 AH=04

14 - MBBIOS - INQUIRY

AH = 04h

Return

        AH = AAh
AL = 55h

SeeAlso

    INT 14 AH=00"MBBIOS"    INT 14 AH=09"MBBIOS"


INT 14 AH=05

14 - SERIAL I/O - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)

AH = 05h
AL = 00h read modem control register
      Return: BL = modem control register (see below)
      AH = status
AL = 01h write modem control register
      BL = modem control register
  bit 0: data terminal ready
  bit 1: request to send
  bit 2: OUT1
  bit 3: OUT2
  bit 4: LOOP
  bits 5-7 reserved
      Return: AX = status
DX = port number

Note

     	also supported by ArtiCom

SeeAlso

    INT 14 AH=00    INT 14 AH=1F    INT 14 AX=8000"ARTICOM"


INT 14 AH=05

14 - FOSSIL - DEINITIALIZE DRIVER

AH = 05h
DX = port number

Return

        none
DTR is not affected

SeeAlso

    INT 14 AH=00    INT 14 AH=04"FOSSIL"    INT 14 AH=1D    INT 14 AH=8D


INT 14 AH=05

14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT

AH = 05h
AL = timeout in seconds (00h = never)

Return

        AL = status
    00h successful
AH = character read
    01h read error
    02h timed out
    other modem status (CTS, DSR) changed

Note

     	the port number is stored at offset BEh in the Task Control Block

SeeAlso

    INT 14 AH=02    INT 14 AH=04"MultiDOS"    INT 14 AH=06"MultiDOS"    INT 14 AH=22"MultiDOS"

SeeAlso

    INT 15 AH=13"MultiDOS"


INT 14 AH=05

14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL

AH = 05h
AL = protocol
    bits 7-4 unused
    bit 3: RTS/CTS
    bit 2: DSR
    bits 1,0: XON/XOFF
BH = new XOFF character (00h = current)
BL = new XON character (00h = current)
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    FFh error

SeeAlso

    INT 14 AH=04"Digiboard"


INT 14 AH=05

14 - MBBIOS - DROP DTR AND RTS

AH = 05h
DX = port number

Return

        none

SeeAlso

    INT 14 AH=00"MBBIOS"    INT 14 AH=06"MBBIOS"    INT 14 AH=06"FOSSIL"


INT 14 AH=06

14 - FOSSIL - RAISE/LOWER DTR

AH = 06h
DX = port
AL = DTR state to be set
    00h = lower
    01h = raise

SeeAlso

    INT 14 AH=05"MBBIOS"    INT 14 AH=1A


INT 14 AH=06

14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT

AH = 06h
AL = character

Return

        AL = status
    00h successful

Notes

      	the port number is stored at offset BEh in the Task Control Block
if output queue is full, the calling task is blocked until the
  character can be stored

SeeAlso

    INT 14 AH=01    INT 14 AH=04"MultiDOS"    INT 14 AH=05"MultiDOS"    INT 14 AH=21"MultiDOS"

SeeAlso

    INT 15 AH=13"MultiDOS"


INT 14 AH=06

14 - MBBIOS - RAISE DTR AND RTS

AH = 06h
DX = port number

Return

        none

SeeAlso

    INT 14 AH=05"MBBIOS"    INT 14 AH=07"MBBIOS"


INT 14 AH=07

14 - FOSSIL - RETURN TIMER TICK PARAMETERS

AH = 07h

Return

        AL = timer tick interrupt number
AH = ticks per second on interrupt number in AL
DX = approximate number of milliseconds per tick

SeeAlso

    INT 14 AH=16


INT 14 AH=07

14 - MultiDOS Plus IODRV - GET PORT STATUS

AH = 07h

Return

        CL = modem status (see AH=03h)
CH = character at head of input queue (if any)
DX = number of characters in input queue

Note

     	the port number is stored at offset BEh in the Task Control Block

SeeAlso

    INT 14 AH=03    INT 14 AH=05"MultiDOS"    INT 14 AH=08"MultiDOS"    INT 14 AH=09"MultiDOS"

SeeAlso

    INT 14 AH=23"MultiDOS"    INT 15 AH=13"MultiDOS"


INT 14 AH=07

14 - MBBIOS - SEND BREAK

AH = 07h
DX = port number

Return

        none

SeeAlso

    INT 14 AH=06"MBBIOS"


INT 14 AH=08

14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE

AH = 08h
DX = port number

SeeAlso

    INT 14 AH=09"FOSSIL"


INT 14 AH=08

14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS

AH = 08h

Return

        AL = line status (see AH=03h)
AH destroyed

Notes

      	the port number is stored at offset BEh in the Task Control Block
on every line status change, the line status is ORed with the line
  status accumulator; this function returns the accumulator and clears
  it

SeeAlso

    INT 14 AH=03    INT 14 AH=04"MultiDOS"    INT 14 AH=07"MultiDOS"    INT 15 AH=13"MultiDOS"


INT 14 AH=08

14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK

AH = 08h
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = RS232 status bits (see AH=03h)
ZF set if no characters queued
ZF clear if character available
    AL = next character

SeeAlso

    INT 14 AH=03    INT 14 AH=09"Digiboard"


INT 14 AH=08

14 - MBBIOS - NON-DESTRUCTIVE READ

AH = 08h
DX = port number

Return

        AL = character
AH = status (see AH=02h)

SeeAlso

    INT 14 AH=0B"MBBIOS"    INT 14 AH=0C"FOSSIL"


INT 14 AH=09

14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT

AH = 09h
DX = port number

SeeAlso

    INT 14 AH=08"FOSSIL"    INT 14 AH=0A"FOSSIL"    INT 14 AH=88


INT 14 AH=09

14 - MultiDOS Plus IODRV - RESET PORT STATUS

AH = 09h

Return

        modem status byte cleared

Note

     	the port number is stored at offset BEh in the Task Control Block

SeeAlso

    INT 14 AH=04"MultiDOS"    INT 14 AH=07"MultiDOS"    INT 15 AH=13"MultiDOS"


INT 14 AH=09

14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS

AH = 09h
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    FFh error

SeeAlso

    INT 14 AH=08"Digiboard"    INT 14 AH=0A"Digiboard"    INT 14 AH=10"Digiboard"


INT 14 AH=09

14 - MBBIOS - GET/SET OPTIONS

AH = 09h
AL = option byte
00000001b - Transmit Buffering Enabled
00000101b - Hardware Handshaking Enabled
00100000b - High Speed Option Enabled
DX = port number???

Return

        AL = old option byte

SeeAlso

    INT 14 AH=04"MBBIOS"    INT 14 AH=10"FOSSIL"


INT 14 AH=0A

14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT

AH = 0Ah
DX = port number

SeeAlso

    INT 14 AH=09"FOSSIL"    INT 14 AH=85


INT 14 AH=0A

14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK

AH = 0Ah
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AX = number of characters available in buffer

SeeAlso

    INT 14 AH=09"Digiboard"    INT 14 AH=0D"Digiboard"


INT 14 AH=0A

14 - MBBIOS - WRITE BUFFER

AH = 0Ah
CX = count
ES:DI -> buffer

Return

        AX = status (see AH=03h)
DI = is updated
CX = unsent character count

SeeAlso

    INT 14 AH=0B"MBBIOS"    INT 14 AH=19"FOSSIL"


INT 14 AH=0B

14 - FOSSIL - TRANSMIT NO WAIT

AH = 0Bh
AL = character
DX = port number

Return

        AX = 0000h character not accepted
   = 0001h character accepted

SeeAlso

    INT 14 AH=01


INT 14 AH=0B

14 - MBBIOS - READ BUFFER

AH = 0Bh
CX = size of buffer
ES:DI -> buffer

Return

        AH = LSR
AL = MSR
CX = count of characters
DI = is updated

SeeAlso

    INT 14 AH=08"MBBIOS"    INT 14 AH=0A"MBBIOS"    INT 14 AH=18"FOSSIL"


INT 14 AH=0C

14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD

AH = 0Ch
DX = port number

Return

        AX = FFFFh character not available
AX = 00xxh character xx available

SeeAlso

    INT 14 AH=08"MBBIOS"    INT 14 AH=20"FOSSIL"


INT 14 AH=0D

14 - FOSSIL - KEYBOARD READ WITHOUT WAIT

AH = 0Dh

Return

        AX = FFFFh character not available
   = xxyyh standard IBM-style scan code

SeeAlso

    INT 14 AH=0E


INT 14 AH=0D

14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG

AH = 0Dh
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        ES:BX -> CH_KEY_RDY flag

SeeAlso

    INT 14 AH=0A"Digiboard"

Values for CH_KEY_RDY flag:
 00h	receive buffer empty
 FFh	characters available


INT 14 AH=0E

14 - FOSSIL - KEYBOARD READ WITH WAIT

AH = 0Eh

Return

        AX = xxyyh standard IBM-style scan code

SeeAlso

    INT 14 AH=0D"FOSSIL"


INT 14 AH=0E

14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING

AH = 0EH
CX = number of characters to write
ES:BX -> string
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AX = number of characters actually written
ZF clear if successful
ZF set on error

SeeAlso

    INT 14 AH=0F"Digiboard"


INT 14 AH=0F

14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL

AH = 0Fh
AL = bit mask describing flow control requested
    0: xon/xoff on transmit (watch for xoff while sending)
    1: CTS/RTS (CTS on transmit/RTS on receive)
    2: reserved
    3: xon/xoff on receive (send xoff when buffer near full)
    4-7: all 1
DX = port number

SeeAlso

    INT 14 AH=09"MBBIOS"    INT 14 AH=10"FOSSIL"


INT 14 AH=0F

14 - Digiboard DigiCHANNEL PC/X* - READ STRING

AH = 0Fh
CX = number of characters to read
ES:BX -> buffer
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AX = number of characters read
ZF clear if successful
ZF set on error (line status or wrong number of characters)

SeeAlso

    INT 14 AH=0E"Digiboard"


INT 14 AH=10

14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF

AH = 10h
AL = bit mask
    0: enable/disable ^C/^K checking
    1: enable/disable the transmitter
DX = port number

SeeAlso

    INT 14 AH=0F"FOSSIL"


INT 14 AH=10

14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER

AH = 10h
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    FFh error

SeeAlso

    INT 14 AH=09"Digiboard"    INT 14 AH=11"Digiboard"


INT 14 AH=11

14 - FOSSIL - SET CURRENT CURSOR LOCATION

AH = 11h
DH = row
DL = column

Note

     	this is the same as INT 10/AH=02h

SeeAlso

    INT 14 AH=12"FOSSIL"


INT 14 AH=11

14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER

AH = 11h
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    FFh error

SeeAlso

    INT 14 AH=09"Digiboard"    INT 14 AH=10"Digiboard"


INT 14 AH=12

14 - FOSSIL - READ CURRENT CURSOR LOCATION

AH = 12h

Return

        DH = row
DL = column

Note

     	this is the same as INT 10/AH=03h

SeeAlso

    INT 14 AH=11"FOSSIL"


INT 14 AH=12

14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE

AH = 12h
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AX = number of bytes free

SeeAlso

    INT 14 AH=0A"Digiboard"


INT 14 AH=13

14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN

AH = 13h
AL = character

Note

     	should not be called if it is unsafe to call DOS

SeeAlso

    INT 14 AH=15


INT 14 AH=14

14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING

AH = 14h
AL = 01h enable watchdog
     00h disable watchdog
DX = port number


INT 14 AH=15

14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES

AH = 15h
AL = character

SeeAlso

    INT 14 AH=13


INT 14 AH=16

14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN

AH = 16h
AL = function
    00h = delete
    01h = add
ES:DX -> routine to call

Return

        AX = status
    0000h successful
    0001h unsuccessful

SeeAlso

    INT 14 AH=07"FOSSIL"


INT 14 AH=16

14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND

AH = 16h
AL = CCB command number (see below)
BL = byte 2
BH = byte 3
CL = byte 1 (for all channel functions except 4Eh and 4Fh)
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    FFh error

SeeAlso

    INT 14 AH=18"Digiboard"

Values for CCB command number:
 40h Set Receive Mid Water Mark
 41h Set Receive High Water Mark
 42h Flush Receive Buffer
 43h Flush Transmit Buffer
 44h Transmit Pause
 45h Transmit Resume
 46h Set Interrupt to Host Mask
 47h Set Baud, Data, Stop and Parity
 48h Send Break
 49h Set Modem Lines
 4Ah Set Break Count
 4Bh Set Handshake
 4Ch Set Xon/Xoff Characters
 4Dh Set Transmit Mid Water Mark
 4Eh IRQ Polling Timer to Host
 4Fh Buffer Set All
 50h Port On
 51h Port Off
 52h Receive Pause
 53h Special Character Interrupt
 54h RS-422 Enable


INT 14 AH=17

14 - FOSSIL - REBOOT SYSTEM

AH = 17h
AL = method
    00h = cold boot
    01h = warm boot

SeeAlso

    INT 19


INT 14 AH=18

14 - FOSSIL - READ BLOCK

AH = 18h
CX = maximum number of characters to transfer
DX = port number
ES:DI -> user buffer

Return

        AX = number of characters transferred

SeeAlso

    INT 14 AH=19"FOSSIL"    INT 14 AH=83"COURIERS"    INT 14 AX=FF02    INT 6B AX=0100


INT 14 AH=18

14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND

AH = 18h
ES:BX -> 16-byte command string
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    80h timeout
AL = mailbox status
    00h no errors
    8Xh BIOS error
ES:BX buffer filled in with mailbox string
ZF clear if no errors
ZF set if either status byte contains an error code

SeeAlso

    INT 14 AH=16"Digiboard"


INT 14 AH=19

14 - FOSSIL - WRITE BLOCK

AH = 19h
CX = maximum number of characters to transfer
DX = port number
ES:DI -> user buffer

Return

        AX = number of characters transferred

SeeAlso

    INT 14 AH=18"FOSSIL"    INT 14 AH=86    INT 6B AX=0000


INT 14 AH=19

14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT

AH = 19h
BL = flag
    00h disable special character interrupt
    FFh enable interrupt
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        AH = status
    00h successful
    FFh failed

SeeAlso

    INT 14 AH=1A"Digiboard"


INT 14 AH=1A

14 - FOSSIL - BREAK BEGIN OR END

AH = 1Ah
AL = 00h stop sending 'break'
     01h start sending 'break'
DX = port number

SeeAlso

    INT 14 AH=06"FOSSIL"    INT 14 AH=8A    INT 14 AH=FA


INT 14 AH=1A

14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER

AH = 1Ah
BX = subfunction
    00h return pointer to special character flag byte
    01h return pointer to special character counter word
DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)

Return

        ES:BX -> special character flag or counter

Notes

      	flag is FFh if one or more special characters are in the receive
  buffer; it is 00h and the counter is invalid if no special characters
  are in the receive buffer
counter (if valid) contains the number of characters in the receive
  buffer up to and including the last-received special character


INT 14 AH=1B

14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER

AH = 1Bh
DX = port number
CX = size of user buffer
ES:DI -> user buffer for driver info (see below)

Return

        AX = number of characters transferred
CX = 3058h ("0X") (X00 FOSSIL only)
DX = 2030h (" 0") (X00 FOSSIL only)

Table Formats

Driver info:


INT 14 AH=1C

14 - X00 FOSSIL - ACTIVATE PORT

AH = 1Ch
DX = port number

Return

        AX = 1954h if successful
BL = maximum function number supported (not including 7Eh and above)
BH = revision of FOSSIL specification supported

Note

     	this is a duplicate of AH=04h, so that AH=04h may be made compatible
  with the PS/2 BIOS in a future release

SeeAlso

    INT 14 AH=04"FOSSIL"    INT 14 AH=1D


INT 14 AH=1D

14 - X00 FOSSIL - DEACTIVATE PORT

AH = 1Dh
DX = port number

Return

        none

Notes

      	this is a duplicate of AH=05h, so that AH=05h may be made compatible
  with the PS/2 BIOS in a future release
ignored if the port was never activated with AH=04h or AH=1Ch

SeeAlso

    INT 14 AH=05"FOSSIL"    INT 14 AH=1C


INT 14 AH=1E

14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION

AH = 1Eh
AL = break status
    00h if break
    01h if no break
BH = parity
    00h no parity
    01h odd parity
    02h even parity
    03h stick parity odd
    04h stick parity even
BL = number of stop bits
    00h one stop bit
    01h two stop bits (1.5 if 5 bit word length)
CH = word length
    00h 5 bits
    01h 6 bits
    02h 7 bits
    03h 8 bits
CL = bps rate
    00h 110
    01h 150
    02h 300
    03h 600
    04h 1200
    05h 2400
    06h 4800
    07h 9600
    08h 19200
DX = port number

Return

        AX = port status code (see AH=00h)

Notes

      	this function is intended to exactly emulate the PS/2 BIOS AH=04h call
if the port was locked at X00 load time, the appropriate parameters are
  ignored

SeeAlso

    INT 14 AH=00    INT 14 AH=04"SERIAL I/O"


INT 14 AH=1F

14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL

AH = 1Fh
AL = 00h read modem control register
      Return: BL = modem control register (see below)
      AH = status
AL = 01h write modem control register
      BL = modem control register
  bit 0: data terminal ready
  bit 1: request to send
  bit 2: OUT1
  bit 3: OUT2 (interrupts) enabled
  bit 4: LOOP
  bits 5-7 reserved
      Return: AX = status
DX = port number

SeeAlso

    INT 14 AH=00    INT 14 AH=05"SERIAL I/O"

Notes

      	this function is intended to exactly emulate the PS/2 BIOS AH=05h call
X00 forces BL bit 3 set (interrupts cannot be disabled)


INT 14 AH=20

14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT

AH = 20h
DX = port number

Return

        AH = 00h if character was available
    AL = next character (removed from receive buffer)
AX = FFFFh if no character available

SeeAlso

    INT 14 AH=0C    INT 14 AH=21"X00"


INT 14 AH=20

14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT

AH = 20h
AL = logical port (01h COM1, 02h COM2)
DX = physical port number

Return

        AX = status
    0000h successful
    FFFFh failed

SeeAlso

    INT 14 AH=21"Alloy"    INT 14 AH=22"Alloy"    INT 14 AH=23"Alloy"    INT 17 AH=8B"Alloy"


INT 14 AH=20

14 - MultiDOS Plus - INITIALIZE PORT

AH = 20h
AL = port parameters (see AH=00h"SERIAL")
DX = port number (0-3)

Return

        AH = status
    00h successful
    41h no such port
    64h monitor mode already active

SeeAlso

    INT 14 AH=00"SERIAL"    INT 14 AH=04"MultiDOS"    INT 14 AH=21"MultiDOS"    INT 14 AH=23"MultiDOS"


INT 14 AH=21

14 - X00 FOSSIL - STUFF RECEIVE BUFFER

AH = 21h
AL = character
DX = port number

Notes

      	the given character is inserted at the end of the receive buffer as if
  it had just arrived from the serial port; all normal receive
  processing (XON/XOFF, ^C/^K) is performed on the character
fully re-entrant

SeeAlso

    INT 14 AH=20"X00"


INT 14 AH=21

14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT

AH = 21h
DX = physical port number

Return

        AX = status
    0000h successful
    FFFFh failed

SeeAlso

    INT 14 AH=20"Alloy"    INT 14 AH=22"Alloy"


INT 14 AH=21

14 - MultiDOS Plus - TRANSMIT CHARACTER

AH = 21h
AL = character to send
DX = port number

Return

        AH = status
    00h successful
    39h no DSR or CTS
    3Ch no DSR
    3Bh no CTS
    41h no such port
    42h monitor mode not active
    97h timed out

Note

     	monitor mode must have been turned on with AH=24h before calling

SeeAlso

    INT 14 AH=20"MultiDOS"    INT 14 AH=22"MultiDOS"    INT 14 AH=24"MultiDOS"


INT 14 AH=22

14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT

AH = 22h
AL = logical port (01h COM1, 02h COM2)

Return

        AX = status (0000h successful)

SeeAlso

    INT 14 AH=20"Alloy"    INT 14 AH=21"Alloy"


INT 14 AH=22

14 - MultiDOS Plus - RECEIVE CHARACTER

AH = 22h
DX = port number

Return

        AH = status (see also AH=21h"MultiDOS")
    00h successful
AL = character
    3Dh framing and parity error
    3Eh overrun error
    3Fh framing error
    40h parity error
    96h ring buffer overflow

Note

     	if no character is available, this function waits until a character
  arrives or an implementation-dependent timeout elapses

SeeAlso

    INT 14 AH=20"MultiDOS"    INT 14 AH=21"MultiDOS"    INT 14 AH=27


INT 14 AH=23

14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID

AH = 23h
AL = logical port (01h COM1, 02h COM2)
DH = user ID
DL = process ID (DH,DL both FFh for current task)

Return

        AL = MW386 port mode
    bit 0: port is shared (spooler only)
1: port is spooled instead of direct (spooler only)
2: port is assigned as logical COM device, not in spooler
3: port is free
CX = MW386 port number
DH = owner's user ID
DL = owner's task ID

SeeAlso

    INT 14 AH=20"Alloy"    INT 17 AH=8B"Alloy"


INT 14 AH=23

14 - MultiDOS Plus - GET PORT STATUS

AH = 23h
DX = port number

Return

        AH = line status (see AH=03h)
AL = modem status (see AH=03h)

SeeAlso

    INT 14 AH=03    INT 14 AH=07"MultiDOS"    INT 14 AH=20"MultiDOS"


INT 14 AH=24

14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS

AH = 24h
CX = physical I/O port number
DS:DX -> configuration table (see below)

Return

        AH = 00h

Note

     	invalid port numbers are merely ignored

SeeAlso

    INT 17 AH=96

Table Formats

Configuration table:


INT 14 AH=24

14 - MultiDOS Plus - SET MONITOR MODE

AH = 24h
AL = port status storage
    00h single status for entire receive buffer
    01h separate status kept for each byte in receive buffer
DX = port number

Return

        AH = status
    00h successful
    3Ah invalid status storage specified
    41h no such port
    64h monitor mode already active

Note

     	in monitor mode, MultiDOS redirects all BIOS video output to a serial
  port

SeeAlso

    INT 14 AH=20"MultiDOS"    INT 14 AH=25


INT 14 AH=25

14 - MultiDOS Plus - CLEAR BUFFERS

AH = 25h
AL = function
    00h only clear buffers
    01h clear buffers and deactivate
DX = port number

Return

        AH = status
    00h successful
    3Ah invalid function
    41h no such port
    42h monitor mode not active

SeeAlso

    INT 14 AH=20"MultiDOS"    INT 14 AH=24"MultiDOS"


INT 14 AH=27

14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT

AH = 27h
DX = port number

Return

        AH = status
    00h successful
    41h no such port
    42h monitor mode not active
AL = number of characters in receive buffer


INT 14 AH=7E

14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION

AH = 7Eh
AL = code assigned to external application (80h-BFh)
    80h reserved for communications FOSSIL
    81h video FOSSIL
    82h reserved for keyboard FOSSIL
    83h reserved for system FOSSIL
ES:DX -> entry point

Return

        AX = 1954h
BL = code assigned to application (same as input AL)
DH = 00h failed
     01h successful

SeeAlso

    INT 14 AH=7F    INT 14 AH=80"FOSSIL"    INT 14 AX=8100    INT 14 AH=82"FOSSIL"    INT 14 AH=83"FOSSIL"


INT 14 AH=7F

14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION

AH = 7Fh
AL = code assigned to external application
ES:DX -> entry point

Return

        AX = 1954h
BL = code assigned to application (same as input AL)
DH = 00h failed
     01h successful

SeeAlso

    INT 14 AH=7E


INT 14 AH=80

14 - COMMUNICATIONS FOSSIL

AH = 80h

SeeAlso

    INT 14 AH=7E


INT 14 AH=80

14 - COURIERS.COM - INSTALLATION CHECK

AH = 80h

Return

        AH = E8h if loaded

Note

     	COURIERS is a TSR utility by PC Magazine


INT 14 AX=8000

14 - ARTICOM - INSTALLATION CHECK

AX = 8000h

Return

        AL = FFh if installed
    BH = major version
    BL = minor version

Program

         ArtiCom is an asynchronous communications driver by Artisoft which
  works on top of NetBIOS and allows modem/serial-port sharing by
  programs using INT 14 for serial I/O.

Note

     	ArtiCom supports 32 simultaneous COM ports using multiport cars and
  drivers

SeeAlso

    INT 14 AH=00    INT 14 AH=01    INT 14 AH=02    INT 14 AH=03    INT 14 AH=04    INT 14 AH=05    INT 14 AX=8001    INT 14 AX=8002


INT 14 AX=8001

14 - ARTICOM - UNLOAD ASYNCHRONOUS REDIRECTOR FROM MEMORY

AX = 8001h

Return

        AX = error code, if error (see AX=8003h)

SeeAlso

    INT 14 AX=8000    INT 14 AX=8002    INT 14 AX=8003


INT 14 AX=8002

14 - ARTICOM - GET ASYNCHRONOUS REDIRECTOR STATUS

AX = 8002h
ES:DI -> buffer for redirector status structure (see below)

Return

        AX = error code, if error (see AX=8003h)

SeeAlso

    INT 14 AX=8000    INT 14 AX=8003

Table Formats

Redirector status:


INT 14 AX=8003

14 - ARTICOM - TRANSLATE ERROR CODE TO ERROR STRING

AX = 8003h
CX = error number to translate

Return

        ES:DI -> ASCIZ error text or NULL if can't translate.

SeeAlso

    INT 14 AX=8000

Values for error codes:
 00h	"No error"
 01h	"An invalid port number was specified"
 02h	"Port is already redirected"
 03h	"Too many ports redirected"
 04h	"Cannot locate the server"
 05h	"Server is busy"
 06h	"Access denied"
 07h	"Resource in use"
 08h	"Resource in use - request queued"
 09h	"No such resource"
 0Ah	"Invalid username/password pair"
 0Bh	"Noncompatible version number"
 0Ch	"Can't remove from memory"
 0Dh	"Bad NETBIOS adapter number"
 0Eh	"No more entries in list"
 0Fh	"Resource is not available at this time"
 10h	"Invalid value to INT 14 call"


INT 14 AX=8004

14 - ARTICOM - ATTACH ASYNCHRONOUS RESOURCE

AX = 8004h
DX = port to redirect (COM1=0, COM2=1, ...)
CH = attach type
CL = adapter to use for attach, 0FFh to search all
ES:DI -> attachment structure (see below)

Return

        AX = error code, if error (see AX=8003h)

Note

     	The wildcard '*' is supported in the server and resource fields.  If
  wild cards are used then the first matching available server is
  attached.

SeeAlso

    INT 14 AX=8000    INT 14 AX=8003    INT 14 AX=8005

Table Formats

Attachment structure:


INT 14 AX=8005

14 - ARTICOM - DETACH ASYNCHRONOUS RESOURCE

AX = 8005h
DX = port to detach (COM1=0, COM2=1, ...)

Return

        AX = error code, if error (see AX=8003h)

Note

     	only a previously attached resource can be detached

SeeAlso

    INT 14 AX=8000    INT 14 AX=8003    INT 14 AX=8004


INT 14 AX=8006

14 - ARTICOM - GET RESOURCE INFORMATION

AX = 8006h
BX = remote port (COM1=0, COM2=1, ...)
CL = adapter number, FFH to try all adapters
ES:DI -> resource information structure (see below)
DS:SI -> 16 byte server name. See note.

Return

        AX = error code, if error (see AX=8003h)
BX = next remote port, recall to get next resource info

Note

     	Wild cards supported in both the resource field and server name
string DS:SI. If wild cards used then first matching available
resource information is searched. Set resource field to 0FFh to
return all resources.

SeeAlso

    INT 14 AX=8000    INT 14 AX=8002    INT 14 AX=8003    INT 14 AX=8007

Table Formats

Resource information structure:


INT 14 AX=8007

14 - ARTICOM - GET REDIRECTED PORT INFORMATION

AX = 8007h
DX = port index (COM1=0, COM2=1, ...)
ES:DI -> buffer for port information structure (see below)

Return

        CF clear if redirection info returned and port is redirected
CF set if not a redirected port
AX = error code, if error (see AX=8003h)

SeeAlso

    INT 14 AX=8000    INT 14 AX=8003    INT 14 AX=8006    INT 14 AX=8008

Table Formats

Port information structure:
Values for baud rate:
 00h	110
 01h	150
 02h	300
 03h	600
 04h	1200
 05h	2400
 06h	4800
 07h	9600
 08h	19200
 09h	38400
 0Ah	57600
 0Bh	115200
 0Ch	134.5
 0Dh	1800
 0Eh	2000
 0Fh	3600
 10h	7200


INT 14 AX=8008

14 - ARTICOM - GET AVAILABLE SERVER NAME

AX = 8008h
BX = server index (0,1,...)
ES:DI -> server name structure (see below)

Return

        AX = error code, if error (see AX=8003)
BX = next remote port, repeat call to get next available server

Note

     	the wildcard '*' is supported in the server name field.	 Set the
  server name to FFh to search for all servers.

SeeAlso

    INT 14 AX=8000    INT 14 AX=8003    INT 14 AX=8007

Table Formats

Server name structure:


INT 14 AX=8009

14 - ARTICOM - SET SEND AND RECEIVE TIMEOUTS

AX = 8009h
BX = send timeout in ticks
CX = receive timeout in ticks
DX = port index (COM1=0, COM2=1, ...)

Return

        nothing

SeeAlso

    INT 14 AX=8000    INT 14 AX=800A


INT 14 AX=800A

14 - ARTICOM - MODIFY FLOW CONTROL

AX = 800Ah
BL = flow control type (00h none, 01h XON/XOFF, 02h RTS/CTS)
DX = port index (COM1=0, COM2=1, ...)

Return

        AX = error code, if error (see AX=8003h)

Note

     	for attached ports only!

SeeAlso

    INT 14 AX=8000    INT 14 AX=8003    INT 14 AX=8009


INT 14 AX=8025

14 - ARTICOM - SET INTERNAL SEND/RECEIVE VECTOR

AX = 8025h
DS:DX -> address of trap function (see below) to call on read/write

Note

     	setting the vector to a user function allows the redirector's activity
  to be monitored.

SeeAlso

    INT 14 AX=8000    INT 14 AX=8035    INT 21 AH=25

Trap function called with:
AH = operation
    80h reading character
    81h writing character
AL = character
Return: AX must be preserved
far JUMP to old trap function (see AX=8035h)


INT 14 AX=8035

14 - ARTICOM - GET INTERNAL SEND/RECEIVE VECTOR

AX = 8035h

Return

        ES:BX -> address of current send/receive routine

Note

     	this function returns the address of the routine which is called
  inside A-REDIR.EXE each time a character is received or sent on the
  active COM port.

SeeAlso

    INT 14 AX=8000    INT 14 AX=8025    INT 21 AH=35


INT 14 AH=81

14 - COURIERS.COM - CHECK IF PORT BUSY

AH = 81h
AL = port number (1-4)

Return

        AH = 00h port available
     01h port exists but already in use
     02h port nonexistent

Note

     	COURIERS is a TSR utility by PC Magazine

SeeAlso

    INT 14 AH=83    INT 14 AH=8D


INT 14 AH=81

14 - Egberto Willies COMM-DRV - EXTENDED INITIALIZATION

AH = 81h
BX:DI -> port control block

Return

        ???

SeeAlso

    INT 14 AH=00

Table Formats

Port control block:


INT 14 AX=8100

14 - VIDEO FOSSIL - RETURN VFOSSIL INFORMATION

AX = 8100h
ES:DI -> buffer for VFOSSIL information (see below)

Return

        AX = 1954h if installed

SeeAlso

    INT 14 AH=7E    INT 14 AX=8101

Table Formats

VFOSSIL information:


INT 14 AX=8101

14 - VIDEO FOSSIL - OPEN VFOSSIL

AX = 8101h
ES:DI -> buffer for application function table (see below)
CX = length of buffer in bytes

Return

        AX = 1954h if installed
    BH = highest VFOSSIL application function supported

Note

     	the number of initialized pointers in the application function table
  will never exceed CX/4; if the buffer is large enough, BH+1 pointers
  will be initialized

SeeAlso

    INT 14 AX=8102

Table Formats

Application function table:
Video mode data structure:
Video configuration data:
Cursor type record:
Call VioGetMode with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to video mode data structure (see above)

Return

        AX = error code (00h, 74h, 17Eh, 1B4h)
    0000h successful
    0074h internal VIO failure
    0163h unsupported mode
    0166h invalid row value
    0167h invalid column value
    017Eh buffer too small
    01A5h invalid VIO parameter
    01B4h invalid VIO handle

Call VioSetMode with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to video mode data structure (see above)

Return

        AX = error code (00h, 74h, 163h, 17Eh, 1A5h, 1B4h) (see above)

Call VioGetConfig with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to video configuration data buffer (see above)

Return

        AX = error code (00h, 74h, 17Eh, 1B4h) (see above)

Call VioWrtTTY with:
STACK:	WORD	VIO handle (must be 00h)
WORD	length of string
DWORD	pointer to character string to be written to screen

Return

        AX = error code (00h, 74h, 1B4h) (see above)

Notes

      	write wraps at end of line and terminates if it reaches end of screen
in ANSI mode, ANSI control sequences are interpreted, and this func is
  not required to be reentrant; in non-ANSI mode, the function is
  reentrant and may be called from within an MSDOS function call

Call VioGetANSI with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to WORD which will be set to 00h if ANSI is off
or 01h if ANSI is on

Return

        AX = error code (00h, 74h, 1B4h) (see above)

Call VioSetANSI with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to WORD indicating new state of ANSI
00h off
01h on

Return

        AX = error code (00h, 74h, 1A4h, 1B4h) (see above)

Call VioGetCurPos with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to WORD to hold current cursor column (0-based)
DWORD	pointer to WORD to hold current cursor row (0-based)

Return

        AX = error code (00h, 74h, 1B4h) (see above)

Call VioSetCurPos with:
STACK:	WORD	VIO handle (must be 00h)
WORD	cursor column
WORD	cursor row

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Note

     	if either coordinate is invalid, the cursor is not moved

Call VioGetCurType with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to cursor type record (see above)

Return

        AX = error code (00h, 74h, 1B4h) (see above)

Call VioSetCurType with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to cursor type record (see above)

Return

        AX = error code (00h, 74h, 1A4h, 1B4h) (see above)

Call VioScrollUp with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to char/attr cell for filling emptied rows
WORD	number or rows to scroll (FFFFh = clear area)
WORD	right column of scroll area
WORD	bottom row of scroll area
WORD	left column of scroll area
WORD	top row of scroll area

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Call VioScrollDn with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to char/attr cell for filling emptied rows
WORD	number or rows to scroll (FFFFh = clear area)
WORD	right column of scroll area
WORD	bottom row of scroll area
WORD	left column of scroll area
WORD	top row of scroll area

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Call VioReadCellStr with:
STACK:	WORD	VIO handle (must be 00h)
WORD	column at which to start reading
WORD	row at which to start reading
DWORD	pointer to WORD containing length of buffer in bytes
on return, WORD contains number of bytes actually read
DWORD	pointer to buffer for cell string

Return

        AX = error code (00h, 74h, 166h ,167h, 1B4h) (see above)

Call VioReadCharStr with:
STACK:	WORD	VIO handle (must be 00h)
WORD	column at which to start reading
WORD	row at which to start reading
DWORD	pointer to WORD containing length of buffer in bytes
on return, WORD contains number of bytes actually read
DWORD	pointer to buffer for character string

Return

        AX = error code (00h, 74h, 166h ,167h, 1B4h) (see above)

Call VioWrtCellStr with:
STACK:	WORD	VIO handle (must be 00h)
WORD	column at which to start writing
WORD	row at which to start writing
WORD	length of cell string in bytes
DWORD	pointer to cell string to write

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Note

     	write wraps at end of line and terminates if it reaches end of screen

Call VioWrtCharStr with:
STACK:	WORD	VIO handle (must be 00h)
WORD	column at which to start writing
WORD	row at which to start writing
WORD	length of character string
DWORD	pointer to character string to write

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Note

     	write wraps at end of line and terminates if it reaches end of screen

Call VioWrtCharStrAttr with:
STACK:	WORD	VIO handle (must be 00h)
DWORD	pointer to attribute to be applied to each character
WORD	column at which to start writing
WORD	row at which to start writing
WORD	length of character string
DWORD	pointer to character string to write

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Note

     	write wraps at end of line and terminates if it reaches end of screen

Call VioWrtNAttr with:
STACK:	WORD	VIO handle (must be 00h)
WORD	column at which to start writing
WORD	row at which to start writing
WORD	number of times to write attribute
DWORD	pointer to display attribute to replicate

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Note

     	write wraps at end of line and terminates if it reaches end of screen

Call VioWrtNCell with:
STACK:	WORD	VIO handle (must be 00h)
WORD	column at which to start writing
WORD	row at which to start writing
WORD	number of times to write cell
DWORD	pointer to cell to replicate

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Note

     	write wraps at end of line and terminates if it reaches end of screen

Call VioWrtNChar with:
STACK:	WORD	VIO handle (must be 00h)
WORD	column at which to start writing
WORD	row at which to start writing
WORD	number of times to write character
DWORD	pointer to character to replicate

Return

        AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)

Note

     	write wraps at end of line and terminates if it reaches end of screen


INT 14 AX=8102

14 - VIDEO FOSSIL - CLOSE VFOSSIL

AX = 8102h

Return

        AX = 1954h

Note

     	terminates all operations; after this call, the video FOSSIL may either
  be removed from memory or reinitialized

SeeAlso

    INT 14 AX=8101    INT 14 AX=8103


INT 14 AX=8103

14 - VIDEO FOSSIL - UNINSTALL

AX = 8103h

Return

       	AX = 1954h

Note

     	this is an extension to the VFOSSIL spec by Bob Hartman's VFOS_IBM


INT 14 AH=82

14 - KEYBOARD FOSSIL

AH = 82h

SeeAlso

    INT 14 AH=7E


INT 14 AH=82

14 - COURIERS.COM - CONFIGURE PORT

AH = 82h
AL = port number (1-4)
BX = speed (bps)
CX = bit flags
    bit 0: enable input flow control
    bit 1: enable output flow control
    bit 2: use X.PC protocol (not yet implemented)

SeeAlso

    INT 14 AH=00    INT 14 AH=8C    INT 7AX.PC


INT 14 AH=83

14 - SYSTEM FOSSIL

AH = 83h

SeeAlso

    INT 14 AH=7E


INT 14 AH=83

14 - COURIERS.COM - START INPUT

AH = 83h
ES:BX -> circular input buffer
CX = length of buffer
(should be at least 128 bytes if input flow control enabled)

SeeAlso

    INT 14 AH=18    INT 14 AH=87    INT 14 AH=8D    INT 14 AH=A5"BAPI"


INT 14 AH=84

14 - COURIERS.COM - READ CHARACTER

AH = 84h

Return

        ZF set if no characters available
ZF clear
   AL = character
   AH = modem status bits
bit 7: set on input buffer overflow

SeeAlso

    INT 14 AH=02    INT 14 AH=86    INT 14 AH=89


INT 14 AH=85

14 - COURIERS.COM - FLUSH PENDING INPUT

AH = 85h

SeeAlso

    INT 14 AH=0A    INT 14 AH=88


INT 14 AH=86

14 - COURIERS.COM - START OUTPUT

AH = 86h
ES:BX -> output buffer
CX = length of output buffer

SeeAlso

    INT 14 AH=19    INT 14 AH=83"COURIERS"    INT 14 AH=A4"BAPI"


INT 14 AH=87

14 - COURIERS.COM - OUTPUT STATUS

AH = 87h

Return

        AX = number of unsent characters


INT 14 AH=88

14 - COURIERS.COM - ABORT OUTPUT

AH = 88h

SeeAlso

    INT 14 AH=09    INT 14 AH=85


INT 14 AH=89

14 - COURIERS.COM - SEND SINGLE CHARACTER

AH = 89h
CL = character to send

SeeAlso

    INT 14 AH=01    INT 14 AH=84


INT 14 AH=8A

14 - COURIERS.COM - SEND BREAK

AH = 8Ah

SeeAlso

    INT 14 AH=89    INT 14 AH=FA


INT 14 AH=8C

14 - COURIERS.COM - SET SPEED

AH = 8Ch
BX = speed in bps

SeeAlso

    INT 14 AH=00    INT 14 AH=82"COURIERS"


INT 14 AH=8D

14 - COURIERS.COM - DECONFIGURE PORT

AH = 8Dh

SeeAlso

    INT 14 AH=82"COURIERS"


INT 14 AH=A0

14 - 3com BAPI SERIAL I/O - CONNECT TO PORT

AH = A0h
???

Return

        ???

SeeAlso

    INT 14 AH=A1"BAPI"


INT 14 AH=A0

14 - Interconnections Inc. TES - INSTALLATION CHECK/STATUS REPORT

AH = A0h
CX = FFFFh

Return

        CF clear if successful
    AX = 5445h ('TE')
    CX <> FFFFh
    DX = port number
CF set on error

Note

     	TES is a network serial port emulation program

SeeAlso

    INT 14 AH=A1"TES"


INT 14 AH=A1

14 - 3com BAPI SERIAL I/O - DISCONNECT FROM PORT

AH = A1h
???

Return

        ???

SeeAlso

    INT 14 AH=A0"BAPI"


INT 14 AH=A1

14 - Interconnections Inc. TES - GET LIST OF SESSIONS WITH STATUS

AH = A1h

Return

        CX = number of active sessions
ES:SI -> status array (see below)

SeeAlso

    INT 14 AH=A2"TES"    INT 14 AH=A3"TES"

Table Formats

Status array entry:


INT 14 AH=A2

14 - Interconnections Inc. TES - GET LIST OF SERVER NAMES

AH = A2h

Return

       	CX = number of servers
ES:SI -> array of offsets from ES for server names

SeeAlso

    INT 14 AH=A1"TES"


INT 14 AH=A3

14 - Interconnections Inc. TES - START A NEW SESSION

AH = A3h
ES:SI -> ???

Return

        CF clear if successful
    AX = 5445h ('TE')
    CX <> FFFFh
    DX = port number
CF set on error

SeeAlso

    INT 14 AH=A1"TES"    INT 14 AH=A4"TES"    INT 14 AH=A6"TES"


INT 14 AH=A4

14 - 3com BAPI SERIAL I/O - WRITE BLOCK

AH = A4h
CX = length
DH = session number (00h)
ES:BX -> buffer

Return

        CX = number of bytes sent

SeeAlso

    INT 14 AH=19    INT 14 AH=86    INT 14 AH=A5"BAPI"


INT 14 AH=A4

14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION

AH = A4h
???

Return

        ???

SeeAlso

    INT 14 AH=A3"TES"    INT 14 AH=A5"TES"


INT 14 AH=A5

14 - 3com BAPI SERIAL I/O - READ BLOCK

AH = A5h
CX = length
DH = session number (00h)
ES:BX -> buffer

Return

        CX = number of bytes read

SeeAlso

    INT 14 AH=18    INT 14 AH=83"COURIERS"    INT 14 AH=A4"BAPI"    INT 14 AX=FF02


INT 14 AH=A5

14 - Interconnections Inc. TES - RESUME A SESSION

AH = A5h
AL = session number

Return

        ???

SeeAlso

    INT 14 AH=A4"TES"    INT 14 AH=A6"TES"


INT 14 AH=A6

14 - 3com BAPI SERIAL I/O - SEND SHORT BREAK

AH = A6h
DH = session number (00h)

SeeAlso

    INT 14 AH=1A    INT 14 AH=8A    INT 14 AH=FA


INT 14 AH=A6

14 - Interconnections Inc. TES - DROP A SESSION

AH = A6h
AL = session number

Return

        AH = status
    00h successful
    else error

SeeAlso

    INT 14 AH=A3"TES"    INT 14 AH=A5"TES"


INT 14 AH=A7

14 - 3com BAPI SERIAL I/O - READ STATUS

AH = A7h
???

Return

        ???


INT 14 AH=A7

14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION

AH = A7h
???

Return

        ???

SeeAlso

    INT 14 AH=A3"TES"    INT 14 AH=A5"TES"


INT 14 AH=A8

14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER

AH = A8h
AL = 00h no visible response
ES:SI -> ASCIZ command

Return

        ???


INT 14 AX=AF00

14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK

AX = AF00h
BX = AAAAh

Return

        AX = AF01h if installed


INT 14 AH=B0

14 - 3com BAPI SERIAL I/O - ENABLE/DISABLE "ENTER COMMAND MODE" CHARACTER

AH = B0h
AL = 00h disable
   = 01h enable


INT 14 AH=B1

14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE

AH = B1h


INT 14 AX=F0F0

14 - ASAP v1.0 - ???

AX = F0F0h
DX = ???
???

Return

        ???

Note

     	ASAP (Automatic Screen Access Program) is a shareware screen reader by
  MicroTalk

SeeAlso

    INT 14 AX=F0F1


INT 14 AX=F0F1

14 - ASAP v1.0 - INSTALLATION CHECK

AX = F0F1h
DX = 0000h

Return

        DX = segment of resident code
   = 0000h if not installed

Note

     	ASAP (Automatic Screen Access Program) is a shareware screen reader by
  MicroTalk

SeeAlso

    INT 14 AX=F0F0    INT 10 AH=38


INT 14 AX=F4FF

14 - IBM/Yale EBIOS SERIAL I/O - INSTALLATION CHECK

AX = F4FFh
DX = port (00h-03h)

Return

        CF clear if present
    AX = 0000h
CF set if not present
    AX <> 0000h


INT 14 AH=F9

14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL

AH = F9h
DX = port (00h-03h)


INT 14 AH=FA

14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK

AH = FAh
DX = port (00h-03h)

SeeAlso

    INT 14 AH=1A    INT 14 AH=8A


INT 14 AH=FB

14 - IBM/Yale EBIOS SERIAL I/O - SET OUTGOING MODEM SIGNALS

AH = FBh
AL = modem control register
    bit 0: data terminal ready
1: request to send
2: OUT1
3: OUT2
4: loopback
    bits 5-7 unused
DX = port (00h-03h)


INT 14 AH=FC

14 - IBM/Yale EBIOS SERIAL I/O - READ CHARACTER, NO WAIT

AH = FCh
DX = port (00h-03h)

Return

        AH = RS232 status bits (see AH=00h)
AL = character

SeeAlso

    INT 14 AH=02    INT 14 AH=0C    INT 14 AX=FF02


INT 14 AX=FD02

14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS

AX = FD02h

Return

        CX = number of characters available


INT 14 AX=FF02

14 - IBM/Yale EBIOS SERIAL I/O - BUFFERED READ

AX = FF02h
CX = length
DX = port (00h-03h)
ES:BX -> buffer

Return

        CX = number of characters read

SeeAlso

    INT 14 AH=18    INT 14 AH=83"COURIERS"    INT 14 AH=A5"BAPI"    INT 14 AH=FC


INT 15

15 - Microsoft TSR Specification

No additional information available at this time.


INT 15 AH=00

15 - CASSETTE - TURN ON TAPE DRIVE'S MOTOR (PC and PCjr only)

AH = 00h

Return

        CF set on error
    AH = 86h no cassette present
CF clear if successful

SeeAlso

    INT 15 AH=01"CASSETTE"


INT 15 AH=00

15 - Amstrad PC1512 - GET AND RESET MOUSE COUNTS

AH = 00h

Return

        CX = signed X count
DX = signed Y count


INT 15 AH=00

15 - VMiX v2+ - INSTALLATION CHECK

AH = 00h

Return

        DX = 0798h if installed
    AX = version (AH = major, AL = minor)


INT 15 AH=00

15 - MultiDOS Plus - GIVE UP TIME SLICE

AH = 00h

Note

     	if issued by the highest-priority task while MultiDOS is using
  priority-based rather than round-robin scheduling, control will be
  returned to the caller immediately

SeeAlso

    INT 15 AH=03"MultiDOS"    INT 15 AX=1000


INT 15 AH=01

15 - CASSETTE - TURN OFF TAPE DRIVE'S MOTOR (PC and PCjr only)

AH = 01h

Return

        CF set on error
    AH = 86h no cassette present
CF clear if successful

SeeAlso

    INT 15 AH=00"CASSETTE"


INT 15 AH=01

15 - Amstrad PC1512 - WRITE DATA TO NON-VOLATILE RAM

AH = 01h
AL = NVRAM location (00h to 3Fh)
BL = NVRAM data value

Return

        AH = return code
    00h OK
    01h address bad
    02h write error

SeeAlso

    INT 15 AH=02"Amstrad"

Table Formats

NVRAM:


INT 15 AH=01

15 - VMiX - "sys_chanreq" - I/O CHANNEL OBJECT MANAGER

AH = 01h
STACK:	WORD	object ID of requestor
DWORD	pointer to ASCIZ name of requested method
"assign" assign channel to object
"deassign" deassign channel
"cursor" set cursor on/off
"init" initialize comm port
"open" open I/O channel
"position" set cursor position
"receive" get buffered packet from comm port
"send" send buffered packet to comm port
"vio" set current virtual I/O to specified channel
"window" make window at cursor position
---if "assign"---
 WORD	object UID
 WORD	caller UID/PID
 DWORD	CSL with port
---if "deassign"---
 WORD	channel ID
---if "cursor"---
 WORD	channel ID (must be a SRCSINK)
 WORD	new state (0000h off, 0001h on)
---if "init"---
 WORD	channel ID (must be a SRCSINK)
 WORD	comm port number (00h-03h)
 WORD	UART init code
---if "open"---
 WORD	channel ID
---if "position"---
 WORD	channel ID (must be a SRCSINK)
 WORD	position (high byte = row, low byte = column)
---if "receive"---
 DWORD	pointer to buffer
---if "send"---
 WORD	length of buffer
 DWORD	pointer to buffer
---if "vio"---
 WORD	channel ID (must be a SRCSINK)
---if "window"---
 WORD	top left (high byte = row, low byte = column)
 WORD	bottom right (high byte = row, low byte = column)

Return

        DX:AX -> IRP structure or 0000h:0000h

SeeAlso

    INT 15 AH=00"VMiX"    INT 15 AH=02"VMiX"


INT 15 AH=01

15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE

AH = 01h
AL = semaphore number (00h-3Fh)

Return

        AH = status
    00h successful
    02h invalid semaphore number

Notes

      	if the semaphore is not owned, ownership is assigned to the calling
  task and the call returns immediately
if the semaphore is already owned by another task, the calling task
  is placed on a queue for the semaphore and suspended until it can
  become owner of the semaphore
semaphore 0 is used internally by MultiDOS to synchronize DOS access

SeeAlso

    INT 15 AH=02"MultiDOS"    INT 15 AH=10"MultiDOS"    INT 15 AH=1B"MultiDOS"


INT 15 AH=02

15 - CASSETTE - READ DATA

AH = 02h
CX = number of bytes to read
ES:BX -> buffer

Return

       	CF clear if successful
    DX = number of bytes read
    ES:BX -> byte following last byte read
CF set on error
AH = status
    00h successful
    01h CRC error
    02h bad tape signals
    04h no data
    80h invalid command
    86h no cassette present

SeeAlso

    INT 15 AH=00"CASSETTE"    INT 15 AH=03"CASSETTE"


INT 15 AH=02

15 - Amstrad PC1512 - READ DATA FROM NON-VOLATILE RAM

AH = 02h
AL = NVRAM location (00h to 3Fh)

Return

        AH = return code
    00h OK
    01h address bad
    02h checksum error
AL = NVRAM data value

SeeAlso

    INT 15 AH=01"Amstrad"


INT 15 AH=02

15 - VMiX - "sys_memreq" - MEMORY OBJECT MANAGER

AH = 02h
STACK:	WORD	object ID of requestor
DWORD	pointer to ASCIZ name of requested method
"assign" allocate low memory block
"assign extended" allocate extended memory pages
"assign gdt" allocate GDT selector
"paged" allocate low paged memory
"paged extended" alllocate extended memory pages
"deassign" free memory block
"deassign gdt" free GDT selector
"getvpage" get physical address for virtual page
"setvpage" set physical address for virtual page
"info" get VMiX memory usage info block
"move" move contents of 32-bit memory
"newmcb" make new DOS memory control block
"owner" get process ID of MCB or PSP owner
"umb" allocate upper memory block
"video" toggle system use of vidoe memory and get stat
---if "assign"---
 WORD	number of objects
 WORD	size in bytes (multiple of 512 bytes)
---if "assign extended"---
 WORD	number of objects
 WORD	size in bytes (multiple of 4K)
---if "assign gdt"---
 WORD	access type (low byte)
 WORD	segment size in paragraphs
 DWORD	pointer to start of physical segment
---if "paged"---
 WORD	number of 512-byte pages
---if "paged extended"
 WORD	number of 4K pages
---if "deassign"---
 DWORD	pointer returned by previous allocation call
---if "deassign gdt"---
 WORD	GDT selector
---if "getvpage"---
 WORD	owner's process ID
 DWORD	pointer to buffer for page structure (struct VPGE)
---if "setvpage"---
 WORD	owner's process ID
 DWORD	pointer to new page structure (struct VPGE)
---if "info"---
 no additional arguments
---if "move"
 DWORD	32-bit source address
 DWORD	32-bit destination address
 WORD	number of words to move
---if "newmcb"---
 DWORD	pointer to new MCB's location
 WORD	size of memory block
 DWORD	pointer to ASCIZ name string (max 8 chars)
---if "owner"---
 WORD	MCB or PSP segment
---if "umb"---
 WORD	size in paragraphs
---if "video"---
 no additional arguments

Return

        DX:AX -> memory block or VPGE struct or 0000h:0000h

SeeAlso

    INT 15 AH=00"VMiX"    INT 15 AH=01"VMiX"


INT 15 AH=02

15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE

AH = 02h
AL = semaphore number (00h-3Fh)

Return

        AH = status
    00h successful
    01h not semaphore owner
    02h invalid semaphore number

Notes

      	if any tasks are waiting for the semaphore, the first task on the wait
  queue will become the new owner and be reawakened
do not use within an interrupt handler

SeeAlso

    INT 15 AH=01"MultiDOS"    INT 15 AH=10"MultiDOS"    INT 15 AH=1C"MultiDOS"


INT 15 AH=03

15 - CASSETTE - WRITE DATA (PC and PCjr only)

AH = 03h
CX = number of bytes to write
ES:BX -> data buffer

Return

        CF clear if successful
    ES:BX -> byte following last byte written
CF set on error
AH = status (see AH=02h"CASSETTE")
CX = 0000h

SeeAlso

    INT 15 AH=00"CASSETTE"    INT 15 AH=02"CASSETTE"


INT 15 AH=03

15 - Amstrad PC1512 - WRITE VDU COLOR PLANE WRITE REGISTER

AH = 03h
AL = value (I,R,G,B bits)

SeeAlso

    INT 15 AH=04"Amstrad"


INT 15 AH=03

15 - VMiX - "sys_pinput" - PROMPTED CONSOLE INPUT

AH = 03h
STACK:	DWORD	pointer to ASCII prompt
WORD	field outline character
WORD	length of input field (max 7Fh)
DWORD	address of pointer to input buffer

Return

        AX = length of input (input buffer is padded with blanks)

SeeAlso

    INT 15 AH=04"VMiX"


INT 15 AH=03

15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL

AH = 03h
DX = number of time slices to remain suspended

Return

        after specified interval has elapsed

Note

     	when priority-based scheduling is in use, high-priority tasks should
  use this function to yield the processor

SeeAlso

    INT 15 AH=00"MultiDOS"    INT 15 AH=0A"MultiDOS"


INT 15 AH=04

15 - SYSTEM - BUILD ABIOS SYSTEM PARAMETER TABLE (PS)

AH = 04h
ES:DI -> results buffer length 20h for System Parameter Table
DS = segment containing ABIOS RAM extensions (zero if none)

Return

        AH = 00h success: results at ES:DI
CF set on failure

SeeAlso

    INT 15 AH=05"ABIOS"    C1

Table Formats

ABIOS System Parameter Table:


INT 15 AH=04

15 - Amstrad PC1512 - WRITE VDU COLOR PLANE READ REGISTER

AH = 04h
AL = value (RDSEL1 and RDSEL0)

SeeAlso

    INT 15 AH=03"Amstrad"    05h"Amstrad


INT 15 AH=04

15 - VMiX - "sys_vprintf" - FORMATTED OUTPUT TO STREAM

AH = 04h
STACK:	DWORD	control string
DWORD	array of arguments

SeeAlso

    INT 15 AH=03"VMiX"


INT 15 AH=04

15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK

AH = 04h
AL = mailbox number (00h-3Fh)
CX = message length in bytes
DS:SI -> message

Return

        AH = status
    00h successful
    01h out of message memory
    02h invalid mailbox number

Note

     	the message is copied into a system buffer; the caller may immediately
  reuse its buffer

SeeAlso

    INT 15 AH=05"MultiDOS"


INT 15 AH=05

15 - SYSTEM - BUILD ABIOS INITIALIZATION TABLE (PS)

AH = 05h
ES:DI -> results buffer length (18h * Number_of_Entries)
DS = segment containing ABIOS RAM extensions (zero if none)

Return

        AH = 00h success: results at ES:DI
CF set on failure

SeeAlso

    INT 15 AH=04"ABIOS"    C1

Table Formats

One entry of ABIOS Initialization Table:


INT 15 AH=05

15 - Amstrad PC1512 - WRITE VDU GRAPHICS BORDER REGISTER

AH = 05h
AL = value (I,R,G,B bits)

SeeAlso

    INT 15 AH=04"Amstrad"


INT 15 AH=05

15 - VMiX - "sys_getpid" - GET PROCESS ID OF CURRENT PROCESS

AH = 05h

Return

        AX = process ID

SeeAlso

    INT 15 AH=06"VMiX"    INT 15 AH=0B"VMiX"


INT 15 AH=05

15 - MultiDOS Plus - CHECK MAILBOX

AH = 05h
AL = mailbox number (00h-3Fh)

Return

        AH = status
    00h successful
DX = length of first message in queue, 0000h if no message
    02h invalid mailbox number

SeeAlso

    INT 15 AH=04"MultiDOS"    INT 15 AH=06"MultiDOS"


INT 15 AH=06

15 - Amstrad PC1512 - GET ROS VERSION NUMBER

AH = 06h

Return

        BX = version number


INT 15 AH=06

15 - VMiX - "sys_getpcb" - GET POINTER TO PROCESS CONTROL BLOCK

AH = 06h
STACK:	WORD	process ID

Return

        DX:AX -> process control block

SeeAlso

    INT 15 AH=05"VMiX"    INT 15 AH=07"VMiX"    INT 15 AH=08"VMiX"


INT 15 AH=06

15 - MultiDOS Plus - READ MAILBOX

AH = 06h
AL = mailbox number (00h-3Fh)
CX = size of buffer in bytes
ES:DI -> buffer for message

Return

        AH = status
    00h successful
CX = number of bytes copied
DX = actual length of message
    02h invalid mailbox number

Note

     	if the caller's buffer is not large enough, the message is truncated
  and the remainder is lost

SeeAlso

    INT 15 AH=04"MultiDOS"    INT 15 AH=05"MultiDOS"


INT 15 AH=07

15 - VMiX - "sys_getocb" - GET POINTER TO OBJECT CONTROL BLOCK

AH = 07h
STACK:	WORD	object type

Return

        DX:AX -> object control block

SeeAlso

    INT 15 AH=06"VMiX"    INT 15 AH=08"VMiX"


INT 15 AH=07

15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD)

AH = 07h
BX:CX = entry point of new task
DX = stack size in paragraphs

Return

        AH = status
    00h successful
    01h no free task control blocks
    02h no free memory for task's stack

Note

     	execution returns immediately to calling task

SeeAlso

    INT 15 AH=08"MultiDOS"    INT 15 AH=09"MultiDOS"    INT 15 AH=13"MultiDOS"


INT 15 AH=08

15 - VMiX - "sys_getccb" - GET CHANNEL CONTROL BLOCK

AH = 08h
STACK:	WORD	channel ID

Return

        DX:AX -> channel control block

SeeAlso

    INT 15 AH=06"VMiX"    INT 15 AH=07"VMiX"


INT 15 AH=08

15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD)

AH = 08h

Return

        calling task terminated, so execution never returns to caller

Notes

      	an internal task must be terminated with this function rather than a
  DOS termination function
task's stack space is returned to parent task's memory pool

SeeAlso

    INT 15 AH=07"MultiDOS"


INT 15 AH=09

15 - VMiX - "sys_getqueue" - GET ID OF QUEUED ELEMENT

AH = 09h
STACK:	WORD	queue ID (0 = process queue, 1 = object, 3 = type)
WORD	subqueue ID

Return

        AX = queue ID

SeeAlso

    INT 15 AH=0A"VMiX"


INT 15 AH=09

15 - MultiDOS Plus - CHANGE TASK'S PRIORITY

AH = 09h
AL = new priority

Note

     	the priority has different meanings depending on whether priority-
  based or round-robin scheduling is used

SeeAlso

    INT 15 AH=07"MultiDOS"


INT 15 AH=0A

15 - VMiX - "sys_qetqnext" - GET ID OF NEXT QUEUED ELEMENT

AH = 0Ah
STACK:	WORD	queue ID (0 = process queue, 1 = object, 3 = type)
WORD	ID of current element in queue chain

Return

        AX = ID of next element

SeeAlso

    INT 15 AH=09"VMiX"    INT 15 AH=0F"VMiX"


INT 15 AH=0A

15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL

AH = 0Ah
AL = new interval
    00h = 55.0 ms (default)
    80h = 27.5 ms
    40h = 13.75 ms
    20h = 6.88 ms
    10h = 3.44 ms
    08h = 1.72 ms

SeeAlso

    INT 15 AH=03"MultiDOS"


INT 15 AH=0B

15 - VMiX - "sys_sysreq" - SYSTEM CONFIGURATION MANAGER

AH = 0Bh
STACK:	WORD	caller's UID
DWORD	pointer to ASCIZ name of requested method
"abort" abort current send/receive on comm port
"block" start/end critical section
"close" terminate interrupt-drive comm I/O
"open" prepare comm port for interrupt-driven I/O
"delay" set delay timer and wait
"hibernate" put process to sleep
"ints" enable/disable interrupt-driven INT 14h
"length" get current send/receive buffer offsets
"kswitch" switch stacks
"numproc" get number of active processes
"protocol" set protocol function for comm interrupts
"relocate" set/reset VMiX flag for relocating to himem
"status" get current open comm port status
"wake" awaken a process
"xport" get comm port polled for logins
---if "abort"---
 no additional arguments
---if "block"---
 WORD	0000h end, 0001h start
---if "close"---
 no additional arguments
---if "open"---
 WORD	comm port (00h-03h)
 WORD	BIOS parameter byte (see INT 14/AH=00h), except
bits 7-5 = 000 for 19200, 001 for 38400, 011 for 115200
---if "delay"---
 WORD	time in seconds
---if "hibernate"---
 WORD	process ID
---if "ints"---
 WORD	0000h if no, 0001h if yes
---if "length","numproc","relocate","status","xport"---
 no additional arguments
---if "kswitch"---
 DWORD	pointer to new stack
---if "protocol"---
 DWORD	pointer to function (must be in low "assign"ed memory
when in 386 mode)
---if "wake"---
 WORD	process ID

Return

        DX:AX -> result or 0000h:0000h
---if "length"---
 BYTE	receive offset
 BYTE	send offset
---if "kswitch"---
 DWORD	old stack pointer
---if "numproc"---
 WORD	number of active processes
---if "status"---
 current open comm port status
---if "xport"---
 current comm port being polled for logins

SeeAlso

    INT 15 AH=05"VMiX"    INT 15 AH=0E"VMiX"


INT 15 AH=0B

15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY

AH = 0Bh

Notes

      	sets calling task's screen pointer to actual screen memory; the pointer
  may be restored with AH=0Ch
caller's video mode must be same as foreground task's video mode
any text written while in the background will be saved to the
  foreground task's virtual screen when it switches to the background
useful if a background task wants to display a message on the
  foreground screen

SeeAlso

    INT 15 AH=0C"MultiDOS"


INT 15 AH=0C

15 - VMiX - "sys_getstack" - GET POINTER TO PROCESS TSS STACK

AH = 0Ch
STACK:	WORD	process ID

Return

        DX:AX -> TSS stack store

SeeAlso

    INT 15 AH=00    VMiX


INT 15 AH=0C

15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY

AH = 0Ch

Note

     	restores task's screen pointer saved by AH=0Bh; must not be called
  unless AH=0Bh has been called first

SeeAlso

    INT 15 AH=0B"MultiDOS"


INT 15 AH=0D

15 - VMiX - "sys_spawn" - START A CHILD PROCESS JOB SHELL

AH = 0Dh
STACK:	DWORD	ASCIZ string starting with requested I/O channel and
followed by standard VMiX shell command string

Return

        AX = process ID or error code "SYS_ERROR"

Note

     	the maximum string length is 7Fh characters

SeeAlso

    INT 15 AH=0E"VMIX"    INT 15 AH=11"VMiX"    INT 21 AH=4B


INT 15 AH=0D

15 - MultiDOS Plus - DISABLE MULTITASKING

AH = 0Dh

Note

     	calling task receives all time slices until AH=0Eh is called; this
  allows time-critical events or nonreentrant code to be processed

SeeAlso

    INT 15 AH=0E"MultiDOS"    INT 15 AH=10"MultiDOS"    INT 15 AX=101B    INT 15 AH=20"MultiDOS"


INT 15 AH=0E

15 - VMiX - "sys_kill" - HARD TERMINATE PROCESS

AH = 0Eh
STACK:	WORD	process ID

Return

        AX = status (SYS_OK or SYS_ERROR)

SeeAlso

    INT 15 AH=0B"VMiX"    INT 15 AH=0D"VMIX"


INT 15 AH=0E

15 - MultiDOS Plus - ENABLE MULTITASKING

AH = 0Eh

SeeAlso

    INT 15 AH=0D"MultiDOS"    INT 15 AX=101C    INT 15 AH=20"MultiDOS"


INT 15 AH=0F

15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only)

AH = 0Fh
AL = phase code
    00h reserved
    01h surface analysis
    02h formatting

Return

        CF clear if formatting should continue, set if it should terminate

Note

     	called during ESDI drive formatting after each cylinder is completed

SeeAlso

    INT 13 AH=1A


INT 15 AH=0F

15 - VMiX - "sys_getqkey" - GET KEY FIELD OF QUEUED ELEMENT

AH = 0Fh
STACK:	WORD	queue ID (0 = process queue, 1 = object q, 3 = type q)
WORD	ID of element in queue chain

Return

        AX = key

SeeAlso

    INT 15 AH=0A"VMiX"


INT 15 AH=0F

15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND

AH = 0Fh
DS:BX -> ASCIZ command

Return

        after command has been processed

Notes

      	specified string is executed as if it had been typed at the MultiDOS
  command prompt
the task is placed on a queue which MultiDOS examines periodically and
  is suspended until MultiDOS has processed the command
all lowercase characters up to the first blank are converted to upper
  case within the given buffer


INT 15 AH=10

15 - VMiX - "sys_virtual" - EXECUTE CONFORMING FUNCTION IN PROTECTED MODE

AH = 10h
STACK:	DWORD	pointer to function
      N	WORDs	function args

Return

        AX = function's return value??? (not specified in documentation)

Note

     	while the function is executing, the following global descriptors are
  available:
20h stack segment
38h code segment of function
40h data alias for function's code segment
  additional GDT descriptors can be allocated using AH=02h with
  function "assign gdt"

SeeAlso

    INT 15 AH=02"VMiX"    INT 15 AH=51"VMiX"


INT 15 AH=10

15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE

AH = 10h
AL = semaphore number (00h-3Fh)

Return

        AH = status
    00h semaphore not in use
    01h semaphore owned by another task
    02h invalid semaphore number
    03h semaphore owned by caller

SeeAlso

    INT 15 AH=02"MultiDOS"    INT 15 AH=0D"MultiDOS"    INT 15 AH=1D"MultiDOS"


INT 15 AX=1000

15 - TopView - "PAUSE" - GIVE UP CPU TIME

AX = 1000h

Return

        after other processes run

Note

     	under DESQview, if the process issuing this call has hooked INT 08h,
  the current time-slice is set to expire at the next clock tick rather
  than immediately

SeeAlso

    INT 15 AH=00"MultiDOS"    INT 15 AX=5305    INT 21 AH=89    INT 21 AH=EE"DoubleDOS"

SeeAlso

    INT 2F AX=1680    INT 60DI=0106h    INT 62 AH=01    INT 7ABX=000A

SeeAlso

    INT 7F AH=E8


INT 15 AX=1001

15 - TopView - "GETMEM" - ALLOCATE "SYSTEM" MEMORY

AX = 1001h
BX = number of bytes to allocate

Return

        ES:DI -> block of memory or 0000h:0000h (DV v2.26+)
AX = status (DV v2.42)
    0000h successful
    0001h failed

Note

     	use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
  common memory.  Under DV v2.42, this call never generates a user
  prompt regardless of the SETERROR value; instead, it always returns
  AX=0001h and ES:DI=0000h:0000h if out of memory

SeeAlso

    INT 15 AX=1002    INT 15 AX=102E    INT 15 AX=DE0C    INT 15 AX=DE15


INT 15 AX=1002

15 - TopView - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY

AX = 1002h
ES:DI -> previously allocated block

Return

        block freed

SeeAlso

    INT 15 AX=1001    INT 15 AX=DE0D


INT 15 AX=1003

15 - TopView - "PRINTC" - DISPLAY CHARACTER/ATTRIBUTE ON SCREEN

AX = 1003h
BH = attribute
BL = character
DX = segment of object handle for window

Note

     	BX=0 does not display anything, it only positions the hardware cursor


INT 15 AH=10

15 - TopView - UNIMPLEMENTED IN DV 2.x

AH = 10h
AL = 04h thru 12h

Return

        pops up "Programming error" window in DV 2.x


INT 15 AX=1013

15 - TopView - "GETBIT" - DEFINE A 2ND-LEVEL INTERRUPT HANDLER

AX = 1013h
ES:DI -> FAR service routine

Return

        BX = bit mask indicating which bit was allocated
     0000h if no more bits available

SeeAlso

    INT 15 AX=1014    INT 15 AX=1015

Note

     	only a few TopView/DESQview API calls are allowed during a hardware
  interrupt; if other calls need to be made, the interrupt handler
  must schedule a 2nd-level interrupt with "SETBIT" (AX=1015h)


INT 15 AX=1014

15 - TopView - "FREEBIT" - UNDEFINE A 2ND-LEVEL INTERRUPT HANDLER

AX = 1014h
BX = bit mask from INT 15/AX=1013h

SeeAlso

    INT 15 AX=1013    INT 15 AX=1015


INT 15 AX=1015

15 - TopView - "SETBIT" - SCHEDULE ONE OR MORE 2ND-LEVEL INTERRUPTS

AX = 1015h
BX = bit mask for interrupts to post

Return

        indicated routines will be called: (DV 2.0x) at next task switch
   (DV 2.2x) immediately on return from
     hardware interrupt

SeeAlso

    INT 15 AX=1013    INT 15 AX=1014

Notes

      	this is one of the few TopView calls which are allowed from a hardware
  interrupt handler
the handler will be called with ES containing the segment of the handle
  of the next task to be executed; on return, ES must be the segment of
  a task handle


INT 15 AX=1016

15 - TopView - "ISOBJ" - VERIFY OBJECT HANDLE

AX = 1016h
ES:DI = possible object handle

Return

        BX = FFFFh if ES:DI is a valid object handle
     0000h if ES:DI is not

Note

     	under DESQview versions prior to 2.50, an object handle is always a
  pointer to the object; for versions 2.50 and up, only task handles
  are always pointers (other handles may consist of a unique object
  number and offset into DESQview's common memory)

SeeAlso

    INT 15 AX=DE14    INT 15 AX=DE2B    INT 15 AX=DE2C

Table Formats

Object:
Register Save Record:


INT 15 AX=1017

15 - TopView - UNIMPLEMENTED IN DV 2.x

AX = 1017h

Return

        pops up "Programming error" window in DV 2.x


INT 15 AX=1018

15 - TopView - "LOCATE" - FIND WINDOW AT A GIVEN SCREEN LOCATION

AX = 1018h
BH = column
BL = row
ES = segment of object handle for window below which to search
     0000h = start search with topmost window

Return

        ES = segment of object handle for window which is visible at the
       indicated position, or covered by indicated window
   = 0000h no window

SeeAlso

    INT 15 AX=1023    INT 15 AX=1024


INT 15 AX=1019

15 - TopView - "SOUND" - MAKE TONE

AX = 1019h
BX = frequency in Hertz (0000h = silence)
CX = duration in clock ticks (18.2 ticks/sec)

Return

        immediately, tone continues to completion

Notes

      	if another tone is already playing, the new tone does not start until
  completion of the previous one.  Up to 32 tones may be queued before
  the process is blocked until a note completes.
in DV 2.00, the lowest tone allowed is 20 Hz
if CX = 0, the current note is cancelled; if BX = 0 as well, all queued
  notes are also cancelled

SeeAlso

    INT 16 AH=73


INT 15 AX=101A

15 - TopView - "OSTACK" - SWITCH TO TASK'S INTERNAL STACK

AX = 101Ah

Return

        stack switched

Notes

      	this call may not be nested; a second call must be preceded by a call
  to "USTACK" (AX=1025h)
while TopView requires many API calls to be executed while on the
  task's internal stack, DESQview allows those calls to be executed
  regardless of the current stack

SeeAlso

    INT 15 AX=1025


INT 15 AX=101B

15 - TopView - "BEGINC" - BEGIN CRITICAL REGION

AX = 101Bh

Return

        task-switching temporarily disabled

Notes

      	will not task-switch until "ENDC" (AX = 101Ch) called unless task
  voluntarily releases the CPU (upon regaining the CPU, task-switching
  will again be disabled)
suspends the caller until DOS is free

SeeAlso

    INT 15 AH=0D"MultiDOS"    INT 15 AX=101C    INT 15 AX=DE13    INT 15 AX=DE1C    INT 2F AX=1681

SeeAlso

    INT 60DI=0602


INT 15 AX=101C

15 - TopView - "ENDC" - END CRITICAL REGION

AX = 101Ch

Return

        task-switching enabled

Note

     	this API call may be made from within a hardware interrupt handler

SeeAlso

    INT 15 AX=101B    INT 15 AX=DE13    INT 15 AX=DE1B    INT 2F AX=1682    INT 60DI=0603


INT 15 AX=101D

15 - TopView - "STOP" - STOP TASK

AX = 101Dh
ES = segment of object handle for task to be stopped
     (== handle of main window for that task)

Return

        indicated task will not get any CPU time until restarted with AX=101Eh

Note

     	once a task has been stopped, additional "STOP"s are ignored

BUG

    	in DV 2.00, this function is ignored unless the indicated task is the
  current task

SeeAlso

    INT 15 AX=101E    INT 15 AX=102B    INT 15 AH=12"VMiX"    INT 21 AH=81


INT 15 AX=101E

15 - TopView - "START" - START TASK

AX = 101Eh
ES = segment of object handle for task to be started
     (== handle of main window for that task)

Return

        indicated task is started up again

Note

     	once a task has been started, additional "START"s are ignored

SeeAlso

    INT 15 AX=101D    INT 15 AX=102B    INT 21 AH=82


INT 15 AX=101F

15 - TopView - "DISPEROR" - POP-UP ERROR WINDOW

AX = 101Fh
BX = bit fields
     bits 0-12: number of characters to display
     bits 13,14: which mouse button may be pressed to remove window
 00 = either
 01 = left
 10 = right
 11 = either
     bit 15: beep if 1
ES:DI -> text of message
CH = width of error window (0 = default)
CL = height of error window (0 = default)
DX = segment of object handle

Return

        BX = status: 1 = left button, 2 = right, 27 = ESC pressed

Note

     	window remains on-screen until ESC or indicated mouse button is pressed


INT 15 AX=1020

15 - TopView - UNIMPLEMENTED IN DV v2.00+

AX = 1020h

Return

        pops up "Programming error" window in DV v2.00+


INT 15 AX=1021

15 - TopView - "PGMINT" - INTERRUPT ANOTHER TASK

AX = 1021h
BX = segment of object handle for task to interrupt (not self)
DX:CX -> FAR routine to jump to next time task is run

Return

        nothing

Notes

      	the FAR routine is entered with the current ES, DS, SI, DI, and BP
  values, using the task's internal stack (see AX=101Ah); only SS:SP
  needs to be preserved
multiple PGMINTs to a single task are processed last-in first-out
if the other task is in a DOS or DV API call, the interruption will
  occur on return from that call


INT 15 AX=1022

15 - TopView - "GETVER" - GET VERSION

AX = 1022h
BX = 0000h

Return

        BX nonzero, TopView or compatible loaded
(BL = major version, BH = minor version)

Notes

      	TaskView returns BX = 0001h, DESQview v2.00+ returns BX = 0A01h


INT 15 AX=1023

15 - TopView - "POSWIN" - POSITION WINDOW

AX = 1023h
BX = segment of object handle for parent window within which to
     position the window (0 = full screen)
ES = segment of object handle for window to be positioned
DL = bit flags
     bits 0,1: horizontal position
00 = current
01 = center
10 = left
11 = right
     bits 2,3: vertical position
00 = current
01 = center
10 = top
11 = bottom
     bit 4: don't redraw screen if set
     bits 5-7 not used
CH = number of columns to offset from position specified by DL
CL = number of rows to offset from position specified by DL

Return

        nothing


INT 15 AX=1024

15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO

AX = 1024h
BX = segment of object handle for window
      (0 = use default)

Return

        ES:DI -> virtual screen
CX = size of virtual screen in bytes
DL = 00h text screen
     01h graphics screen

SeeAlso

    INT 10 AH=FE    INT 21 AH=2B    /CX=4445


INT 15 AX=1025

15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK

AX = 1025h

Return

        stack switched back

Notes

      	call only after having switched to internal stack with AX=101Ah
while TopView requires many API calls to be executed while on the
  task's private stack, DESQview allows those calls to be executed
  regardless of the current stack

SeeAlso

    INT 15 AX=101A


INT 15 AH=10

15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x

AH = 10h
AL = 26h thru 2Ah

Return

        pops up "Programming error" window in DV 2.x


INT 15 AX=102B

15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK

AX = 102Bh
BX = segment of object handle for task

Return

        nothing

Note

     	forces a task which is waiting on its objectq to continue by placing
  the handle for the task on the objectq

SeeAlso

    INT 15 AX=101D    INT 15 AX=101E    INT 21 AH=82


INT 15 AX=102C

15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS

AX = 102Ch
ES:DI -> contents of .PIF/.DVP file (see below)
BX = size of .PIF/.DVP info

Return

        BX = segment of object handle for new task
     0000h on error

SeeAlso

    INT 15 AX=DE24    INT 21 AH=4B

Table Formats

.PIF/.DVP file:
Variable length record:


INT 15 AX=102D

15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL

AX = 102Dh
BL = subfunction
     00h determine whether using keyboard mouse
Return: BL = 00h using real mouse
     01h using keyboard mouse
     01h turn keyboard mouse on
     02h turn keyboard mouse off


INT 15 AX=102E

15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY

AX = 102Eh
BX = number of bytes

Return

        AX = status
    0000h successful
ES:DI -> allocated system memory
    0001h failed
ES:DI = 0000h:0000h

Note

     	under DV 2.42, this call is identical to AX=1001h

SeeAlso

    INT 15 AX=1001    INT 15 AX=1002    INT 15 AX=DE0C

Table Formats

System memory block header (one paragraph before memory block):


INT 15 AH=11

15 - TopView commands

AH = 11h
AL = various (except 17h)

Note

     	in DESQview 2.x, these function calls are identical to AH=DEh, so
  see those below

SeeAlso

    INT 15 AH=DE


INT 15 AH=11

15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS

AH = 11h
STACK:	DWORD	pointer to ASCIZ string containing a VMiX shell
request (max len = 127)

Return

        AX = status (SYS_OK or SYS_ERROR)

SeeAlso

    INT 15 AH=0C"VMiX"


INT 15 AH=11

15 - MultiDOS Plus - TURN OFF AltZ TOGGLE

AH = 11h

Note

     	disables the Alt-Z MultiDOS command/program-selection hotkey

SeeAlso

    INT 15 AH=12"MultiDOS"


INT 15 AX=1117

15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT

AX = 1117h
BX = 0000h	get current mapping context without setting
     nonzero	set new mapping context

Return

        BX = mapping context in effect before call
interrupts enabled

Notes

      	this function differs from AX = DE17h for DESQview v2.20 through 2.25
mapping contexts determine conventional-memory addressability; setting
  a mapping context ensures that the associated program and data areas
  are in memory for access.  Usable by drivers, TSRs and shared
  programs.
caller need not be running under DESQview, but must ensure that the
  stack in use will not be mapped out by the call

SeeAlso

    INT 15 AX=DE17    INT 2F AX=1685


INT 15 AX=11DE

15 - DESQview - QEXT.SYS - INSTALLATION CHECK

AX = 11DEh

Return

        CF clear if installed
    AX = segment at which QEXT.SYS is located

Note

     	a private entry point may be found by searching the beginning of the
  returned segment for the signature string
  "QUARTERDECK EXTENDED MEMORY MANAGER 286"; the word immediately
  prior to the signature contains the QEXT version number in BCD,
  and the word prior to that contains the offset within the QEXT
  code segment of the private entry point

SeeAlso

    INT 67 AH=3F

Call private entry point with:
AH = 00h ???
AH = nonzero ???


INT 15 AH=12

15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP

AH = 12h
STACK:	WORD	process ID

Return

        AX = status (SYS_OK or SYS_ERROR)

SeeAlso

    INT 15 AH=03"MultiDOS"    INT 15 AX=101D    INT 15 AH=13"VMiX"


INT 15 AH=12

15 - MultiDOS Plus - TURN ON AltZ TOGGLE

AH = 12h

Note

     	enables the Alt-Z MultiDOS command/program-selection hotkey

SeeAlso

    INT 15 AH=11"MultiDOS"


INT 15 AH=12

15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE

AH = 12h
BH = 00h
BL = which handle to return
    00h handle in DWORD on top of stack
    01h current task's window handle
    02h given task's mailbox handle (task's handle on stack)
    03h current task's mailbox handle
    04h given task's keyboard handle (task's handle on stack)
    05h current task's keyboard object handle
    06h given task's OBJECTQ handle (task's handle on stack)
    07h current task's OBJECTQ handle
    08h	  \
      thru > return 0000:0000 under DV < 2.26
    10h	  /
    0Ch (2.26+) task owning object with handle in DWORD on top of stack
    0Dh (2.26+) task handle of owner (parent) of current task

Return

        DWORD on top of stack is object handle

Note

     	BL=0Ch,0Dh returns 00000000h if the object is not open (keyboard,
  mailbox, panel, pointer, and timer objects) or is an orphan (task,
  window)

SeeAlso

    INT 15 AH=12    /BH=02h    INT 15 AH=12    /BH=80


INT 15 AH=12

15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT

AH = 12h
BH = 01h
BL = object type to create
    00h (DV 2.0x only) handle is DWORD on top of stack
    01h (DV 2.0x only) use task's window handle
    02h (DV 2.0x only) given task's mailbox (task's handle on stack)
    03h (DV 2.0x only) current task's mailbox
    04h (DV 2.0x only) given task's keyboard (task's handle on stack)
    05h (DV 2.0x only) current task's keyboard object
    08h WINDOW class
    09h MAILBOX class
    0Ah KEYBOARD class
    0Bh TIMER object (counts down 32-bit time in 10ms increments)
    0Fh POINTER object
    10h PANEL object
STACK: (if window object or WINDOW class)
       DWORD address to jump to (no new task if high word == 0)
       DWORD (reserved) 0 = non-task window, FFFFh = task window
       DWORD bytes for task's private stack (FFFFh == default of 0100h)
       DWORD bytes system memory for input buffer for READ/READN
(0 == none, -1 == default--same as logical window size)
       DWORD window size, columns
       DWORD window size, rows
       DWORD length of window title
       DWORD address of window title

Return

        DWORD on top of stack is new object handle

Notes

      	if a new task is created, it is started with
  AX = BX = SI = DI = BP = 0
  DX:CX = handle of parent task
  DS = ES = SS = segment of private stack (and new task's handle)
new windows are orphans, inherit the colors/hidden status of the
  creating task's window, and are placed in the upper left hand corner
  of the screen but not automatically redrawn
new keyboards are closed, and have all object bits cleared except for
  the hardware cursor bit

SeeAlso

    INT 15 AH=12    /BH=02h    INT 15 AH=12    /BH=81


INT 15 AH=12

15 - TopView - SEND MESSAGE - "FREE" - FREE AN OBJECT

AH = 12h
BH = 02h
BL = object
    00h handle in DWORD on top of stack
window: close window and free
timer: free timer
panel: free panel object
pointer: free pointer
    01h task's window handle - kills task, never returns
    02h given task's mailbox (task's handle on top of stack)
    03h current task's mailbox
    04h given task's keyboard (task's handle on top of stack)
    05h current task's keyboard object

Notes

      	when a window is freed, its keyboard and pointer objects are freed;
  task windows also free any mailbox, objectq, and panel objects held
  by the task and any child tasks
if the keyboard being freed is the default keyboard for a task, this
  call is equivalent to CLOSE
panel and pointer objects are automatically closed if open

SeeAlso

    INT 15 AH=12    /BH=01h    INT 15 AH=12    /BH=0Dh    INT 15 AH=12    /BH=82


INT 15 AH=12

15 - TopView - SEND MESSAGE - "ADDR" - GET HANDLE OF MESSAGE SENDER

AH = 12h
BH = 03h
BL = object
    00h mailbox handle in DWORD on top of stack
    02h sender of last msg read from mailbox (task's handle on stack)
    03h sender of last msg read from current task's mailbox

Return

        DWORD on stack is task handle of message sender

SeeAlso

    INT 15 AH=12    /BH=00h    INT 15 AH=12    /BH=83


INT 15 AH=12

15 - DESQview v2.26+ - "CONNECT" - CONNECT TWO WINDOWS

AH = 12h
BH = 03h
BL = window to be connected
    00h handle of window to be attached in DWORD on top of stack
    01h attach current task's main window
STACK: DWORD handle of window to attach to or 00000000h to detach

Return

        STACK popped

Notes

      	when two windows are connected, both will move if the user moves either
multiple windows may be attached to a single window, but each window
  may only be attached to one window at a time

SeeAlso

    INT 15 AH=12    /BH=83


INT 15 AH=12

15 - TopView - SEND MESSAGE - "DIR" - GET PANEL FILE DIRECTORY

AH = 12h
BX = 0300h
STACK: DWORD handle of panel object

Return

        STACK: DWORD length of directory (always multiple of 14 bytes)
       DWORD address of directory

Note

     	a null string is returned if the object is not open

SeeAlso

    INT 15 AH=12    /BX=0400h"APPLY"    INT 15 AH=12    /BH=83

Table Formats

Panel file:


INT 15 AH=12

15 - TopView - SEND MESSAGE - "READ" - READ NEXT LOGICAL LINE OF WINDOW

AH = 12h
BH = 04h
BL = window to read from
    00h handle is DWORD on top of stack
    01h use calling task's default window
    0Ch (DV 2.26+) default window of task owning handle on top of stack
    0Dh (DV 2.26+) default window of parent task of current task

Return

        STACK:	DWORD number of bytes read
DWORD address of buffer

Notes

      	reading starts at the current logical cursor position; the cursor is
  updated to point at the character following the last one read
any translucent blanks (FFh) which are visible on screen are changed
  to the character which is seen through them
the string produced by the read is placed in an input buffer which may
  be reused by the next READ or READN of a window
window stream opcodes D8h and D9h determine whether the read returns
  characters or attributes

SeeAlso

    INT 15 AH=12    /BH=05h"WINDOW"    INT 15 AH=12    /BH=12h    INT 15 AH=12    /BH=84


INT 15 AH=12

15 - TopView - SEND MESSAGE - "READ" - GET NEXT RECORD FROM OBJECT

AH = 12h
BH = 04h
BL = object
    00h handle is DWORD on top of stack
mailbox: wait for and get next message
keyboard: wait for and get pointer to next input buffer
pointer: wait for and get next message
    02h get next message from mailbox (task's handle on top of stack)
    03h get next message from current task's mailbox
    04h get the next input from keyboard (handle on top of stack)
    05h get the next input from task's default keyboard
    06h wait for input from any object in OBJECTQ (handle on stack)
    07h wait for input from any object in task's default OBJECTQ

Return

        STACK: (if objectq) DWORD handle of object with input
       (otherwise)  DWORD number of bytes
    DWORD address

Notes

      	for a keyboard in keystroke mode, the input buffer is a single byte
  containing the character code as returned by the BIOS; the BIOS scan
  code is available via the STATUS call if the character is zero
for a keyboard in field mode, the input buffer format is determined
  by the field table header for the window the keyboard is attached to
keyboard input buffers and mailbox message buffers may be invalidated
  by the next READ, ERASE, CLOSE, or FREE message to the same object

SeeAlso

    INT 15 AH=12    /BH=05h"OBJECT"    INT 15 AH=12    /BH=84

Table Formats

Pointer message:


INT 15 AH=12

15 - TopView - SEND MESSAGE - "READ" - WAIT FOR TIMER TO EXPIRE

AH = 12h
BX = 0400h
STACK: DWORD timer's handle

Return

        after timer expires
STACK: DWORD time in 1/100 sec after midnight when timer expired

SeeAlso

    INT 15 AH=12    /BH=0Ah    INT 15 AH=12    /BH=84


INT 15 AH=12

15 - TopView - SEND MESSAGE - "APPLY" - WRITE PANEL TO WINDOW

AH = 12h
BX = 0400h
STACK: DWORD handle of panel object
       DWORD window's handle (or 0 for current task's window)
       DWORD length of panel name
       DWORD pointer to panel name

Return

        STACK: DWORD handle of window which was used
       DWORD handle of keyboard or 0

Notes

      	status of APPLY may be checked with STATUS message
panel MUST have the following format
  first byte must be 1Bh (i.e. must start with a stream)
  first opcode in stream must be E5h
    single byte arg of opcode is interpreted thus:
      bits 7,6	11 means create new window
10 means create new field table for existing window
01 means use existing window and field table
      bit 5 if set, panel contains a field table
(creates a new keyboard and puts it in field mode)
      bit 4 if set, panel contains input fields
      bit 3 if set, panel contains select fields but no input fields
if the panel contains input or select fields, a keyboard handle is
  returned; either the window's current open keyboard or a
  newly-created keyboard object.  The caller should read that keyboard
  to obtain input from the panel.

SeeAlso

    INT 15 AH=12    /BH=84


INT 15 AH=12

15 - TopView - SEND MESSAGE - "WRITE" - WRITE TO OBJECT

AH = 12h
BH = 05h
BL = object
    00h handle is DWORD on top of stack
timer: start timer to end at a specified time
keyboard: add input buffer to queue
pointer: move pointer icon to specified position
    02h send message by value/status=0 to mbox (task's handle on stack)
    03h send message by value/status=0 to current task's mailbox
    04h add input buffer to KEYBOARD queue (handle on top of stack)
    05h add input buffer to task's default KEYBOARD queue
    06h add an object to OBJECTQ (handle on top of stack)
    07h add an object to task's default OBJECTQ
STACK: (if mailbox)  DWORD length
     DWORD address
       (if keyboard) DWORD status (scan code in keystroke mode)
     DWORD length (should be 1 in keystroke mode)
     DWORD address
       (if objectq)  DWORD handle of object to add
       (if timer)    DWORD 1/100ths seconds since midnight (actually
   only accurate to 1/18 sec)
       (if pointer)  DWORD column relative to origin of window
     DWORD row relative to origin of window

Notes

      	under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h)
the data and status written to a keyboard object must match the format
  returned by the keyboard object in the current mode
the pointer position is scaled according to the current scaling factors

SeeAlso

    INT 15 AH=12    /BH=04h    INT 15 AH=12    /BH=85


INT 15 AH=12

15 - TopView - SEND MESSAGE - "WRITE" - WRITE STRING TO WINDOW

AH = 12h
BH = 05h
BL = window to write to
    00h DWORD on top of stack is window handle
    01h write string to task's default window
    0Ch (DV 2.26+) default window of task owning handle on top of stack
    0Dh (DV 2.26+) default window of parent of current task
STACK: DWORD object handle if handle passed on stack
       DWORD total length of string (high word == 0)
       DWORD address of string to display

Return

        indicated actions performed
a. non-control characters are displayed (opcodes DEh and DFh control
   whether the attributes are left or changed to the current attrib)
b. CR/LF/BS/Tab cause the usual cursor movement
c. ESC starts a data structure with additional commands if following
   byte is less than 20h; otherwise, it is written to the window
STACK:	DWORD handle of new window if window stream opcode E6h
else nothing

SeeAlso

    INT 15 AH=12    /BH=04h    INT 15 AH=12    /BH=85

Data Structure:
MAGIC  DB  1Bh
MODE   DB  ?   ; 00h, 01h, 10h, 14h-1Fh legal
LENGTH DW  ?   ; length of remainder in bytes
var-length fields follow, each an OPCODE followed by
     zero or more args

MODE 00h (set or display values) "WINDOW STREAM"
    Opcodes:args
00h  display 20h blanks with the default attribute
01h-1Fh display OPCODE blanks with the default attribute
20h  display char with default attribute 20h times
     BYTE char to repeat
21h-3Fh display char with default attribute OPCODE-20h times
     BYTE char to repeat
40h  display 20h blanks with specified attribute
     BYTE attribute of blanks
41h-5Fh display OPCODE-40h blanks with specified attribute
     BYTE attribute of blanks
60h  display next 20h characters
     20h BYTEs characters to display
61h-7Fh display next OPCODE-60h characters
     N BYTEs characters to display
80h-87h	 display N blanks with default attribute
     BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
      [000h means 800h]
88h-8Fh display N copies of the character
     BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
      [000h means 800h]
     BYTE character to repeat
90h-97h	 display N blanks with specified attribute
     BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
      [000h means 800h]
     BYTE attribute
98h-9FH	 display string at logical cursor pos
     BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
      [000h means 800h]
     N BYTEs string to display
A0h  set logical cursor row
     BYTE row number (0 is top)
A1h  set logical cursor column
     BYTE column number (0 is leftmost)
A2h  set top edge of scrolling region
     BYTE row
A3h  set left edge of scrolling region
     BYTE column
A4h  set row of physical window position
     BYTE line
A5h  set column of physical window position
     BYTE column
A6h  set height of physical window
     BYTE #rows
A7h  set width of physical window
     BYTE #columns
A8h  set viewport row
     BYTE row
A9h  set viewport column
     BYTE column
AAh  set virtual screen height [contents of window unpredictable after]
     BYTE rows
ABh  set virtual screen width [contents of window unpredictable after]
     BYTE columns
ACh-AEh	 unused
AFh  set compatible/preferred video modes
     BYTE compatibility/preference mask
bit 7	compatible with monochrome
bit 6	compatible with color text, EGA/VGA graphics
bit 5	compatible with medium-resolution CGA graphics
bit 4	compatible with high-resolution CGA graphics
bit 3	prefer monochrome
bit 2	prefer color text, EGA/VGA graphics
bit 1	prefer medium-resolution CGA graphics
bit 0	prefer high-resolution CGA graphics
B0h  move logical cursor down
     BYTE #rows (signed, negative values move up)
[if #rows=0 and hardware cursor owner, update hw crsr]
B1h  move logical cursor right
     BYTE #cols (signed, negative values move left)
[if #cols=0 and hardware cursor owner, update hw crsr]
B2h  shift top edge of scrolling region
     BYTE #rows (signed)
B3h  shift left edge of scrolling region
     BYTE #cols (signed)
B4h  shift physical window down
     BYTE #lines (signed)
B5h  shift physical window right
     BYTE #columns (signed)
B6h  expand physical window vertically
     BYTE #lines (signed)
B7h  expand physical window horizontally
     BYTE #columns (signed)
B8h  adjust viewport row
     BYTE #rows (signed)
B9h  adjust viewport column
     BYTE #columns (signed)
BAh  adjust virtual screen height [contents of window unpredict after]
     BYTE #rows to increase (signed)
BBh  adjust virtual screen width [contents of window unpredictbl after]
     BYTE #cols to increase (signed)
BCh-BFh	 reserved (currently unused)
C0h  set logical cursor position
     BYTE row number (0 is top border)
     BYTE column number (0 is left border)
C1h  set top left corner of scrolling region
     BYTE row
     BYTE column
C2h  set physical window pos
     BYTE upper left row (no top border if 0)
     BYTE upper left column (no left border if 0)
C3h  set current window size
     BYTE #rows
     BYTE #cols
C4h  set upper left corner of viewport (portion of virtual screen
     displayed in window)
     BYTE row
     BYTE column
C5h  set size of virtual screen [contents unpredictable afterwards]
     BYTE #rows
     BYTE #cols
C6h  unused
C7h  unused
C8h  set logical cursor relative to current position
     BYTE number of rows to move down (signed)
     BYTE number of columns to move right (signed)
  [if #rows=#cols=0 and hardware cursor owner, update hw cursr]
C9h  shift top left corner of scrolling region
     BYTE #rows (signed)
     BYTE #cols (signed)
CAh  set window pos relative to current position
     BYTE number of rows to shift down (signed)
     BYTE number of columns to shift right (signed)
CBh  set window size relative to current size
     BYTE number of rows to expand (signed)
     BYTE number of cols to expand (signed)
CCh  shift viewport relative to current position
     BYTE rows to shift (signed)
     BYTE cols to shift (signed)
CDh  resize virtual screen
     BYTE #rows to expand (signed)
     BYTE #cols to expand (signed)
CEh  scroll text when using E8h-EBh/F8h-FBh opcodes (default)
CFh  scroll attributes when using  E8h-EBh/F8h-FBh opcodes
D0h  allow window frame to extend beyond screen
D1h  always display a complete frame, even if window extends beyond
     edge of screen
D2h  allow DV to change logical colors on video mode switch (default)
D3h  application changes logical attributes
D4h  window is visible [must redraw to actually make visible]
D5h  window is hidden [must redraw to actually remove]
D6h  window has frame (default)
D7h  window unframed [must redraw to actually remove frame]
D8h  READ/READN will read characters from window (default)
D9h  READ/READN will read attributes from window
DAh  use logical attributes, which may be remapped
attributes
   1 normal text
   2 highlighted normal text
   3 help text
   4 highlighted help text
   5 error message
   6 highlighted error message
   7 emphasized text
   8 marked text
   9-16 are reverse video versions of 1-8
DBh  use physical attributes for characters
DCh  enable special actions for control characters (default)
DDh  disable special control char handling, all chars displayable by
     BIOS TTY call
DEh  write both character and attribute (default)
DFh  write character only, leave attribute untouched
E0h  repeat following commands through E1h opcode
     BYTE number of times to repeat (00h means 256 times)
E1h  end of commands to repeat, start repeating them
E2h  set current output color
     BYTE color
E3h  clear virtual screen from scroll origin to end using current color
E4h  redraw window
E5h  select menu style
     BYTE style (normally 18h)
bits 5,4 = 01 use two-letter menu entries for remainder of
  this stream
E5h  (panel file only)
     BYTE modifier
bits 7,6 = 11 panel stream creates new window
 = 10 panel defines new field table for existing window
 = 01 panel stream uses existing window & field table
bit 5 = 1 stream contains a field table (create kyboard object)
bit 4 = 1 stream defines input fields (create keyboard object)
bit 3 = 1 stream defines select fields but not input fields
bit 2 = 1 stream defines exclusive input window (DV 2.2)
bit 1 reserved
bit 0 reserved
E6h  create new window and perform rest of manipulations in new window
     BYTE number of rows
     BYTE number of columns
     Return: DWORD object handle of new window returned on stack at end
     Note: the window is created with a physical size of 0x0 at the
     same position as the window to which this stream was sent
E7h  no operation
E8h  scroll area up (top left corner defined by opcode C1h)
     BYTE height
     BYTE width
E9h  scroll area down (top left corner defined by opcode C1h)
     BYTE height
     BYTE width
EAh  scroll area left (top left corner defined by opcode C1h)
     BYTE height
     BYTE width
EBh  scroll area right (top left corner defined by opcode C1h)
     BYTE height
     BYTE width
ECh  set logical attributes for window contents
     BYTE video modes command applies to
bit 7	monochrome
bit 6	color text, EGA/VGA graphics
bit 5	medium-resolution CGA graphics
bit 4	high-resolution CGA graphics
     BYTE which attributes to set
bit 7  if set, copy single following byte to indicated attribs
bits 4-6  # of first attribute to change - 1
bits 0-3  # of consecutive attributes to change
     N BYTEs new attributes
EDh  set logical attributes for window frame
     BYTE video modes command applies to (see opcode ECh)
     BYTE which attributes to set
bit 7  if set, copy single following byte to indicated attrs
bits 4-6  # of first attribute to change - 1
bits 0-3  # of consecutive attributes to change
     N BYTEs new attributes
  attributes
       1 = top left corner
       2 = top right corner
       3 = bottom left corner
       4 = bottom right corner
       5 = top edge
       6 = bottom edge
       7 = left edge
       8 = right edge
EEh  set characters for window frame
     BYTE video modes command applies to (see opcode ECh)
     BYTE which characters to set
bit 7  if set, copy single following byte to indicated chars
bits 4-6  # of first char to change - 1
bits 0-3  # of consecutive chars to change
     N BYTEs new chars (same relative position as attributes above)
EFh  set window name
     BYTE length of name (should be in range 0 to logical screen width)
     N BYTEs name
F0h  clear input field to blanks
     BYTE field number
F1h  fill input field with character
     BYTE field number
     BYTE char
F2h  set color of input field
     BYTE field number (1-N)
     BYTE attribute
F3h  set initial contents of input field
     BYTE field number (1-N)
     N BYTEs enough chars to exactly fill field as defined by op FFh
F4h  position cursor to start of specific input field
     BYTE field number (1-N)
F5h  change field table entry
     BYTE field number
     7-8 BYTEs field table entry (see opcode FFh below)
F6h  set field type
     BYTE field number
     BYTE type
00h inactive
40h output field
80h input field
C0h deselected field
C2h selected field
F7h  "broadcast write"	write data to fields with program output bit
set in field table entry, in field number order
     N BYTEs (total length of all program output fields)
F8h  scroll field up a line
     BYTE field number
F9h  scroll field down a line
     BYTE field number
FAh  scroll field left
     BYTE field number
FBh  scroll field right
     BYTE field number
FCh  set field table header
     BYTE number of fields (must be <= existing number of fields)
     BYTE screen behavior bits
bit 7  reserved
bit 6  set if menu items may be selected via keyboard
bit 5  set if left mouse button in "status" mode (press
anywhere in window immediately returns control to app)
bit 4  set if right mouse button in "status" mode
bit 3  if set, select fields return contents or blanks rather
than 'Y' or 'N'
bit 2  if set, modified bits reset on return to application
bits 0,1 = 00 no data returned on read of keyboard
   01 data returned as array of chars containing
all fields packed together, with no field
numbers
   10 data returned as numbered variable-length
records for all fields
   11 data returned as numbered variable-length
records for the fields which were modified
     BYTE current input field (updated by DESQview)
     BYTE current select field (updated by DESQview)
     BYTE attribute for select fields when they are pointed at
     BYTE attribute for select fields which have been selected
FDh  reset modified bit for all fields
FEh  reset selected and modified bits for all fields
FFh  set up input fields
     6 BYTEs table header (see opcode FCh above)
     the field table entries, one for each field
 BYTE start row	   \
 BYTE start column  \ if menu selection and start is to
 BYTE end row	    / right or below end, select from kbd only
 BYTE end column   /
 BYTE field type
    bits 7,6 = 00 inactive (non-entry) field
       01 echos keystrokes input to make menu selection
       10 fill-in field
       11 select field
    bit 5  field can be filled by broadcast write (F7h opcode)
    bit 4  reserved
    bit 3  reserved
    bit 2  reserved
    bit 1  set if field selected
    bit 0  set if field modified
 BYTE modifier
      if type is fill-in, then bit flags to determine behavior
  bit 7	 if set, automatically enter CR when field full
  bit 6	 move to next field when current field is full
  bit 5	 if set, enter text from right end (for numbers)
  bit 4	 if set, force input to uppercase
  bit 3	 if set, clear old contents on first keystroke
  bit 2	 if set, input returned when cursor moves out
 of modified field ("validate",API level 2.02+)
  bit 1	 reserved
  bit 0	 reserved
      if select field, first key to press to activate
  00h if have to point-&-click or is an extended-ASCII
      keystroke (only if two-key menus enabled)
 BYTE (select field only) normal color of field
 BYTE second key for select field.  This byte is present iff
      two-letter menu entries selected with opcode E5h, and
      in that case is present regardless of field type
     Note: DESQview uses and updates the actual copy of the information
       which is contained in the stream.  Thus this info must remain
       intact until after the data entry is complete.

MODE 01h "QUERY STREAM" (valid only for those opcodes listed here)
A0h return logical cursor row in next byte
A1h return logical cursor column in next byte
A2h return top row of scrolling region in next byte
A3h return left column of scrolling region in next byte
A4h return row of physical window origin in next byte
A5h return column of physical window origin in next byte
A6h return height of physcial window in next byte
A7h return width of physical window in next byte
A8h return row of viewport origin in next byte
A9h return column of viewport origin in next byte
AAh return height of virtual screen in next byte
ABh return width of virtual screen in next byte
AFh return current video mode in next byte
C0h return current logical cursor position in next two bytes
C1h return top left corner of scrolling region in next two bytes
C2h return current window position in next two bytes
C3h return current window size in next two bytes
C4h return current viewport origin in next two bytes
C5h return current virtual screen size in next two bytes
D0h \ overwritten with D0h if frames may fall off screen edge
D1h /	       D1h if frames always displayed entirely
D2h \ overwritten with D2h if DESQview controls color palette
D3h /	       D3h if application changes color palette
D4h \ overwritten with D4h if window visible
D5h /	       D5h if window hidden
D6h \ overwritten with D6h if window has frame
D7h /	       D7h if window unframed
D8h \ overwritten with D8h if reading characters from window
D9h /	       D9h if reading attributes from window
DAh \ overwritten with DAh if using logical attributes
DBh /	       DBh if using physical attributes
DCh \ overwritten with DCh if TTY control char interpretation on
DDh /	       DDh if TTY control char interpretation off
DEh \ overwritten with DEh if writing both characters and attributes
DFh /	       DFh if leaving attributes untouched
E2h return current color in next byte
ECh get logical attributes for window contents
    BYTE execute call if currently in specified video mode
bit 7	monochrome
bit 6	color text, EGA/VGA graphics
bit 5	medium-resolution CGA graphics
bit 4	high-resolution CGA graphics
    BYTE which attributes to get
bit 7 unused???
bits 4-6 first attribute to get - 1
bits 0-3 # consecutive attributes
    N BYTEs buffer to hold attributes
EDh get logical attributes for window frame
    BYTE execute call if currently in video mode (see opcode ECh)
    BYTE which attributes to get
bit 7 unused???
bits 4-6 first attribute to get - 1
bits 0-3 # consecutive attributes
    N BYTEs buffer to hold attributes
EEh get characters for window frame
    BYTE execute call if currently in video mode (see opcode ECh)
    BYTE which attributes to get
bit 7 unused???
bits 4-6 first char to get - 1
bits 0-3 # consecutive chars
    N BYTEs buffer to hold chars
EFh return first N characters of current window name
    BYTE    max length of returned name
    N BYTEs buffer to hold window name
F3h return contents of specified field
    BYTE field number
    N BYTEs buffer to hold field contents (size exactly equal to field
    size)
F5h get field table entry
    BYTE field number
    7-8 BYTEs buffer to hold field table entry
       Notes: DV < 2.26 always returns 7 bytes
      DV 2.26+ w/ APILEVEL < 2.26 returns 8 bytes iff field
table is using 8-byte entries and eighth byte after
F5h is E7h (NOP); otherwise, 7 bytes are returned
      DV 2.26+ w/ APILEVEL > 2.26 returns 7 or 8 bytes
depending on the field table entry size
F6h get type of a field
    BYTE field number
    BYTE type
FCh get field table header
    6 BYTEs buffer to store header

MODE 10h "MANAGER STREAM" (valid only for opcodes listed here)
00h allow window to be moved horizontally
01h allow window to be moved vertically
02h allow window to change width
03h allow window to change height
04h allow window to be scrolled horizontally
05h allow window to be scrolled vertically
06h allow "Close Window" menu selection for application
07h allow "Hide Window" menu selection for application
08h allow application to be suspended ("Rearrange/Freeze")
0Eh allow "Scissors" menu
10h allow DESQview main menu to be popped up
11h allow "Switch Windows" menu
12h allow "Open Window" menu
13h allow "Quit" menu selection
20h-33h opposite of 00h-13h, disallow specified action
40h notify if horizontal position of window changes
41h notify if vertical position of window changes
42h notify if width of window changes
43h notify if height of window changes
44h notify if window scrolled horizontally
45h notify if window scrolled vertically
46h notify if window is closed--program has to clean up and exit itself
47h notify if window is hidden
48h notify if "?" on main menu selected
49h notify if pointer message sent to window
4Ah notify if window is placed in foreground
4Bh notify if window is placed in background
4Ch notify if video mode changes
4Dh notify if "Scissors" menu "Cut" option selected
4Eh notify if "Scissors" menu "Copy" option selected
4Fh notify if "Scissors" menu "Paste" option selected
50h notify if DESQview main menu about to pop up
51h notify if DESQview main menu popped down
60h-71h	 opposite of 40h-51h: don't notify on specified event
84h attach window to parent task's window (both move together)
85h detach window from parent task's window (may move independently)
86h disable background operation for application
87h enable running in background
88h set minimum size of physical window
    BYTE rows
    BYTE columns
89h set maximum size of physical window
    BYTE rows
    BYTE cols
8Ah set primary asynchronous notification routine
    DWORD address of routine, 0000h:0000h means none (see also below)
8Bh set async notification parameter
    DWORD 32-bit value passed to 8Ah async routine in DS:SI
ACh (DV2.2+) perform regular select field attribute processing
ADh (DV2.2+) protect attributes in selected field from being lost
AEh make window default notify window for owning app (API level 2.00+)
AFh set selected field marker character
    BYTE character to display at left edge of selected fields
BCh set standard field processing mode
BDh set alternate field processing mode (enables cursor pad for menus)
BEh disables changing reverse logical attributes with ECh opcode
BFh enables changing reverse logical attributes with ECh opcode
C0h make current window topmost in system
C1h force current process into foreground
C2h make current window topmost in process
C3h position mouse pointer relative to origin of current field
    BYTE rows below upper left corner of field
    BYTE columns to right of upper left corner of field
C4h position mouse pointer relative to origin of given field
    BYTE field number
    BYTE rows below upper left corner of field
    BYTE columns to right of upper left corner of field
C5h orphan current window (also hides it)
Note: must be last in stream; all subsequent commands ignored
C6h show all windows for this process
C7h hide all windows for this process
C8h suspend process and hide all its windows
C9h force current process into background
CAh make current window bottom-most in process
CBh cancel current window manager operation, remove DV menu, give
    control to topmost application
CCh orphan window and give it to the system for use as paste data
CEh reorder windows
    DWORD pointer to null-terminated list of words
  each word is segment of object handle for a window
FFh no operation

MODES 14h to 1Fh "USER STREAMS"
normally NOPs, but may be defined by SETESC message to invoke FAR
routines, one for each mode number
  on entry to handler,
DS:SI -> first byte of actual stream (not header)
CX = #bytes in stream
ES:DI = window's handle

Asynchronous notification routine defined by manager stream 8Ah called with:
ES:DI = handle of window
DS:SI is 32-bit value set by 8Bh manager stream opcode
   mailbox contains message indicating event
      Opcode
       40h  horizontal movement
   DWORD object handle of window
   BYTE	 new row
   BYTE	 new col
       41h  vertical movement
   DWORD object handle of window
   BYTE	 new row
   BYTE	 new col
       42h  horizontal size change
   DWORD object handle of window
   BYTE	 new rows
   BYTE	 new cols
       43h  vertical size change
   DWORD object handle of window
   BYTE	 new rows
   BYTE	 new cols
       44h  scrolled horizontally
   DWORD object handle of window
   BYTE	 mouse row within window
   BYTE	 mouse column within window
   BYTE	 field mouse is on, 0 if none
   BYTE	 amount moved: >0 right, <0 left, 0 done
       45h  scrolled vertically
   DWORD object hande of window
   BYTE	 mouse row within window
   BYTE	 mouse column within window
   BYTE	 field mouse is on, 0 if none
   BYTE	 amount moved: >0 down, <0 up, 0 done
       46h  window close request
   DWORD object handle of window
   BYTE	 mouse pointer row
   BYTE	 mouse pointer column
   BYTE	 field mouse is on, 0 if none
       47h  application's windows hidden
       48h  Help for Program selected
   DWORD object handle of window
   BYTE	 mouse pointer row
   BYTE	 mouse pointer column
   BYTE	 field mouse is on, 0 if none
       49h  pointer message sent to window
   DWORD pointer handle which received message
       4Ah  switched to window from another ("raise")
       4Bh  switched away from the window ("lower")
       4Ch  video mode changed
   BYTE new BIOS video mode
       4Dh  Scissors/cUt selected
   DWORD object handle of window
   BYTE	 row of upper left corner
   BYTE	 column of upper left corner
   BYTE	 field number ul corner is in, 0=none
   DWORD handle of orphaned window created with
 copy of data from specified region
   BYTE	 height of region
   BYTE	 width of region
       4Eh  Scissors/Copy selected
   DWORD object handle of window
   BYTE	 row of upper left corner
   BYTE	 column of upper left corner
   BYTE	 field number ul corner is in, 0=none
   DWORD handle of orphaned window created with
 copy of data from specified region
   BYTE	 height of region
   BYTE	 width of region
       4Fh  Scissors/Paste selected
   DWORD object handle of window
   BYTE	 row of upper left corner
   BYTE	 column of upper left corner
   BYTE	 field number ul corner is in, 0=none
   DWORD handle of orphaned window with data
   BYTE	 height of region
   BYTE	 width of region
Note: orphaned data window should be adopted or freed
when done
       50h  main menu about to pop up
       51h  main menu popped down

Return

        all registers unchanged


INT 15 AH=12

15 - DESQview 2.20+ - SEND MESSAGE - "SETPRI" - SET PRIORITY WITHIN OBJECTQ

AH = 12h
BH = 06h
BL = object
    00h object handle in DWORD on top of stack
mailbox, keyboard, pointer, or timer
(DV 2.50+) window
    01h (DV 2.50+) current task's window
    04h given task's keyboard (task's handle on top of stack)
    05h current task's default keyboard
STACK: DWORD new priority of object in task's OBJECTQ
(new priority of task if window handle)

Notes

      	initially all objects have the same default value.  Should only make
  relative adjustments to this default value.
when changing priorities, all objects already on the objectq are
  reordered
for window handles, only the non-blocked task(s) with the highest
  priority receive CPU time under DESQview 2.50-2.52; the default
  priority is 0Ah

SeeAlso

    INT 15 AH=12    /BH=07h    INT 15 AH=12    /BH=87


INT 15 AH=12

15 - DESQview 2.20+ - SEND MESSAGE - "GETPRI" - GET PRIORITY WITHIN OBJECTQ

AH = 12h
BH = 07h
BL = object
    00h object handle in DWORD on top of stack
mailbox, keyboard, pointer, or timer
(DV 2.50+) window
    01h (DV 2.50+) current task's window
    04h given task's keyboard (task's handle on top of stack)
    05h current task's default keyboard

Return

        STACK: DWORD object priority

Note

     	initially all objects have the same default value.  Should only make
  relative adjustments to this default value.

SeeAlso

    INT 15 AH=12    /BH=06


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SIZEOF" - GET OBJECT SIZE

AH = 12h
BH = 08h
BL = object
    00h handle in DWORD on top of stack
window: total character positions in window
timer: elapsed time since timer started
pointer: number of messages queued to pointer object
panel: number of panels in panel file
keyboard: number of input buffers queued
    01h total chars in current task's default window
    02h number of messages in task's mailbox (task's handle on stack)
    03h number of messages in current task's mailbox
    04h number of input buffers queued in task's kbd (handle on stack)
    05h number of input buffers queued for current task's default kbd
    06h number of objects queued in OBJECTQ (task's handle on stack)
    07h number of objects queued in current task's OBJECTQ
    0Ch (DV 2.26+) total chars in window owning handle on top of stack
    0Dh (DV 2.26+) total chars in parent task's window

Return

        DWORD on top of stack is result

Note

     	for panel objects, a count of zero is returned if no panel file is open
  for the object

SeeAlso

    INT 15 AH=12    /BH=04h    INT 15 AH=12    /BH=09


INT 15 AH=12

15 - TopView - SEND MESSAGE - "LEN" - GET OBJECT LENGTH

AH = 12h
BH = 09h
BL = object
    00h handle in DWORD on top of stack
window: get chars/line
timer: get 1/100 seconds remaining before timer expires
mailbox: (DV/X) get number of bytes queued to mailbox
    01h get number of chars/line in current task's default window
    0Ch (DV 2.26+) get chars/line in window owning handle on top of stk
    0Dh (DV 2.26+) get chars/line in parent task's window

Return

        DWORD on top of stack is length

SeeAlso

    INT 15 AH=12    /BH=08


INT 15 AH=12

15 - TopView - SEND MESSAGE - "ADDTO" - WRITE CHARS AND ATTRIBS TO WINDOW

AH = 12h
BH = 0Ah
BL = window to write to
    00h window handle is DWORD on top of stack
    01h current task's default window
    0Ch (DV 2.26+) default window of task owning handle on top of stack
    0Dh (DV 2.26+) default window of parent of current task
STACK:	DWORD count of attributes
DWORD address of attribute string
DWORD count of characters
DWORD address of character string

Notes

      	if one string is longer than the other, the shorter one will be reused
  until the longer one is exhausted
the cursor is left just after the last character written

SeeAlso

    INT 15 AH=12    /BH=0Bh"WINDOW


INT 15 AH=12

15 - TopView - SEND MESSAGE - "ADDTO" - SEND MAILBOX MESSAGE/STAT BY VALUE

AH = 12h
BH = 0Ah
BL = mailbox to write to
    00h handle is DWORD on top of stack
    02h default mailbox of task whose handle is on top of stack
    03h current task's default mailbox
STACK:	DWORD	status (low byte)
DWORD	length of message
DWORD	address of message

Notes

      	the message is copied into either system or common memory
insufficient memory normally causes the process to be aborted; under
  DESQview 2.2+, failed writes may return CF set instead (see AX=DE15h)

SeeAlso

    INT 15 AH=12    /BH=0Bh"MAILBOX


INT 15 AH=12

15 - TopView - SEND MESSAGE - "ADDTO" - SET OBJECT BITS

AH = 12h
BH = 0Ah
BL = object
    00h handle is DWORD on top of stack
timer: start timer for specified interval
pointer: set control flags
keyboard: set control flags
    04h set control flags on KEYBOARD object (handle on top of stack)
    05h set control flags on task's default KEYBOARD object
STACK: (if timer)   DWORD duration in 1/100 seconds
       (otherwise)  DWORD bits to set

SeeAlso

    INT 15 AH=12    /BH=0Bh"OBJECT

For keyboard objects, the bits have the following significance:
bit 15 reserved, can't be set
bit 14 unused
bit 13 reserved, can't be set
bit 12-6 unused
bit 5  (DV 2.2+) exclusive input
bit 4  filter all keys (used with handler established by SETESC)
if 0, only keys that would normally be displayed are filtered
bit 3  program continues executing while input in progress
bit 2  insert mode active for field mode
bit 1  hardware cursor displayed when task is hardware cursor owner
must be set if keyboard in field mode and field table includes
input fields
bit 0  keyboard is in field mode rather than keystroke mode

For pointer objects, the bits have the following significance:
bit 15 reserved, can't be set
bit 14-8 unused
bit 7  mouse pointer is hidden while in window
bit 6  get messages even if window not topmost
bit 5  get messages even if window not foreground
bit 4  multiple clicks separated by less than 1/3 second are counted
and returned in a single message
bit 3  pointer position is relative to screen origin, not window origin
bit 2  send message on button release as well as button press
bit 1  (DV 2.23+) send message with row=FFFFh and col=FFFFh whenever
pointer leaves the window
bit 0  send message only on button activity, not movement
       DV-specific, and INT 15/AX=DE0Fh must have been called first


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SUBFROM" - WRITE ATTRIBUTES TO WINDOW

AH = 12h
BH = 0Bh
BL = window to write attributes to
    00h handle is DWORD on top of stack
    01h current task's default window
    0Ch (DV 2.26+) default window of task owning handle on top of stack
    0Dh (DV 2.26+) default window of parent of current task
STACK:	DWORD number of attributes to write
DWORD address of attributes

Note

     	the attributes are written starting at the current cursor position; the
  cursor is left just after the last position written

SeeAlso

    INT 15 AH=12    /BH=0Ah"WINDOW


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SUBFROM" - SEND MAILBOX MESSAGE/STAT BY REF

AH = 12h
BH = 0Bh
BL = mailbox to write to
    00h handle is DWORD on top of stack
    02h default mailbox of task whose handle is on top of stack
    03h current task's default mailbox
STACK:	DWORD	status (low byte)
DWORD	length of message
DWORD	address of message

Notes

      	only a pointer to the message is stored, but the write may still fail
  due to insufficient memory
under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h)

SeeAlso

    INT 15 AH=12    /BH=0Ah"MAILBOX


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SUBFROM" - REMOVE OBJECT FROM OBJECTQ

AH = 12h
BH = 0Bh
BL = OBJECTQ from which to remove all copies of a particular object
    06h OBJECTQ of task whose handle is on top of stack
    07h task's default OBJECTQ
STACK:	DWORD	handle of object to remove

Note

     	should be sent whenever an object is erased or closed


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SUBFROM" - RESET OBJECT BITS

AH = 12h
BH = 0Bh
BL = object
    00h handle is DWORD on top of stack
pointer: reset control flags
keyboard: reset control flags
    04h clear control flags on KEYBOARD object (handle on top of stack)
    05h clear control flags on task's default KEYBOARD object
STACK:	DWORD	which bits to clear (see AH=12h/BH=0Ah"OBJECT")

SeeAlso

    INT 15 AH=12    /BH=0Ah"OBJECT


INT 15 AH=12

15 - TopView - SEND MESSAGE - "OPEN" - OPEN OBJECT

AH = 12h
BH = 0Ch
BL = object
    00h handle is DWORD on top of stack
window:	  fill with given character from scroll origin to end
keyboard: attach to a window
timer:	  open
pointer:  start taking input for window
panel:	  associate with a panel file
    01h fill task's default window with given char from scrl org to end
    02h open given task's mailbox for input (task's handle on stack)
    03h open current task's mailbox
    04h attach a KEYBOARD to a window (handle on top of stack)
    05h attach task's default KEYBOARD to a window
    06h open a task's OBJECTQ (task's handle on top of stack)
    07h open current task's OBJECTQ
    0Ch (DV 2.26+) fill def window of task owning handle on top of stck
    0Dh (DV 2.26+) fill default window of parent of current task
 STACK: (if window)   DWORD character to fill with
(if keyboard) DWORD handle of window to attach to
(if pointer)  DWORD handle of window to attach to
(if panel)    DWORD length of filename or resident panel
      DWORD address of filename or resident panel
(otherwise)   nothing

Notes

      	if first byte of panel file name is 1Bh, then the "name" IS a panel
if first two bytes of panel file "name" are C0hC3h, then the "name" IS
  the panel file
result code of open may be retrieved with STATUS message
logical cursor is left at scroll origin after filling window
the task opening a mailbox becomes its owner, and the only task allowed
  to read the mailbox
messages are only sent to a pointer object when the mouse is positioned
  in the window to which the pointer has been attached
there is no need to explicitly open a timer object, as ADDTO and WRITE
  messages automatically open the timer

SeeAlso

    INT 15 AH=12    /BH=0Dh    INT 15 AH=12    /BH=14h"LOCK


INT 15 AH=12

15 - TopView - SEND MESSAGE - "CLOSE" - CLOSE OBJECT

AH = 12h
BH = 0Dh
BL = object
    00h handle is DWORD on top of stack
timer:	  close
keyboard: detach from window and discard queued input
pointer:  stop taking input
panel:	  close
mailbox:  close, unlock, and discard any pending messages
    02h close given task's mailbox (task's handle on top of stack)
    03h close task's default mailbox
    04h close KEYBOARD object (handle on top of stack)
    05h close task's default KEYBOARD
    06h close givent task's OBJECTQ (task's handle on top of stack)
    07h close current task's OBJECTQ

Notes

      	when an OBJECTQ is closed, each object in the OBJECTQ is sent an
  ERASE message (AH=12h/BH=0Eh)
when a panel object is closed, the panel file and any panels currently
  in use are freed; window and keyboard objects created by APPLY are
  not affected, but field mode input ceases
open but idle timer objects consume a small amount of CPU time

SeeAlso

    INT 15 AH=12    /BH=0Ch    INT 15 AH=12    /BH=0Eh    INT 15 AH=12    /BH=14h"LOCK


INT 15 AH=12

15 - TopView - SEND MESSAGE - "ERASE" - ERASE OBJECT

AH = 12h
BH = 0Eh
BL = object
    00h handle is DWORD on top of stack
window:	  clear from scroll origin to end of window
keyboard: discard input
timer:	  cancel current interval
pointer:  discard all pending messages
mailbox:  discard all pending messages
    01h clear task's default window from scroll origin to end
    02h discard all queued messages in mailbox (handle on top of stack)
    03h discard all queued messages in current task's default mailbox
    04h discard all input queued to KEYBOARD (handle on top of stack)
    05h discard all input queued to task's default KEYBOARD
    06h remove all objects from OBJECTQ (task's handle on top of stack)
    07h remove all objects from current task's OBJECTQ
    0Ch (DV 2.26+) clear window of task owning handle on top of stack
    0Dh (DV 2.26+) clear default window of parent of current task

Note

     	when an OBJECTQ is erased, each object in the OBJECTQ is also erased

SeeAlso

    INT 15 AH=12    /BH=02


INT 15 AH=12

15 - TopView - SEND MESSAGE - "STATUS" - GET OBJECT STATUS

AH = 12h
BH = 0Fh
BL = object
    00h handle is DWORD on top of stack
timer:	 is it running?
pointer: return status of last message
panel:	 verify success of last OPEN or APPLY
    02h return status of last msg READ from mailbox (handle on stack)
    03h return status of last msg READ from task's default mailbox
    04h get status of last msg from task's KEYBOARD (task handle on stk)
    05h get status of last msg from task's default KEYBOARD
    06h return whether OBJECTQ is open or not (handle on top of stack)
    07h return whether task's default OBJECTQ is open or not

Return

        DWORD on top of stack is status

Notes

      	if object is a panel object, the status indicates the error code:
  00h successful
  14h panel name not in panel directory
  15h not enough memory to apply panel
  16h invalid panel format
  17h panel file already open
  81h-92h  DOS error codes+80h	\  codes > 80h indicate
  95h not enough memory to open panel file	 > that the panel was
  98h null panel file name	/  not opened
if object is a timer, the status is:
  00000000h open but not running
  40000000h open and running
  80000000h closed
if object is an OBJECTQ, the status is:
  00000000h open
  80000000h closed
if object is a keyboard in keystroke mode, the status is the extended
  character code (scan code) of teh last keystroke
if object is a keyboard in field mode, the status indicates the reason
  for the last return from the field manager
  00h Enter key pressed
  01h Button 1 or keystroke selection
  02h Button 2
  03h validation
  04h auto Enter on field
  1Bh Escape pressed
  46h ^Break pressed
  other: extended code for key terminating input
the status of mailbox messages sent by the window manager is always 80h
the status of a pointer message is the same as the status field in the
  message

SeeAlso

    INT 15 AH=12    /BH=04h"READ


INT 15 AH=12

15 - TopView - SEND MESSAGE - "EOF" - GET OBJECT EOF STATUS

AH = 12h
BH = 10h
BL = object
    00h handle is DWORD on top of stack
window: return TRUE if logical cursor past end of window
mailbox: ???
    01h returns TRUE if logical cursor past end of task's def window
    02h return ??? for task's mailbox (task's handle on top of stack)
    03h return ??? for current task's mailbox
    0Ch (DV 2.26+) check log crsr of window owning handle on top of stk
    0Dh (DV 2.26+) check log cursor of window of parent task

Return

        DWORD on top of stack is status


INT 15 AH=12

15 - TopView - SEND MESSAGE - "AT" - POSITION OBJECT CURSOR

AH = 12h
BH = 11h
BL = window for which to move cursor
    00h window's handle is DWORD on top of stack
    01h task's default window
    0Ch (DV 2.26+) default window of task owning handle on top of stack
    0Dh (DV 2.26+) default window of parent of current task
STACK: DWORD column
       DWORD row


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SETNAME" - ASSIGN NAME TO MAILBOX

AH = 12h
BH = 11h
BL = mailbox to name
    00h DWORD on top of stack is mailbox handle
    02h use given task's mailbox (task's handle on top of stack)
    03h use current task's default mailbox
STACK: DWORD length of name
       DWORD address of name

SeeAlso

    INT 15 AH=12    /BH=12h"GETNAME"    INT 15 AX=DE0E


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SETSCALE" - SET POINTER SCALE FACTOR

AH = 12h
BX = 1100h
STACK: DWORD object handle for pointer object
       DWORD number of colums to scale pointer position to
       DWORD number of rows to scale pointer position to

SeeAlso

    INT 15 AH=12    /BX=1200


INT 15 AH=12

15 - TopView - SEND MESSAGE - "READN" - GET NEXT N OBJECT BYTES

AH = 12h
BH = 12h
BL = window to read from
    00h handle is DWORD on top of stack
    01h read next N chars or attributes on task's default window
    0Ch (DV 2.26+) read window of task owning handle on top of stack
    0Dh (DV 2.26+) read default window of parent of current task
STACK: DWORD count

Return

        STACK: DWORD number of bytes actually read
       DWORD address of buffer containing data

Notes

      	reading starts at the current logical cursor position; the cursor is
  updated to point at the character following the last one read
any translucent blanks (FFh) which are visible on screen are changed
  to the character which is seen through them
the string produced by the read is placed in an input buffer which may
  be reused by the next READ or READN of a window
window stream opcodes D8h and D9h determine whether the read returns
  characters or attributes

SeeAlso

    INT 15 AH=12    /BH=04h"WINDOW"    INT 15 AH=12    /BH=05h"WINDOW


INT 15 AH=12

15 - DESQview 2.50+ - SEND MESSAGE - "GETNAME" - GET NAME OF MAILBOX

AH = 12h
BH = 12h
BL = mailbox for which to retrieve name
    00h DWORD on top of stack is mailbox handle
    02h use given task's mailbox (task's handle on top of stack)
    03h use current task's default mailbox
STACK: DWORD length of buffer for name
       DWORD pointer to buffer

Return

        STACK: DWORD length of returned name (or size of buffer, if less)

Program

         DESQview 2.5x is distributed as part of DESQview/X 1.0x

Note

     	the returned name is not NUL-terminated

SeeAlso

    INT 15 AH=12    /BH=11h"SETNAME"    INT 15 AX=DE0E


INT 15 AH=12

15 - TopView - SEND MESSAGE - "GETSCALE" - GET POINTER SCALE FACTOR

AH = 12h
BX = 1200h
STACK: DWORD object handle for pointer

Return

        STACK: DWORD pointer pos scaled as if window were this many colums wide
       DWORD pointer pos scaled as if window were this many rows high

SeeAlso

    INT 15 AH=12    /BX=1100


INT 15 AH=12

15 - TopView - SEND MESSAGE - "REDRAW" - REDRAW WINDOW

AH = 12h
BH = 13h
BL = window object
    00h DWORD on top of stack is handle for window to redraw
    01h redraw task's default window
    0Ch (DV 2.26+) redraw window of task owning handle on top of stack
    0Dh (DV 2.26+) redraw default window of parent of current task

SeeAlso

    INT 15 AH=12    /BH=05h"WINDOW"    INT 15 AH=12    /BH=0E


INT 15 AH=12

15 - DESQview 2.50+ - SEND MESSAGE - "READINTO" - GET NEXT MAIL MESSAGE

AH = 12h
BH = 13h
BL = mailbox from which to read
    00h DWORD on top of stack is mailbox handle
    02h use given task's mailbox (task's handle on top of stack)
    03h use current task's default mailbox
STACK: DWORD size of buffer in bytes
       DWORD pointer to buffer

Return

        STACK: DWORD number of bytes read

Program

         DESQview 2.5x is distributed as part of DESQview/X 1.0x

Notes

      	this call blocks if no input is available, but will return less than
  the requested number of bytes if some (but insufficient) data is
  available
use this call instead of AH=12h/BH=04h if the mailbox has flag bits
  4 or 5 set, as common memory may be exhausted by that call when
  attempting to read the next message

SeeAlso

    INT 15 AH=12    /BH=04h"READ"    INT 15 AH=12    /BH=05h    INT 15 AH=12    /BH=16


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SETICON" - SPECIFY POINTER ICON

AH = 12h
BX = 1300h
STACK: DWORD object handle for pointer
       DWORD character to use for pointer


INT 15 AH=12

15 - TopView - SEND MESSAGE - "SETESC" - SET ESCAPE ROUTINE ADDRESS

AH = 12h
BH = 14h
BL = message modifier
    00h handle is DWORD on top of stack
    01h define user stream
    04h intercept keystrokes from KEYBOARD to a window (handle on stack)
    05h intercept keystrokes from task's default KEYBOARD to a window
STACK: (if window)   DWORD user stream number (14h-1Fh)
     DWORD address of FAR user stream handler
       (if keyboard) DWORD address of FAR filter function

The keyboard filter function is called when the keyboard is in field mode.  On
entry,
AL = character
AH = 00h or extended ASCII code if AL = 00h
BL = field number
CH = cursor column
CL = cursor row
DL = field type modifier (sixth item in field table entry)
DH = seventh item in field table entry
ES:SI = window's handle
DS:DI -> field table entry for field containing the cursor
The filter function should return
AH = 00h use keystroke
     01h ignore keystroke
     FFh beep and ignore keystroke

Note

      the filter function is not allowed to make INT 15, DOS, or BIOS calls


INT 15 AH=12

15 - TopView - SEND MESSAGE - "LOCK" - REQUEST EXCLUSIVE ACCESS TO RESOURCE

AH = 12h
BH = 14h
BL = object
    00h mailbox handle is DWORD on top of stack
    02h use given task's mailbox (task's handle on top of stack)
    03h use current task's default mailbox

Note

     	release exclusive access by sending CLOSE message to mailbox
access may be requested multiple times, and requires multiple CLOSEs

SeeAlso

    INT 15 AH=12    /BH=0D


INT 15 AH=12

15 - DESQview v2.20+ - SEND MESSAGE - "SETFLAGS" - SET OBJECT FLAGS

AH = 12h
BH = 15h
BL = object
    00h DWORD on top of stack
mailbox, keyboard, or pointer only
    02h mailbox for task whose handle is on top of stack
    03h mailbox for current task
    04h keyboard for task whose handle is on top of stack
    05h keyboard for current task
STACK: DWORD flags
if mailbox:
bit 0: all mail messages in common memory
bit 1: allow write even if closed
bit 2: don't erase messages when mailbox closed
bit 4: (DV/X) append messages with like status and
sender (stream-oriented mail)
bit 5: (DV/X) store mail in expanded memory (pool
grows as needed)
bit 6: (DV/X) make mailbox into non-owned mailbox
if keyboard:
bit 5: exclusive input when keyboard in use for input

Return

        nothing

Notes

      	only available if the API level has been set to at least 2.20
equivalent to performing SUBFROM and ADDTO calls on the object
if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
  "READ" (see AH=12h/BX=1300h"READINTO") to retrieve messages

SeeAlso

    INT 15 AH=12    /BH=0Ah    INT 15 AH=12    /BH=0Bh    INT 15 AH=12    /BH=16


INT 15 AH=12

15 - DESQview v2.20+ - SEND MESSAGE - "GETFLAGS" - GET OBJECT FLAGS

AH = 12h
BH = 16h
BL = object
    00h DWORD on top of stack
mailbox, keyboard, or pointer only
    02h mailbox for task whose handle is on top of stack
    03h mailbox for current task
    04h keyboard for task whose handle is on top of stack
    05h keyboard for current task

Return

        STACK: DWORD current control flags (see AH=12h/BH=15h)

Notes

      	only available if the API level has been set to at least 2.20
if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
  "READ" (see AH=12h/BH=13h"READINTO") to retrieve messages

SeeAlso

    INT 15 AH=12    /BH=0Ah    INT 15 AH=12    /BH=0Bh    INT 15 AH=12    /BH=13h"READINTO"    INT 15 AH=12    /BH=15


INT 15 AH=12

15 - DESQview v2.42-2.52 - BUG

AH = 12h
BH = 17h
BL = object
    00h DWORD on top of stack
mailbox, keyboard, or pointer only
    02h mailbox for task whose handle is on top of stack
    03h mailbox for current task
    04h keyboard for task whose handle is on top of stack
    05h keyboard for current task

Notes

      	due to a fencepost error, message 17h is accepted for mailboxes,
  keyboards, and pointers, but causes a random branch
DESQview v2.50-2.52 are distributed as part of DESQview/X v1.02


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 80h

Note

     	this function is identical to AH=12h/BH=00h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL:
00h no error
01h invalid values
02h alias invalid
03h handle valid but wrong type
04h invalid handle

SeeAlso

    INT 15 AH=12    /BH=00


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 81h

Note

     	this function is identical to AH=12h/BH=01h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=01


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 82h

Note

     	this function is identical to AH=12h/BH=02h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=02


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 83h

Note

     	this function is identical to AH=12h/BH=03h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=03h    INT 15 AH=12    /BX=0300


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 84h

Note

     	this function is identical to AH=12h/BH=04h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=04h    INT 15 AH=12    /BX=0400


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 85h

Note

     	this function is identical to AH=12h/BH=05h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=05


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 86h

Note

     	this function is identical to AH=12h/BH=06h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=06


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 87h

Note

     	this function is identical to AH=12h/BH=07h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=07


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 88h

Note

     	this function is identical to AH=12h/BH=08h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=08


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 89h

Note

     	this function is identical to AH=12h/BH=09h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=09


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 8Ah

Note

     	this function is identical to AH=12h/BH=0Ah, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=0A


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 8Bh

Note

     	this function is identical to AH=12h/BH=0Bh, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=0B


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 8Ch

Note

     	this function is identical to AH=12h/BH=0Ch, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=0C


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 8Dh

Note

     	this function is identical to AH=12h/BH=0Dh, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=0D


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 8Eh

Note

     	this function is identical to AH=12h/BH=0Eh, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=0E


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 8Fh

Note

     	this function is identical to AH=12h/BH=0Fh, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=0F


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 90h

Note

     	this function is identical to AH=12h/BH=10h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=10


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 91h

Note

     	this function is identical to AH=12h/BH=11h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=11h    INT 15 AH=12    /BX=1100


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 92h

Note

     	this function is identical to AH=12h/BH=12h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=12h    INT 15 AH=12    /BX=1200


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 93h

Note

     	this function is identical to AH=12h/BH=13h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=13


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 94h

Note

     	this function is identical to AH=12h/BH=14h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=14


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 95h

Note

     	this function is identical to AH=12h/BH=15h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=15


INT 15 AH=12

15 - DESQview v2.50+ - SEND MESSAGE WITH ERROR RECOVERY

AH = 12h
BH = 96h

Note

     	this function is identical to AH=12h/BH=16h, except that DESQview will
  not pop up a "Programming Error" window, instead returning an error
  code in AL (see AH=12h/BH=80h)

SeeAlso

    INT 15 AH=12    /BH=16


INT 15 AH=13

15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS

AH = 13h
STACK:	WORD	process ID

Return

        AX = status (SYS_OK or SYS_ERROR)

SeeAlso

    INT 15 AH=12"VMiX"


INT 15 AH=13

15 - MultiDOS Plus - GET TASK CONTROL BLOCK

AH = 13h

Return

        BX:AX -> task control block (see below)

SeeAlso

    INT 15 AH=15"MultiDOS"

Table Formats

MultiDOS Plus v4.0 task control block:


INT 15 AH=14

15 - VMiX - "sys_clrwindow" - CLEAR WINDOW

AH = 14h
STACK:	WORD	top left corner of window (high byte = row, low = col)
WORD	bottom right corner of window (high = row, low = col)

Return

        AX = status (SYS_OK)

Note

     	clears window to color set with "sys_setcolors" (AH=18h)

SeeAlso

    INT 15 AH=15"VMiX"    INT 15 AH=16"VMiX"    INT 15 AH=18"VMiX"    INT 15 AH=1F"VMiX"


INT 15 AH=14

15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND

AH = 14h

Return

        AX = current state
    0000h MultiDOS Plus command prompt is background task
    0001h command prompt is foreground task

SeeAlso

    INT 15 AH=0B"MultiDOS"


INT 15 AH=15

15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE

AH = 15h
STACK:	DWORD	pointer to ASCIZ banner	message for top of screen

Return

        AX = status (SYS_OK)

SeeAlso

    INT 15 AH=14"VMiX"    INT 15 AH=16"VMiX"


INT 15 AH=15

15 - MultiDOS Plus - GET SYSTEM BLOCK

AH = 15h

Return

        BX:AX -> system block (see below)

SeeAlso

    INT 15 AH=13"MultiDOS"

Table Formats

MultiDOS Plus 4.0 system block:


INT 15 AH=16

15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR

AH = 16h
STACK:	DWORD	pointer to I/O Request Packet
WORD	top left corner of window (high byte = row, low = col)
WORD	bottom right corner of window (high = row, low = col)

Return

        AX = status (SYS_OK or SYS_ERROR)

SeeAlso

    INT 15 AH=14"VMiX"    INT 15 AH=17"VMiX"


INT 15 AH=16

15 - MultiDOS Plus - INITIALIZATION

AH = 16h

Note

     	used internally during initialization; any other calls will cause
  unpredicatable results


INT 15 AH=17

15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS

AH = 17h

Return

        AH = foreground color
AL = background color

SeeAlso

    INT 15 AH=16"VMiX"    INT 15 AH=18"VMiX"


INT 15 AH=17

15 - MultiDOS Plus - MAP IRQ

AH = 17h
AL = IRQ to map (01h-0Fh)
BX = offset of task control block (see AH=13h) to associate with IRQ

Return

        AX = status
    0000h successful
    other invalid IRQ

Note

     	the EMS map of the specified TCB is associated with the given interrupt

SeeAlso

    INT 15 AH=18"MultiDOS"    INT 15 AH=19"MultiDOS"


INT 15 AH=18

15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS

AH = 18h
STACK:	WORD	new background/foreground colors
bits 3-0: foreground
bits 7-4: background
bits 15-8: unused

Return

        AX = color

SeeAlso

    INT 15 AH=14"VMiX"    INT 15 AH=17"VMiX"    INT 15 AH=19"VMiX"


INT 15 AH=18

15 - MultiDOS Plus - UNMAP IRQ

AH = 18h
AL = IRQ to unmap (01h-0Fh)

Return

        AX = status
    0000h successful
    0001h invalid IRQ

Note

     	results are unpredictable if the IRQ has not been mapped

SeeAlso

    INT 15 AH=17"MultiDOS"    INT 15 AH=19"MultiDOS"


INT 15 AH=19

15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS

AH = 19h
STACK:	WORD	new background/foreground colors
bits 3-0: foreground
bits 7-4: background
bits 15-8: unused

Return

        AX = color

SeeAlso

    INT 15 AH=18"VMiX"


INT 15 AH=19

15 - MultiDOS Plus - UNMAP ALL IRQs

AH = 19h

Return

        AX destroyed

Note

     	for MultiDOS internal use only

SeeAlso

    INT 15 AH=17"MultiDOS"    INT 15 AH=18"MultiDOS"


INT 15 AH=1A

15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT

AH = 1Ah
STACK:	WORD	interrupt number
DWORD	pointer to register structure

Return

        AX = returned flags


INT 15 AH=1A

15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER

AH = 1Ah
DS:SI -> 8-byte name

Return

        AL = status
    00h successful
AH = semaphore number (20h-3Fh)
    04h out of string space

Notes

      	all eight bytes of the name are significant
if the name does not already exist, it is added to the name table and
  associated with a free semaphore number
names cannot be destroyed

SeeAlso

    INT 15 AH=1B"MultiDOS"    INT 15 AH=1C"MultiDOS"    INT 15 AH=1D"MultiDOS"


INT 15 AH=1B

15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK

AH = 1Bh
STACK:	DWORD	source address
DWORD	destination address
WORD	number of words to move

Return

        nothing


INT 15 AH=1B

15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME

AH = 1Bh
DS:SI -> 8-byte name

Return

        AH = status
    00h successful
    02h invalid semaphore number
    03h caller already owns semaphore
    04h out of string space

Notes

      	(see AH=01h"MultiDOS")
equivalent to AH=1Ah followed by AH=01h

SeeAlso

    INT 15 AH=01"MultiDOS"    INT 15 AH=1A"MultiDOS"    INT 15 AH=1C"MultiDOS"    INT 15 AH=1D"MultiDOS"


INT 15 AH=1C

15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION

AH = 1Ch
STACK:	WORD	AND/OR pixel with background (00h = OR, 01h = AND)
DWORD	pointer to object bitmap
WORD	object width in pixels
WORD	object height in pixels

Return

        nothing

SeeAlso

    INT 15 AH=1D"VMiX"


INT 15 AH=1C

15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME

AH = 1Ch
DS:SI -> 8-byte name

Return

        AH = status
    00h successful
    01h not semaphore owner
    02h invalid semaphore number
    04h out of string space

Notes

      	(see AH=02h"MultiDOS")
equivalent to AH=1Ah followed by AH=02h

SeeAlso

    INT 15 AH=02"MultiDOS"    INT 15 AH=1A"MultiDOS"    INT 15 AH=1B"MultiDOS"    INT 15 AH=1D"MultiDOS"


INT 15 AH=1D

15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT

AH = 1Dh

Return

        AX = current font number (00h-03h)

SeeAlso

    INT 15 AH=1C"VMiX"    INT 15 AH=1E"VMiX"


INT 15 AH=1D

15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME

AH = 1Dh
DS:SI -> 8-byte name
Return; AH = status
    00h semaphore not in use
    01h semaphore owned by another task
    02h invalid semaphore number
    03h caller owns semaphore
    04h out of string space

Notes

      	(see AH=10h"MultiDOS")
equivalent to AH=1Ah followed by AH=10h

SeeAlso

    INT 15 AH=10"MultiDOS"    INT 15 AH=1A"MultiDOS"    INT 15 AH=1B"MultiDOS"    INT 15 AH=1C"MultiDOS"


INT 15 AH=1E

15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT

AH = 1Eh
STACK: WORD new font number (00h-03h)

Return

        AX = current font number (00h-03h)

SeeAlso

    INT 15 AH=1D"VMiX"


INT 15 AX=1E00

15 - MultiDOS Plus - CLEAR EVENT COUNTER

AX = 1E00h
DX = event/trigger number (00h-3Fh)

Return

        AH = status
    00h successful

SeeAlso

    INT 15 AX=1E01    INT 15 AX=1E02


INT 15 AX=1E01

15 - MultiDOS Plus - TRIGGER EVENT

AX = 1E01h
DX = event/trigger number (00h-3Fh)

Return

        AH = status
    00h successful
    01h invalid event/trigger number

Notes

      	schedules any task waiting for event; if no task is waiting, the event
  counter is incremented (and will roll over if it was 65535)
may be invoked by interrupt handler

SeeAlso

    INT 15 AX=1E00    INT 15 AX=1E02


INT 15 AX=1E02

15 - MultiDOS Plus - WAIT FOR EVENT

AX = 1E02h
DX = event/trigger number (00h-3Fh)

Return

        AH = status
    00h successful
    01h invalid event/trigger number

Note

     	if the event counter is zero, the task is suspended until the event is
  triggered with AX=1E01h; else, the counter is decremented and the
  call returns immediately

SeeAlso

    INT 15 AX=1E00    INT 15 AX=1E01


INT 15 AH=1F

15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW

AH = 1Fh
STACK:	WORD	top left corner of window (high byte = row, low = col)
WORD	bottom right corner of window

Return

        AX = status (SYS_OK)

SeeAlso

    INT 15 AH=14"VMiX"    INT 15 AH=18"VMiX"


INT 15 AH=1F

15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS

AH = 1Fh

Return

        BX = first segment of conventional memory
DX = first segment of EMS swap frame into which MultiDOS will load
programs


INT 15 AH=20

15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED

AH = 20h

Return

        AX = current state
    0000h multitasking enabled
    other TCB of task that disabled multitasking

SeeAlso

    INT 15 AH=0D"MultiDOS"    INT 15 AH=13"MultiDOS"


INT 15 AX=2000

15 - DOS 3+ PRINT.COM - DISABLE CRITICAL REGION FLAG

AX = 2000h

SeeAlso

    INT 15 AX=2001


INT 15 AX=2001

15 - DOS 3+ PRINT.COM - SET CRITICAL REGION FLAG

AX = 2001h
ES:BX -> byte which is to be incremented while in a DOS call

SeeAlso

    INT 15 AX=2000


INT 15 AX=2010

15 - OS HOOK - SETUP SYSREQ ROUTINE (AT,XT286,PS50+)

AX = 2010h
???

Return

        ???

SeeAlso

    INT 15 AX=2011


INT 15 AX=2011

15 - OS HOOK - COMPLETION OF SYSREQ FUNCTION (AT,XT286,PS50+)

AX = 2011h
???

Return

        ???

SeeAlso

    INT 15 AX=2010


INT 15 AH=21

15 - SYSTEM - POWER-ON SELF-TEST ERROR LOG (PS50+)

AH = 21h
AL = subfunction
    00h read POST log
    01h write POST log
BH = device ID
BL = error code

Return

        CF set on error
AH = status (00h OK, 01h list full, 80h invalid cmd, 86h unsupported)
if function 00h:
   BX = number of error codes stored
   ES:DI -> error log

Note

     	the log is a series of words, the first byte of which identifies the
  error code and the second the device.


INT 15 AH=22

15 U - SYSTEM - LOCATE ROM BASIC (later PS/2's only)

AH = 22h

Return

        CF set on error
    AH = status
CF clear on success:
    ES -> segment of ROM BASIC


INT 15 AX=2400

15 - Qualitas 386MAX v6.01 - TURN ON ???

AX = 2400h

Return

        CF clear
AH = 00h

SeeAlso

    INT 15 AX=2401    INT 15 AX=2402


INT 15 AX=2401

15 - Qualitas 386MAX v6.01 - TURN OFF ???

AX = 2401h

Return

        CF clear
AH = 00h

SeeAlso

    INT 15 AX=2400    INT 15 AX=2402


INT 15 AX=2402

15 - Qualitas 386MAX v6.01 - GET STATE OF ???

AX = 2402h

Return

        CF clear
AH = 00h
AL = current state (00h off, 01h on)

SeeAlso

    INT 15 AX=2400    INT 15 AX=2401


INT 15 AX=2403

15 - Qualitas 386MAX v6.01 - GET ???

AX = 2403h
???

Return

        CF clear
AH = 00h
BX = bit flags???
    bit 0: ???
    bit 1: ???

Note

     	reportedly also used by some PS/2 models


INT 15 AH=40

15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE)

AH = 40h
AL = subfunction
    00h get system profile in CX and BX
    01h set system profile from CX and BX
    02h get internal modem profile in BX
    03h set internal modem profile from BX


INT 15 AX=4000

15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT

AX = 4000h

Return

        AX = 4000h
CL = 00h timeout disabled
   else timeout in minutes

SeeAlso

    INT 15 AX=4001    INT 15 AX=4600


INT 15 AX=4001

15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT

AX = 4001h
CL = 00h timeout disabled
   else	 timeout in minutes

Return

        AL = 00h timeout modified
     01h timeout cannot be modified
     40h timeout cannot be modified
CL = 00h timeout disabled
   else timeout in minutes

SeeAlso

    INT 15 AX=4000    INT 15 AX=4601


INT 15 AH=41

15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE)

AH = 41h
AL = condition type
    bits 0-2: condition to wait for
     0 any external event
     1 compare and return if equal
     2 compare and return if not equal
     3 test and return if not zero
     4 test and return if zero
    bit 3:    reserved
    bit 4:    1=port address, 0=user byte
    bits 5-7: reserved
BH = condition compare or mask value
BL = timeout value times 55 milliseconds
    00h means no timeout
DX = I/O port address if AL bit 4 set
ES:DI -> user byte if AL bit 4 clear


INT 15 AH=42

15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX)

AH = 42h
AL = 00h to use system profile
     01h to force suspend regardless of system profile

Note

     	the HP 95LX apparently suspends regardless of the value in AL; on
  power-up, execution will resume following the instruction calling
  this function

SeeAlso

    INT 15 AH=44


INT 15 AX=4280

15 - Compaq SLT/286 - ENTER STANDBY

AX = 4280h

Return

        AH = 42h
CF clear if successful
CF set if unable to enter standby

SeeAlso

    INT 15 AX=4600    INT 15 AX=5307    /BX=0001h/CX=0001


INT 15 AH=43

15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE)

AH = 43h

Return

        AL = status bits
    bit 0: LCD detached
    bit 1: reserved
    bit 2: RS232/parallel adapter powered on
    bit 3: internal modem powered on
    bit 4: power activated by alarm
    bit 5: standby power lost
    bit 6: external power in use
    bit 7: power low


INT 15 AH=44

15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE)

AH = 44h
AL = 00h to power off
     01h to power on

SeeAlso

    INT 15 AH=42


INT 15 AX=4600

15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION

AX = 4600h

Return

        AH = modem configuration information
    bit 0 powerup state
    0 off
    1 on
1 modem installed
2 IRQ line assignment
    0 IRQ 4
    1 IRQ 3
3 COM port assignment
    0 = COM 2
    1 = COM 1
4 modem state
    0 not assigned
    1 assigned
5 modem is on
AL = power conservation status information
    bit 0  power source (0 internal, 1 external)
       1-2 low battery state
    00 no low battery condition
    01 low battery 1
    10 reserved
    11 low battery 2
       3-4 power conservation mode
    00 automatic
    01 on
    10 off
    11 reserved
BH = default system inactivity timeout (1-21 minutes)
BL = current system inactivity timeout (1-21 minutes)
CH = default video display inactivity timeout (1-63 minutes)
CL = current video display inactivity timeout (1-63 minutes)
DH = default fixed disk drive inactivity timeout (1-21 minutes)
DL = current fixed disk drive inactivity timeout (1-21 minutes)

SeeAlso

    INT 15 AX=4280    INT 15 AX=4601    INT 77


INT 15 AX=4601

15 - Compaq SLT/286 - Modify Power Conservation/Modem Configuration

AX = 4601h
BL = system inactivity timeout (1-21 minutes)
   = FFh do not change
CL = video display inactivity timeout (1-63 minutes)
   = FFh do not change
DL = current fixed disk drive inactivity timeout (1-21 minutes)
   = FFh do not change
DH = 00h turn modem OFF
   = 01h turn modem ON
   = FFh do not change modem state

Return

        CF clear if successful
    AH = 00h
    BL = current system inactivity timeout (1-21 minutes)
    CL = current video display inactivity timeout (1-63 minutes)
    DL = current fixed disk drive inactivity timeout (1-21 minutes)
    DH = FFh modem state unchanged
       = 00h modem turned OFF
       = 01h modem turned ON
CF set on error
    AH = 01h input is out of range
       = 02h - No modem present

SeeAlso

    INT 15 AX=4600    INT 77


INT 15 AX=4900

15 - Far East MSDOS - GET DOS TYPE

AX = 4900h

Return

        CF clear if successful
    AH = 00h
    BL = type of DOS running
00h DOS/V
01h DOS/J or DOS/K (early IBM Japan versions of MSDOS)
CF set on error
    AH = 86h (function not supported)

Note

     	in practice, DOS/J returns AH=86h; AX DOS does not support this call

SeeAlso

    INT 21 AH=30


INT 15 AX=4DD4

15 - HP 95LX - INSTALLATION CHECK

AX = 4DD4h

Return

        BX = 4850h ("HP") if HP 95LX
    CX = ??? (0101h)
    DL = ??? (00h)

SeeAlso

    INT 0BHP 95LX"    INT 0FHP 95LX"    INT 5F AH=00    INT 60DI=0100

SeeAlso

    INT 61HP 95LX


INT 15 AH=4E

15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP

AH = 4Eh
AL = light sleep
    00h disabled
    01h enabled

Note

     	when light sleep is disabled, the system will continue running at full
  speed; when enabled, it may automatically slow to conserve batteries

SeeAlso

    INT 06HP 95LX"    INT 60DI=0100


INT 15 AH=4F

15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)

AH = 4Fh
AL = hardware scan code
CF set

Return

        CF set
   AL = hardware scan code
CF clear
   scan code should be ignored

Note

     	called by INT 9 handler to translate scan codes; the INT 09 code does
  not examine the scan code it reads from the keyboard until after
  this function returns.  This permits software to rearrange the
  keyboard; for example, swapping the CapsLock and Control keys, or
  turning the right Shift key into Enter.

SeeAlso

    INT 09INT 15/AH=C0


INT 15 AH=50

15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE

AH = 50h
BX = segment of page directory table
CX = page number of page table

SeeAlso

    INT 15 AH=10"VMiX"    INT 15 AH=51"VMiX"    INT 15 AH=52"VMiX"


INT 15 AH=51

15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE

AH = 51h
STACK:	DWORD	selector:offset of function

Return

        registers as returned by function

Note

     	executes function with privilege level 0 (highest privilege)

SeeAlso

    INT 15 AH=10"VMiX"    INT 15 AH=52"VMiX"


INT 15 AH=52

15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT

AH = 52h

SeeAlso

    INT 15 AH=50"VMiX"    INT 15 AH=51"VMiX"


INT 15 AX=5300

15 - Advanced Power Management Specification - INSTALLATION CHECK

AX = 5300h
BX = 0000h (device ID of system BIOS)

Return

        CF clear if successful
    AH = major version (BCD)
    AL = minor version (BCD)
    BX = 504Dh ("PM")
    CX = flags
bit 0: 16-bit protected mode interface supported
bit 1: 32-bit protected mode interface supported
bit 2: CPU idle call reduces processor speed
bit 3: BIOS power management disabled
bits 4-7 reserved
CF set on error
    AH = error code (86h) (see below)

Values for error code:
 01h	power management functionality disabled
 02h	interface connection already in effect
 03h	interface not connected
 04h	real-mode interface not connected
 05h	16-bit protected-mode interface already connected
 06h	16-bit protected-mode interface not supported
 07h	32-bit protected-mode interface already connected
 08h	32-bit protected-mode interface not supported
 09h	unrecognized device ID
 0Ah	invalid parameter value in CX
 0Bh-1Fh reserved for other interface and general errors
 20h-3Fh reserved for CPU errors
 40h-5Fh reserved for device errors
 60h	can't enter requested state
 61h-7Fh reserved for other system errors
 80h	no power management events pending
 81h-85h reserved for other power management event errors
 86h	APM not present
 87h-9Fh reserved for other power management event errors


INT 15 AX=5301

15 - Advanced Power Management Specification - CONNECT REAL-MODE INTERFACE

AX = 5301h
BX = 0000h (device ID of system BIOS)

Return

        CF clear if successful
CF set on error
    AH = error code (02h,09h) (see AX=5300h)

SeeAlso

    INT 15 AX=5302    INT 15 AX=5303    INT 15 AX=5304


INT 15 AX=5302

15 R - Advanced Power Management Spec - CONNECT 16-BIT PROTMODE INTERFACE

AX = 5302h
BX = 0000h (device ID of system BIOS)

Return

        CF clear if successful
    AX = real-mode segment base address of protected-mode 16-bit code
segment
    BX = offset of entry point
    CX = real-mode segment base address of protected-mode 16-bit data
segment
CF set on error
    AH = error code (05h,06h,09h) (see AX=5300h)

Notes

      	the caller must initialize two consecutive descriptors with the
  returned segment base addresses; these descriptors must be valid
  whenever the protected-mode interface is called, and will have
  their limits arbitrarily set to 64K.
the protected mode interface is invoked by making a far call with the
  same register values as for INT 15; it must be invoked while CPL=0,
  the code segment descriptor must have a DPL of 0, the stack must be
  in a 16-bit segment and have enough room for BIOS use and possible
  interrupts, and the current I/O permission bit map must allow access
  to the I/O ports used for power management.
functions 00h-03h are not available from protected mode

SeeAlso

    INT 15 AX=5301    INT 15 AX=5303    INT 15 AX=5304


INT 15 AX=5303

15 - Advanced Power Management Spec - CONNECT 32-BIT PROTMODE INTERFACE

AX = 5303h
BX = 0000h (device ID of system BIOS)

Return

        CF clear if successful
    AX = real-mode segment base address of protected-mode 32-bit code
segment
    EBX = offset of entry point
    CX = real-mode segment base address of protected-mode 16-bit code
segment
    DX = real-mode segment base address of protected-mode 16-bit data
segment
CF set on error
    AH = error code (07h,08h,09h) (see AX=5300h)

Notes

      	the caller must initialize three consecutive descriptors with the
  returned segment base addresses for 32-bit code, 16-bit code, and
  16-bit data, respectively; these descriptors must be valid whenever
  the protected-mode interface is called, and will have their limits
  arbitrarily set to 64K.
the protected mode interface is invoked by making a far call to the
  32-bit code segment with the same register values as for INT 15; it
  must be invoked while CPL=0, the code segment descriptor must have a
  DPL of 0, the stack must be in a 32-bit segment and have enough room
  for BIOS use and possible interrupts, and the current I/O permission
  bit map must allow access to the I/O ports used for power management.
functions 00h-03h are not available from protected mode

SeeAlso

    INT 15 AX=5301    INT 15 AX=5302    INT 15 AX=5304


INT 15 AX=5304

15 - Advanced Power Management Specification - DISCONNECT INTERFACE

AX = 5304h
BX = 0000h (device ID of system BIOS)

Return

        CF clear if successful
CF set on error
    AH = error code (03h,09h) (see AX=5300h)

SeeAlso

    INT 15 AX=5301    INT 15 AX=5302    INT 15 AX=5303


INT 15 AX=5305

15 - Advanced Power Management Specification - CPU IDLE

AX = 5305h

Return

        after system leaves idle state
CF clear

Notes

      	call when the system is idle and should be suspended until the next
  system event or interrupt
should not be called from within a hardware interrupt handler to avoid
  reentrance problems
if an interrupt causes the system to resume normal processing, the
  interrupt may or may not have been handled when the BIOS returns
  from this call; thus, the caller should allow interrupts on return
interrupt handlers may not retain control if the BIOS allows
  interrupts while in idle mode even if they are able to determine
  that they were called from idle mode
the caller should issue this call continuously in a loop until it needs
  to perform some processing of its own

SeeAlso

    INT 15 AX=1000    INT 15 AX=5306    INT 2F AX=1680


INT 15 AX=5306

15 - Advanced Power Management Specification - CPU BUSY

AX = 5306h

Return

        CF clear

Notes

      	called to ensure that the system runs at full speed even on systems
  where the BIOS is unable to recognize increased activity (especially
  if interrupts are hooked by other programs and not chained to the
  BIOS)
this call may be made even when the system is already running at full
  speed, but it will create unnecessary overhead
should not be called from within a hardware interrupt handler to avoid
  reentrance problems

SeeAlso

    INT 15 AX=5305


INT 15 AX=5307

15 - Advanced Power Management Specification - SET POWER STATE

AX = 5307h
BX = device ID (see below)
CX = system state ID
    0000h ready (not supported for device ID 0001h)
    0001h stand-by
    0002h suspend
    0003h off (not supported for device ID 0001h)
    0004h-FFFFh reserved

Return

        CF clear if successful
CF set on error
    AH = error code (01h,09h,0Ah,60h) (see AX=5300h)

Note

     	should not be called from within a hardware interrupt handler to avoid
  reentrance problems

Values for device IDs:
 0000h	system BIOS
 0001h	all devices for which the system BIOS manages power
 01xxh	display (01FFh for all attached display devices)
 02xxh	secondary storage (02FFh for all attached secondary storage devices)
 03xxh	parallel ports (03FFh for all attached parallel ports)
 04xxh	serial ports (04FFh for all attached serial ports)
 0500h-FFFFh reserved


INT 15 AX=5307

15 - Advanced Power Management Specification - SYSTEM STAND-BY

AX = 5307h
BX = 0001h
CX = 0001h

Return

        CF clear

Notes

      	puts the entire system into stand-by mode; normally called in response
  to a System Stand-by Request notification after any necessary
  processing, but may also be invoked at the caller's discretion
should not be called from within a hardware interrupt handler to avoid
  reentrance problems
the stand-by state is typically exited on an interrupt

SeeAlso

    INT 15 AX=4280    INT 15 AX=5307    /BX=0001h/CX=0002h    INT 15 AX=530B


INT 15 AX=5307

15 - Advanced Power Management Specification - SUSPEND SYSTEM

AX = 5307h
BX = 0001h
CX = 0002h

Return

        after system is resumed
CF clear

Notes

      	puts the entire system into a low-power suspended state; normally
  called in response to a Suspend System Request notification after
  any necessary processing, but may also be invoked at the caller's
  discretion
should not be called from within a hardware interrupt handler to avoid
  reentrance problems
the caller may need to update its date and time values because the
  system could have been suspended for a long period of time

SeeAlso

    INT 15 AX=5307    /BX=0001h/CX=0001h    INT 15 AX=530B


INT 15 AX=5308

15 - Advanced Power Management Spec - ENABLE/DISABLE POWER MANAGEMENT

AX = 5308h
BX = FFFFh
CX = new state
    0000h disabled
    0001h enabled

Return

        CF clear if successful
CF set on error
    AH = error code (01h,09h,0Ah) (see AX=5300h)

Notes

      	when power management is disabled, the system BIOS will not
  automatically power down devices, enter stand-by or suspended mode,
  or perform any power-saving actions in response to AX=5305h calls
should not be called from within a hardware interrupt handler to avoid
  reentrance problems

SeeAlso

    INT 15 AX=5309


INT 15 AX=5309

15 - Advanced Power Management Specification - RESTORE POWER-ON DEFAULTS

AX = 5309h
BX = FFFFh

Return

        CF clear if successful
CF set on error
    AH = error code (09h) (see AX=5300h)

Note

     	should not be called from within a hardware interrupt handler to avoid
  reentrance problems

SeeAlso

    INT 15 AX=5308


INT 15 AX=530A

15 - Advanced Power Management Specification - GET POWER STATUS

AX = 530Ah
BX = 0001h

Return

        CF clear if successful
    BH = AC line status
00h off-line
01h on-line
FFh unknown
other reserved
    BL = battery status
00h high
01h low
02h critical
03h charging
FFh unknown
other reserved
    CL = remaining battery life
00h-64h (0-100) percentage of full charge
FFh unknown
CF set on error
    AH = error code (09h) (see AX=5300h)

Note

     	should not be called from within a hardware interrupt handler to avoid
  reentrance problems


INT 15 AX=530B

15 - Advanced Power Management Specification - GET POWER MANAGEMENT EVENT

AX = 530Bh

Return

        CF clear if successful
    BX = event code
0001h system stand-by request
0002h system suspend request
0003h normal resume system notification
0004h critical resume system notification
0005h battery low notification
CF set on error
    AH = error code (03h,80h) (see AX=5300h)

Notes

      	although power management events are often asynchronous, notification
  will not be made until polled via this call to permit software to
  only receive event notification when it is prepared to process
  power management events; since these events are not very time-
  critical, it should be sufficient to poll once or twice per second
the critical resume notification is made after the system resumes
  from an emergency suspension; normally, the system BIOS only notifies
  its partner that it wishes to suspend and relies on the partner to
  actually request the suspension, but no notification is made on an
  emergency suspension
should not be called from within a hardware interrupt handler to avoid
  reentrance problems

SeeAlso

    INT 15 AX=5307    INT 15 AX=5307    /BX=0001h/CX=0001h    INT 15 AX=5307    /BX=0001h/CX=0002


INT 15 AX=5400

15 C - Omniview Multitasker - INSTALLATION NOTIFICATION

AX = 5400h
ES:BX -> device information tables
DI:DX -> dispatcher entry point

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5407    INT 2F AX=DE00


INT 15 AX=5401

15 C - Omniview Multitasker - PROCESS CREATION

AX = 5401h
ES:BX = process handle

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5402    INT 2F AX=DE04


INT 15 AX=5402

15 C - Omniview Multitasker - PROCESS DESTRUCTION

AX = 5402h
ES:DX = process handle

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5401    INT 2F AX=DE05


INT 15 AX=5403

15 C - Omniview Multitasker - SAVE

AX = 5403h
ES:DX = process swapping out

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5404    INT 2F AX=DE08


INT 15 AX=5404

15 C - Omniview Multitasker - RESTORE

AX = 5404h
ES:DX = process swapping in

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5403    INT 2F AX=DE09


INT 15 AX=5405

15 C - Omniview Multitasker - SWITCHING TO BACKGROUND

AX = 5405h
ES:DX = process swapping in

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5406


INT 15 AX=5406

15 C - Omniview Multitasker - SWITCHING TO FOREGROUND

AX = 5406h
ES:DX = process swapping in

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5405


INT 15 AX=5407

15 C - Omniview Multitasker - EXIT NOTIFICATION

AX = 5407h

Note

     	called by OmniView to notify programs loaded before OmniView of state
  changes inside OmniView

SeeAlso

    INT 15 AX=5400    INT 2F AX=DE03


INT 15 AH=80

15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)

AH = 80h
BX = device ID
CX = process ID
CF clear

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = status
80h invalid command (PC,PCjr)
86h function not supported (XT)

Note

     	this function should be hooked by a multitasker which wishes to keep
  track of device ownership; the default BIOS handler merely returns
  successfully

SeeAlso

    INT 15 AH=81    INT 15 AH=82


INT 15 AH=81

15 C - OS HOOK - DEVICE CLOSE

AH = 81h
BX = device ID
CX = process ID
CF clear

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = status (see AH=80h)

Note

     	this function should be hooked by a multitasker which wishes to keep
  track of device ownership; the default BIOS handler merely returns
  successfully

SeeAlso

    INT 15 AH=80    INT 15 AH=82


INT 15 AH=82

15 C - OS HOOK - PROGRAM TERMINATION

AH = 82h
BX = process ID
CF clear

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = status (see AH=80h)

Notes

      	closes all devices opened by the given process ID with function 80h
this function should be hooked by a multitasker which wishes to keep
  track of device ownership; the default BIOS handler merely returns
  successfully

SeeAlso

    INT 15 AH=80    INT 15 AH=81


INT 15 AH=83

15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)

AH = 83h
AL = subfunction
    00h set interval
CX:DX = microseconds to delay
ES:BX -> byte whose high bit is to be set at end of interval
    01h cancel wait interval

Return

        CF set on error or function already busy
    AH = status
80h invalid command (PC,PCjr)
86h function not supported (XT and later)
CF clear if successful

Note

     	the resolution of the wait period is 977 microseconds on most systems
  because most BIOSes use the 1/1024 second fast interrupt from the AT
  real-time clock chip which is available on INT 70

SeeAlso

    INT 15 AH=86    INT 70


INT 15 AH=84

15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)

AH = 84h
DX = subfunction
    0000h read joystick switches
Return: AL bits 7-4 = switch settings
    0001h read positions of joysticks
Return: AX = X position of joystick A
BX = Y position of joystick A
CX = X position of joystick B
DX = Y position of joystick B

Return

        CF set on error
    AH = status
80h invalid command (PC,PCjr)
86h function not supported (other)
CF clear if successful

Notes

      	if no game port is installed, subfunction 0000h returns AL=00h (all
  switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
a 250kOhm joystick typically returns 0000h-01A0h


INT 15 AH=85

15 C - OS HOOK - SysRq KEY ACTIVITY (AT,PS)

AH = 85h
AL = 00h SysRq key pressed
   = 01h SysRq key released
CF clear

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = status (see AH=84h)

Notes

      	called by keyboard decode routine
the default handler simply returns successfully; programs which wish
  to monitor the SysRq key must hook this call

SeeAlso

    INT 09


INT 15 AH=86

15 - BIOS - WAIT (AT,PS)

AH = 86h
CX:DX = interval in microseconds

Return

        CF clear if successful (wait interval elapsed)
CF set on error or AH=83h wait already in progress
    AH = status (see AH=84h)

Note

     	the resolution of the wait period is 977 microseconds on most systems
  because most BIOSes use the 1/1024 second fast interrupt from the AT
  real-time clock chip which is available on INT 70

SeeAlso

    INT 15 AH=83    INT 70


INT 15 AH=87

15 - SYSTEM - COPY EXTENDED MEMORY

AH = 87h
CX = number of words to copy (max 8000h)
ES:SI -> global descriptor table

Return

        CF set on error
CF clear if successful
AH = status
    00h source copied into destination
    01h parity error
    02h interrupt error
    03h address line 20 gating failed
    80h invalid command (PC,PCjr)
    86h unsupported function (XT,PS30)

Notes

      	copy is done in protected mode with interrupts disabled
this function is incompatible with the OS/2 compatibility box

SeeAlso

    INT 15 AH=88    INT 15 AH=89

Table Formats

Global descriptor table:


INT 15 AH=88

15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)

AH = 88h

Return

        CF clear if successful
    AX = number of contiguous KB starting at absolute address 100000h
CF set on error
    AH = status
80h invalid command (PC,PCjr)
86h unsupported function (XT,PS30)

Note

     	TSRs which wish to allocate extended memory to themselves often hook
  this call, and return a reduced memory size.	They are then free to
  use the memory between the new and old sizes at will.

SeeAlso

    INT 15 AH=87


INT 15 AH=89

15 - SYSTEM - SWITCH TO PROTECTED MODE

AH = 89h
BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
ES:SI -> GDT for protected mode
       offset 0h  null descriptor (initialize to zeros)
      8h  GDT descriptor
     10h  IDT descriptor
     18h  DS
     20h  ES
     28h  SS
     30h  CS
     38h  uninitialized, used to build descriptor for BIOS CS
CX = offset into protected-mode CS to jump to

Return

        CF set on error
   AH = FFh  error enabling address line 20
CF clear if successful
   AH = 00h
   in protected mode at specified address

Note

     	BL and BH must be multiples of 8

SeeAlso

    INT 15 AH=87    INT 15 AH=88    INT 67 AX=DE0C


INT 15 AH=90

15 - OS HOOK - DEVICE BUSY (AT,PS)

AH = 90h
AL = device type
    00h disk
    01h diskette
    02h keyboard
    03h PS/2 pointing device
    21h waiting for keyboard input (Phoenix BIOS)
    80h network
    FBh digital sound (Tandy)
    FCh disk reset (PS)
    FDh diskette motor start
    FEh printer
ES:BX -> request block for type codes 80h through BFh
CF clear

Return

        CF set if wait time satisfied
CF clear if driver must perform wait
    AH = 00h

Notes

      	type codes are allocated as follows:
  00-7F non-reentrant devices; OS must arbitrate access
  80-BF reentrant devices; ES:BX points to a unique control block
  C0-FF wait-only calls, no complementary INT 15/AH=91h call
floppy and hard disk BIOS code uses this call to implement a timeout;
  for device types 00h and 01h, a return of CF set means that the
  timeout expired before the disk responded.
this function should be hooked by a multitasker to allow other tasks
  to execute while the BIOS is waiting for I/O completion; the default
  handler merely returns with AH=00h and CF clear

SeeAlso

    INT 15 AH=91    INT 13 AH=00    INT 17 AH=00    INT 1A AH=83


INT 15 AH=91

15 - OS HOOK - DEVICE POST (AT,PS)

AH = 91h
AL = device type (see AH=90h)
ES:BX -> request block for type codes 80h through BFh
CF clear

Return

        AH = 00h

Note

     	this function should be hooked by a multitasker to allow other tasks
  to execute while the BIOS is waiting for I/O completion; the default
  handler merely returns with AH=00h and CF clear

SeeAlso

    INT 15 AH=90


INT 15 AH=BC

15 - Phoenix 386 BIOS - DETERMINE CPU SPEED

AH = BCh

Return

        CF clear
BYTE 0040h:00B0h set to ??? (43 on my 386/33)

Note

     	reads system timer channel 0 twice, then does calculations on returned
  values


INT 15 AX=BF00

15 - Rational Systems DOS/16M - ???

AX = BF00h
???

Return

        ???

Note

     	under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h

SeeAlso

    INT 15 AX=BF02


INT 15 AX=BF01

15 - Rational Systems DOS/16M - ???

AX = BF01h
???

Return

        ???

Notes

      	under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
called by DOS/4GW

SeeAlso

    INT 15 AX=BF00    INT 15 AX=BF02


INT 15 AX=BF02

15 - Rational Systems DOS/16M - INSTALLATION CHECK

AX = BF02h
DX = 0000h

Return

        DX = nonzero if installed
    DX:SI -> XBRK structure (see below)

Note

     	this function is also supported by DOS/4G

SeeAlso

    INT 15 AX=BF01    INT 15 AX=BFDC    INT 15 AX=BFDE    /BX=0000

SeeAlso

    INT 21 AH=FF    /DH=0Eh    INT 2F AH=A1    INT 2F AX=F100    INT 2F AX=FBA1

Table Formats

XBRK structure:


INT 15 AX=BF03

15 - Rational Systems DOS/4GW - UNINSTALL???

AX = BF03h
BX = PSP segment of extender
???

Return

        ???

Note

     	if BX is not the PSP segment of the extender, it passes the call down
  the INT 15 chain; this allows nested instances of the extender

SeeAlso

    INT 15 AX=BF06


INT 15 AX=BF04

15 - Rational Systems DOS/4GW - ???

AX = BF04h
BX = PSP segment of extender

Return

        nothing???

Notes

      	if BX is not the PSP segment of the extender, it passes the call down
  the INT 15 chain; this allows nested instances of the extender
grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h

SeeAlso

    INT 2F AX=1607    /BX=22C0


INT 15 AX=BF05

15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE

AX = BF05h
BX = PSP segment of extender

Return

        nothing???

Notes

      	if BX is not the PSP segment of the extender, it passes the call down
  the INT 15 chain; this allows nested instances of the extender
calls INT 67/AX=DE01h if ???


INT 15 AX=BF06

15 - Rational Systems DOS/4GW - ???

AX = BF06h
BX = PSP segment of extender
???

Return

        ???

Note

     	if BX is not the PSP segment of the extender, it passes the call down
  the INT 15 chain; this allows nested instances of the extender

SeeAlso

    INT 15 AX=BF03


INT 15 AX=BFDC

15 - Rational Systems DOS/4GW - INSTALLATION CHECK

AX = BFDCh
DX = 0000h
SI = 0000h

Return

        DX = nonzero if installed
    DX:SI -> XBRK structure (see AX=BF02h)

SeeAlso

    INT 15 AX=BF02


INT 15 AX=BFDE

15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK

AX = BFDEh
BX = 0000h

Return

        AX = ??? (0003h)
BX = FFFFh

SeeAlso

    INT 15 AX=BF02


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET PROCESS MANAGER NAME

AX = BFDEh
BX = 0001h

Return

        BX = 0000h (success)
CX:DX -> name of process manager executable

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - SET ???

AX = BFDEh
BX = 0002h
CX:DX -> ???

Return

        BX = 0000h (success)

SeeAlso

    INT 15 AX=BFDE    /BX=0000h    INT 15 AX=BFDE    /BX=0003


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

AX = BFDEh
BX = 0003h

Return

        BX = 0000h (success)
CX:DX -> ???

SeeAlso

    INT 15 AX=BFDE    /BX=0000h    INT 15 AX=BFDE    /BX=0002


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

AX = BFDEh
BX = 0004h
CL = ???

Return

        BX = 0000h (success)
CX:DX -> XBRK structure (see AX=BF02h)

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

AX = BFDEh
BX = 0005h
CX = new value for ???

Return

        BX = 0000h (success)
AX = old value of ???
DS:SI -> ??? (if AX nonzero on return)
ES:DI -> ??? (if AX zero on return)

Note

     	called by DOS4GW.EXE

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

AX = BFDEh
BX = 0006h

Return

        BX = 0000h (success)
AH = interrupt number??? (BEh)
CX:DX = ???

SeeAlso

    INT 15 AX=BFDE    /BX=0000h    INT 15 AX=BFDE    /BX=0007h    INT BEDESQview


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - SET ???

AX = BFDEh
BX = 0007h
CX:DX = ???

Return

        BX = 0000h (success)

SeeAlso

    INT 15 AX=BFDE    /BX=0000h    INT 15 AX=BFDE    /BX=0006


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

AX = BFDEh
BX = 0008h
CX = segment of ???
DS = ???

Return

        BX = status
    0000h successful
AL = ??? (80h or C0h)
DX = ??? (0603h) if AL=C0h
    0001h failed
AX = 0000h

Note

     	called by DOS4GW.EXE

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER

AX = BFDEh
BX = 0009h

Return

        BX = 0000h (success)
CX:DX -> full pathname to LOAD32.EXP

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - DECREMENT ???

AX = BFDEh
BX = 000Ah

Return

        BX = 0000h (success)
AX = new value of ??? counter

Notes

      	also resets a variety of values if the counter goes negative
called by DOS4GW.EXE

SeeAlso

    INT 15 AX=BFDE    /BX=0000h    INT 15 AX=BFDE    /BX=000B


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - INCREMENT ???

AX = BFDEh
BX = 000Bh

Return

       	AX = new value of ??? counter

Note

     	called by DOS4GW.EXE

SeeAlso

    INT 15 AX=BFDE    /BX=0000h    INT 15 AX=BFDE    /BX=000A


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

AX = BFDEh
BX = 000Ch
CL = ???
    00h
    nonzero

Return

        ???

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

AX = BFDEh
BX = 000Dh
???

Return

        ???

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

AX = BFDEh
BX = 000Eh
DX:CX -> ???

Return

        AX = segment of handle for calling task
BX = ??? (probably destroyed)
DX:CX -> ???

SeeAlso

    INT 15 AX=BFDE    /BX=0000h    INT 15 AX=BFDE    /BX=000Fh    INT 15 AX=BFDE    /BX=0013


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - ???

AX = BFDEh
BX = 000Fh

Return

        AX = segment of handle for calling task
BX = ??? (probably destroyed)
DX:CX -> ???

Note

     	identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h

SeeAlso

    INT 15 AX=BFDE    /BX=000Eh    INT 15 AX=BFDE    /BX=0010


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET TASK HANDLE

AX = BFDEh
BX = 0010h

Return

        AX = segment of caller's task handle
BX destroyed

SeeAlso

    INT 15 AX=BFDE    /BX=000F


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

AX = BFDEh
BX = 0011h

Return

        CX = code segment of DVDOS4GX.DVR
BX = ??? (0004h)

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

AX = BFDEh
BX = 0012h

Return

        DX = code segment of DVDOS4GX.DVR
BX = ??? (012Ch)
CX = ??? (0006h)

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

AX = BFDEh
BX = 0013h

Return

        DX:CX -> ???

SeeAlso

    INT 15 AX=BFDE    /BX=000E


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - LOCK ??? MAILBOX

AX = BFDEh
BX = 0014h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)

Return

        AX,BX destroyed

SeeAlso

    INT 15 AX=BFDE    /BX=0015h    INT 15 AX=BFDE    /BX=0017


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - UNLOCK ??? MAILBOX

AX = BFDEh
BX = 0015h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)

Return

        AX,BX destroyed

SeeAlso

    INT 15 AX=BFDE    /BX=0014h    INT 15 AX=BFDE    /BX=0016


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED

AX = BFDEh
BX = 0016h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)

Return

        AX = status
    0000h no one owns mailbox
    0001h mailbox has an owner
BX destroyed

SeeAlso

    INT 15 AX=BFDE    /BX=0015h    INT 15 AX=BFDE    /BX=0017


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ??? MAILBOX OWNER

AX = BFDEh
BX = 0017h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)

Return

        AX = segment of mailbox owner's handle
BX = segment of caller's task handle

SeeAlso

    INT 15 AX=BFDE    /BX=0015h    INT 15 AX=BFDE    /BX=0016


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - GET ???

AX = BFDEh
BX = FFFDh

Return

        CX:DX = ???

SeeAlso

    INT 15 AX=BFDE    /BX=FFFE


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - SET ???

AX = BFDEh
BX = FFFEh
CX:DX = ???

SeeAlso

    INT 15 AX=BFDE    /BX=FFFD


INT 15 AX=BFDE

15 - DESQview/X 1.02 - DVDOS4GX.DVR - NOP

AX = BFDEh
BX = FFFFh

SeeAlso

    INT 15 AX=BFDE    /BX=0000


INT 15 AH=C0

15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)

AH = C0h

Return

        CF set if BIOS doesn't support call
CF clear on success
    ES:BX -> ROM table (see below)
AH = status
    00h successful
    86h unsupported function

Notes

      	the 1/10/86 XT BIOS returns an incorrect value for the feature byte
the configuration table is at F000h:E6F5h in 100% compatible BIOSes
Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
  and a model byte at absolute address FE845h
Tandy 1000 machines contain 21h in the byte at F000h:C000h
some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
  past the end of the configuration table

Table Formats

ROM configuration table:
Values for model/submodel/revision:
Model  Submdl  Rev	BIOS date	System
 FFh	*	*	04/24/81	PC (original)
 FFh	*	*	10/19/81	PC (some bugfixes)
 FFh	*	*	10/27/82	PC (HD, 640K, EGA support)
 FFh	46h	***	  ???	Olivetti M15
 FEh	*	*	08/16/82	PC XT
 FEh	*	*	11/08/82	PC XT and Portable
 FEh	43h	***	  ???	Olivetti M240
 FEh	A6h	???	  ???	??? (checked for by 386MAX v6.01)
 FDh	*	*	06/01/83	PCjr
 FCh	*	*	01/10/84	AT models 068,099 6 MHz 20MB
 FCh	00h	01h	06/10/85	AT model  239	  6 MHz 30MB
 FCh	00h	<> 01h	  ???	7531/2 Industrial AT
 FCh	01h	00h	11/15/85	AT models 319,339 8 MHz, Enh Keyb, 3.5"
 FCh	01h	00h	09/17/87	Tandy 3000
 FCh	01h	00h	01/15&88	Toshiba T5200/100
 FCh	01h	00h	12/26*89	Toshiba T1200/XE
(Those date characters are not typos)
 FCh	01h	30h	  ???	Tandy 3000NL
 FCh	01h	???	  ???	Compaq 286/386
 FCh	02h	00h	04/21/86	PC XT-286
 FCh	04h	00h	02/13/87     ** PS/2 Model 50 (10 MHz/1 ws 286)
 FCh	04h	03h	04/18/88	PS/2 Model 50Z (10 MHz/0 ws 286)
 FCh	05h	00h	02/13/87     ** PS/2 Model 60 (10 MHz 286)
 FCh	06h	???	  ???	7552 "Gearbox"
 FCh	08h	***	  ???	Epson, unknown model
 FCh	09h	00h	  ???	PS/2 Model 25 (10 MHz 286)
 FCh	09h	02h	06/28/89	PS/2 Model 30-286
 FCh	0Bh	00h	02/16/90	PS/1 Model 2011 (10 MHz 286)
 FCh	30h	***	  ???	Epson, unknown model
 FCh	31h	***	  ???	Epson, unknown model
 FCh	33h	***	  ???	Epson, unknown model
 FCh	42h	***	  ???	Olivetti M280
 FCh	45h	***	  ???	Olivetti M380 (XP 1, XP3, XP 5)
 FCh	48h	***	  ???	Olivetti M290
 FCh	4Fh	***	  ???	Olivetti M250
 FCh	50h	***	  ???	Olivetti M380 (XP 7)
 FCh	51h	***	  ???	Olivetti PCS286
 FCh	52h	***	  ???	Olivetti M300
 FCh	81h	00h	01/15/88	Phoenix 386 BIOS v1.10 10a
 FBh	00h	01h	01/10/86	PC XT, Enh Keyb, 3.5" support
 FBh	00h	02h	05/09/86	PC XT
 FBh	4Ch	***	  ???	Olivetti M200
 FAh	00h	00h	09/02/86	PS/2 Model 30 (8 MHz 8086)
 FAh	00h	01h	12/12/86	PS/2 Model 30
 FAh	01h	00h	  ???	PS/2 Model 25/25L (8 MHz 8086)
 FAh	4Eh	***	  ???	Olivetti M111
 F9h	00h	00h	09/13/85	PC Convertible
 F8h	00h	00h	03/30/87     ** PS/2 Model 80 (16MHz 386)
 F8h	01h	00h	10/07/87	PS/2 Model 80 (20MHz 386)
 F8h	04h	02h	04/11/88	PS/2 Model 70 20MHz, type 2 system brd
 F8h	04h	03h	03/17/89	PS/2 Model 70 20MHz, type 2 system brd
 F8h	09h	00h	  ???	PS/2 Model 70 16MHz, type 1 system brd
 F8h	09h	02h	04/11/88	PS/2 Model 70 some models
 F8h	09h	03h	03/17/89	PS/2 Model 70 some models
 F8h	0Bh	00h	01/18/89	PS/2 Model P70 (8573-121) typ 2 sys brd
 F8h	0Bh	02h	12/16/89	PS/2 Model P70 ??
 F8h	0Ch	00h	11/02/88	PS/2 Model 55SX (16 MHz 386SX)
 F8h	0Dh	00h	  ???	PS/2 Model 70 25MHz, type 3 system brd
 F8h	11h	00h	10/01/90	PS/2 Model 90 (25 MHz 486)
 F8h	13h	00h	10/01/90	PS/2 Model 90 (33 MHz 486)
 F8h	14h	00h	10/01/90	PS/2 Model 90-AK9 (25 MHz 486)
 F8h	16h	00h	10/01/90	PS/2 Model 90-AKD (33 MHz 486)
 F8h	19h	05h	  ???	PS/2 Model 35/35LS or 40 (20 MHz 386SX)
 F8h	1Bh	00h	10/02/89	PS/2 Model 70-486 (25 MHz 486)
 F8h	1Ch	00h	02/08/90	PS/2 Model 65-121 (16 MHz 386SX)
 F8h	1Eh	00h	02/08/90	PS/2 Model 55LS (16 MHz 386SX)
 F8h	23h	01h	  ???	PS/2 Model L40 (20 MHz 386SX)
 F8h	25h	06h	  ???	PS/2 Model M57 (20 MHz 386SLC)
 F8h	26h	01h	  ???	PS/2 Model 57 (20 MHz 386SX)
 F8h	2Ah	00h	  ???	PS/2 Model 95 (50 MHz 486)
 F8h	2Bh	00h	  ???	PS/2 Model 90 (50 MHz 486)
 F8h	2Ch	01h	  ???	PS/2 Model 95 (20 MHz 486SX)
 F8h	2Dh	00h	  ???	PS/2 Model 90 (20 MHz 486SX)
 F8h	2Eh	01h	  ???	PS/2 Model 95 (20 MHz 486SX + 487SX)
 F8h	2Fh	00h	  ???	PS/2 Model 90 (20 MHz 486SX + 487SX)
 F8h	30h	00h	  ???	PS/1 Model 2121 (16 MHz 386SX)
 F8h	50h	00h	  ???	PS/2 Model P70 (8573) (16 MHz 386)
 F8h	50h	01h	12/16/89	PS/2 Model P70 (8570-031)
 F8h	52h	00h	  ???	PS/2 Model P75 (33 MHz 486)
 F8h	61h	***	  ???	Olivetti P500
 F8h	62h	***	  ???	Olivetti P800
 F8h	80h	00h	  ???	PS/2 Model 80 (25 MHz 386)
 F8h	80h	01h	11/21/89	PS/2 Model 80-A21
 F8h	???	???	  ???	PS/2 Model 90 (25 MHz 486SX)
 F8h	???	???	  ???	PS/2 Model 95 (25 MHz 486SX)
 F8h	???	???	  ???	PS/2 Model 90 (25 MHz 486SX + 487SX)
 F8h	???	???	  ???	PS/2 Model 95 (25 MHz 486SX + 487SX)
 E1h	???	???	  ???	??? (checked for by DOS4GW.EXE)
 9Ah	*	*	  ???	Compaq XT/Compaq Plus
 30h	???	???	  ???	Sperry PC
 2Dh	*	*	  ???	Compaq PC/Compaq Deskpro
 ???	56h	???	  ???	Olivetti, unknown model
 ???	74h	???	  ???	Olivetti, unknown model
    * This BIOS call is not implemented in these early versions.
      Read Model byte at F000h:FFFEh and BIOS date at F000h:FFF5h.
   ** These BIOS versions require the DASDDRVR.SYS patches.
  *** These Olivetti and Epson machines store the submodel in the byte at
F000h:FFFDh.

Values for Dell model byte:
 02h	Dell 200
 03h	Dell 300
 05h	Dell 220
 06h	Dell 310
 07h	Dell 325
 09h	Dell 310A
 0Ah	Dell 316
 0Bh	Dell 220E
 0Ch	Dell 210
 0Dh	Dell 316SX
 0Eh	Dell 316LT
 0Fh	Dell 320LX
 11h	Dell 425E


INT 15 AH=C1

15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)

AH = C1h

Return

        CF set on error
CF clear if successful
    ES = segment of data area

SeeAlso

    INT 15 AH=04"ABIOS"


INT 15 AX=C200

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE

AX = C200h
BH = 00h disable
     01h enable

Return

        CF set on error
AH = status
    00h successful
    01h invalid function
    02h invalid input
    03h interface error
    04h need to resend
    05h no device handler installed


INT 15 AX=C201

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET

AX = C201h

Return

        CF set on error
    AH = status (see AX=C200h)
CF clear if successful
    BH = device ID

SeeAlso

    INT 33 AX=0000


INT 15 AX=C202

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE

AX = C202h
BH = sampling rate
    00h 10/second
    01h 20/second
    02h 40/second
    03h 60/second
    04h 80/second
    05h 100/second
    06h 200/second

Return

        CF set on error
    AH = status (see AX=C200h)

SeeAlso

    INT 33 AX=001C


INT 15 AX=C203

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION

AX = C203h
BH = resolution
    00h one count per mm
    01h two counts per mm
    02h four counts per mm
    03h eight counts per mm

Return

        CF set on error
    AH = status (see AX=C200h)


INT 15 AX=C204

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE

AX = C204h

Return

        CF set on error
    AH = status (see AX=C200h)
CF clear if successful
    BH = device ID


INT 15 AX=C205

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE

AX = C205h
BH = data package size (1 - 8 bytes)

Return

        CF set on error
    AH = status (see AX=C200h)

SeeAlso

    INT 15 AX=C201


INT 15 AX=C206

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET/SET SCALING FACTOR

AX = C206h
BH = subfunction
    00h return device status
Return: BL = status
   bit 0: right button pressed
   bit 1: reserved
   bit 2: left button pressed
   bit 3: reserved
   bit 4: 0 if 1:1 scaling, 1 if 2:1 scaling
   bit 5: device enabled
   bit 6: 0 if stream mode, 1 if remote mode
   bit 7: reserved
CL = resolution (see AX=C203h)
DL = sample rate, reports per second
    01h set scaling at 1:1
    02h set scaling at 2:1

Return

        CF set on error
    AH = status (see AX=C200h)


INT 15 AX=C207

15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR

AX = C207h
ES:BX -> FAR user device handler

Return

        CF set on error
    AH = status (see AX=C200h)

SeeAlso

    INT 33 AX=000C


INT 15 AH=C3

15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)

AH = C3h
AL = 00h disable
     01h enable
BX = timer counter

Return

        CF set on error
CF clear if successful

Note

     	the watchdog timer generates an NMI


INT 15 AH=C4

15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)

AH = C4h
AL = 00h return base POS register address
     01h enable slot
 BL = slot number
     02h enable adapter

Return

        CF set on error
DX = base POS register address (if function 00h)

SeeAlso

    INT 15 AH=C6


INT 15 AH=C5

15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)

AH = C5h
AL = interrupt being invoked
    01h INT 19
    02h INT 14
    03h INT 16
    04h INT 40 (floppy INT 13)
    05h INT 17
    06h INT 10
    07h INT 12
    08h INT 11
    09h INT 1A

Return

        all registers except AX must be preserved

Notes

      	called as the very first action of the indicated ROM BIOS interrupt
  handlers on the PS/2 Models 30/286, 50Z, and 95
default handler does nothing and returns CF clear for the above
  subfunctions, CF set and AH=86h for all other subfunctions
value of AX passed to the original interrupt handler is pushed on
  stack immediately prior to call


INT 15 AH=C6

15 U - later PS/2 models - GET POS DATA

AH = C6h
???

Return

        ???

Notes

      	this function is referenced by name and number in some IBM BIOS manuals
IBM reports that "there are a number of problems with this call" and
  does not recommend its use.

SeeAlso

    INT 15 AH=C4


INT 15 AH=C7

15 U - PS/2 Model 95 - ???

AH = C7h
???

Return

        ???


INT 15 AH=C8

15 U - PS/2 Model 95 - ???

AH = C8h
???

Return

        ???


INT 15 AH=C9

15 U - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION

AH = C9h
AL = 10h (may be required on some non-PS BIOSes)

Return

        AH = 00h
CH = CPU type
    03h 80386DX or clone
    04h 80486
    23h 80386SX or clone
CL = mask revision (stepping level)

Notes

      	the BIOS must save DX at startup in order to be able to support this
  call; PS/2 Models 56, 57, 90, and 95 are known to support it
the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)


INT 15 AH=CA

15 U - PS/2 Model 95 - ???

AH = CAh
???

Return

        ???


INT 15 AH=CB

15 U - PS/2 Model 95 - ???

AH = CBh
???

Return

        ???


INT 15 AH=CC

15 U - PS/2 Model 95 - ???

AH = CCh
???

Return

        ???


INT 15 AH=CD

15 U - PS/2 Model 95 - ???

AH = CDh
???

Return

        ???


INT 15 AH=CE

15 U - PS/2 Model 95 - ???

AH = CEh
???

Return

        ???


INT 15 AH=CF

15 U - PS/2 Model 95 - ???

AH = CFh
???

Return

        ???


INT 15 AX=D800

15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION

AX = D800h
CL = slot number (including embedded and virtual)

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = error code
80h invalid slot number
82h EISA CMOS corrupt
83h empty slot
86h invalid BIOS-FW function call
87h invalid system configuration
AL bit flags
    bit 7: set if duplicate IDs
6: set if product ID readable
      4,5: slot type (00=expansion, 01=embedded, 10=virtual device)
      0-3: duplicate ID number if bit 7 set
BH = major revision level of configuration utility
BL = minor revision level of configuration utility
CX = checksum of configuration file
DH = number of device functions
DL = combined function information byte
SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)

Note

     	call with AL=80h if using 32-bit CS addressing mode instead of 16-bit

SeeAlso

    INT 15 AX=D801    INT 15 AX=D804


INT 15 AX=D801

15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION

AX = D801h
CH = function number to read
CL = slot number (including embedded and virtual)
DS:SI -> 320-byte buffer for standard configuration data block

Return

        CF clear if successful
    AH = 00h
    DS:SI buffer filled
CF set on error
    AH = error code
80h invalid slot number
81h invalid function number
82h EISA CMOS corrupt
83h empty slot
86h invalid BIOS-FW function call
87h invalid system configuration
BX destroyed

Note

     	call with AL=81h if using 32-bit CS addressing mode instead of 16-bit


INT 15 AX=D802

15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)

AX = D802h
BH = EISA config utility major revision level
BL = EISA config utility minor revision level

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = error code
84h error clearing CMOS
86h invalid BIOS-FW function call
88h config utility version not supported

Note

     	call with AL=82h if using 32-bit CS addressing mode instead of 16-bit

SeeAlso

    INT 15 AX=D803


INT 15 AX=D803

15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY

AX = D803h
CX = length of data structure (0000h = empty slot)
includes two bytes for config file checksum
DS:SI -> configuration data

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = error code
84h error clearing CMOS
85h EISA CMOS is full
86h invalid BIOS-FW function call

Note

     	call with AL=83h if using 32-bit CS addressing mode instead of 16-bit

SeeAlso

    INT 15 AX=D802


INT 15 AX=D804

15 - EISA SYSTEM ROM - READ PHYSICAL SLOT

AX = D804h
CL = slot number (including embedded and virtual)

Return

        CF clear if successful
    AH = 00h
CF set on error
    AH = error code
80h invalid slot number
83h empty slot
86h invalid BIOS-FW function call
SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)

Note

     	call with AL=84h if using 32-bit CS addressing mode instead of 16-bit

SeeAlso

    INT 15 AX=D800


INT 15 AH=D8

15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS

AH = D8h
AL = 80h to 84h
other registers as appropriate for AL=00h to 04h

Return

        as appropriate for AL=00h to 04h

Note

     	these functions are identical to AX=D800h to D804h, except that they
  should be called when using 32-bit CS addressing mode (pointers use
  ESI rather than SI as offset) instead of 16-bit addressing mode

SeeAlso

    INT 15 AX=D800    INT 15 AX=D801    INT 15 AX=D802    INT 15 AX=D803    INT 15 AX=D804


INT 15 AX=DE00

15 - DESQview - GET PROGRAM NAME

AX = DE00h

Return

        AX = offset into DESQVIEW.DVO of program most recently selected from
the "Switch Windows" menu (see below)

Note

     	always returns AX=0000h under DESQview/X

SeeAlso

    INT 15 AX=DE07

Table Formats

Program entry in DESQVIEW.DVO:


INT 15 AX=DE01

15 - DESQview - UPDATE "OPEN WINDOW" MENU

AX = DE01h

Return

        nothing

Notes

      	reads DESQVIEW.DVO, disables Open menu if file not in current directory
NOP for DESQview/X


INT 15 AX=DE02

15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW

AX = DE02h

Return

        nothing

Note

     	this call is a NOP in DV 2.x

SeeAlso

    INT 15 AX=DE03


INT 15 AX=DE03

15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW

AX = DE03h

Return

        AX = ??? for current window
BX = ??? for current window

Note

     	this call is a NOP in DV 2.x

SeeAlso

    INT 15 AX=DE02


INT 15 AX=DE04

15 - DESQview - GET AVAILABLE COMMON MEMORY

AX = DE04h

Return

        BX = bytes of common memory available
CX = largest block available
DX = total common memory in bytes

SeeAlso

    INT 15 AX=DE05    INT 15 AX=DE06


INT 15 AX=DE05

15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY

AX = DE05h

Return

        BX = K of memory available
CX = largest block available
DX = total conventional memory in K

SeeAlso

    INT 15 AX=DE04    INT 15 AX=DE06


INT 15 AX=DE06

15 - DESQview - GET AVAILABLE EXPANDED MEMORY

AX = DE06h

Return

        BX = K of expanded memory available
CX = largest block available
DX = total expanded memory in K

SeeAlso

    INT 15 AX=DE04    INT 15 AX=DE05


INT 15 AX=DE07

15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER

AX = DE07h

Return

        AX = number of program as it appears on the "Switch Windows" menu

Note

     	this API call may be made from a hardware interrupt handler

SeeAlso

    INT 15 AX=DE00


INT 15 AX=DE08

15 - DESQview - GET ???

AX = DE08h

Return

        AX = 0000h if ??? is not set to the current task
     0001h if ??? is set to the current task


INT 15 AX=DE09

15 - DESQview - UNIMPLEMENTED

AX = DE09h

Return

        nothing (NOP in DV 1.x and 2.x)


INT 15 AX=DE0A

15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE

AX = DE0Ah
BL = character

Return

        character displayed, next call will display in next position (which
wraps back to the start of the line if off the right edge of screen)

Notes

      	displays character on bottom line of *physical* screen, regardless
  of current size of window (even entirely hidden)
does not know about graphics display modes, just pokes the characters
  into display memory
this API call may be made from a hardware interrupt handler

SeeAlso

    INT 15 AX=1003


INT 15 AX=DE0B

15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED

AX = DE0Bh
BL = API level minor version number
BH = API level major version number

Return

        AX = maximum API level (AH = major, AL = minor)

Notes

      	if the requested API level is greater than the version of DESQview, a
  "You need a newer version" error window is popped up
the API level defaults to 1.00, and is inherited by child tasks


INT 15 AX=DE0C

15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY

AX = DE0Ch
BX = number of bytes

Return

        ES:DI -> allocated block or 0000h:0000h (DV 2.26+)

Note

     	use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
  system memory

SeeAlso

    INT 15 AX=1001    INT 15 AX=102E    INT 15 AX=DE0D    INT 15 AX=DE15    INT 15 AX=DE19


INT 15 AX=DE0D

15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY

AX = DE0Dh
ES:DI -> previously allocated block

Return

        nothing

SeeAlso

    INT 15 AX=1002    INT 15 AX=DE0C


INT 15 AX=DE0E

15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME

AX = DE0Eh
ES:DI -> name to find
CX = length of name

Return

        BX = 0000h not found
     0001h found
DS:SI = object handle

SeeAlso

    INT 15 AH=12    /BH=11h    INT 15 AH=12    /BX=1200h"GETNAME

Special mailbox names:
 "COM1" ... "COM4"	RBcomm using COM1 ... COM4
 "DESQview/X Help Engine"
 "DESQview/X Network Server"  Network Manager
 "DESQview X Server0"	X-Windows server
 "DESQview X Server7"	X-Windows printing service
 "INBOX"	DESQview/X LPD requests
 "OUTBOX"	DESQview/X LPD responses
 "WAITBOX"	semaphore to synchronize DESQview/X LPD communications


INT 15 AX=DE0F

15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS

AX = DE0Fh

Return

        AX and BX destroyed (seems to be bug, weren't saved&restored)

Notes

      	sends a manager stream with opcodes AEh, BDh, and BFh to task's window
enables an additional mouse mode


INT 15 AX=DE10

15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM

AX = DE10h
BH = scan code
BL = character

Return

        nothing

Notes

      	a later read will get the keystroke as if it had been typed by the user
multiple pushes are read last-in first-out
if a script exists for the pushed key in the current application, the
  script will be executed
early copies of DV 2.00 destroy AX, BX, ES, and DI

SeeAlso

    INT 16 AH=05


INT 15 AX=DE11

15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION

AX = DE11h
BL = 00h      viewport will not move automatically
     nonzero  viewport will move to keep cursor visible (default)

Return

        nothing


INT 15 AX=DE12

15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET

AX = DE12h
BX = 0000h    select normal style (linefeed only moves down)
     nonzero  select C style (linefeed moves to start of next line)

Return

        nothing

Note

     	set on a per-task basis, and inherited from the parent task


INT 15 AX=DE13

15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT

AX = DE13h

Return

        BX = number of calls to BEGINC or ENTERC (see INT 15/AX=101Bh,DE1Ch)
     without matching ENDC (see INT 15/AX=101Ch)

Note

     	this API call may be made from within a hardware interrupt handler

SeeAlso

    INT 15 AX=101B    INT 15 AX=101C    INT 15 AX=DE1B    INT 15 AX=DE1C


INT 15 AX=DE14

15 - DESQview v2.20+ - GET OBJECT TYPE

AX = DE14h
ES:DI -> object

Return

        BL = 00h not an object
     08h window or task
     09h mailbox
     0Ah keyboard
     0Bh timer
     0Ch objectq
     0Fh pointer
     10h panel

SeeAlso

    INT 15 AX=1016


INT 15 AX=DE15

15 - DESQview v2.20+ - SET ERROR HANDLING

AX = DE15h
BL = error handling mode
    00h post system error on all error conditions
    01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE
messages sent to mailboxes which fail due to lack of system
or common memory
    02h (v2.26+) same as 01h, but also return null pointer for GETMEM
calls which fail due to lack of system memory

Return

        nothing

SeeAlso

    INT 15 AX=DE0C    INT 15 AX=DE16


INT 15 AX=DE16

15 - DESQview v2.20+ - GET ERROR HANDLING

AX = DE16h

Return

        BL = current mode
    00h always post system error
    01h return carry flag set on failed mailbox writes
    02h return CF set on failed mailbox writes and NULL on failed
GETMEM calls

SeeAlso

    INT 15 AX=DE15


INT 15 AX=DE17

15 - DESQview v2.20-2.25 - reserved

AX = DE17h

Return

        pops up "Programming error" window

Note

     	AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25

SeeAlso

    INT 15 AX=1117


INT 15 AX=DE17

15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT

AX = DE17h
BX = function
    0000h   get current mapping context without setting
    nonzero set new mapping context to BX

Return

        BX = mapping context in effect before call

Notes

      	mapping contexts determine conventional-memory addressability; setting
  a mapping context ensures that the associated program and data areas
  are in memory for access.  Usable by drivers, TSRs and shared
  programs.
caller need not be running under DESQview
this API call may be made from a hardware interrupt handler

SeeAlso

    INT 15 AX=1117    INT 15 AX=DE21    INT 2F AX=1685


INT 15 AX=DE18

15 - DESQview v2.20+ - internal - ???

AX = DE18h
BP = function number
    high byte must be 10h
    low byte is function
00h set ???
    BL = ???  (00h-10h, video mode???)
    BH = value to store
03h set ???
    BL = ??? (stored in driver)
0Ah get ???
    ES:DI -> 18-byte buffer to hold ???

Note

     	calls video driver (NOP for Hercules driver,probably CGA and MCGA also)


INT 15 AX=DE19

15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY

AX = DE19h
BX = number of bytes to allocate

Return

        AX = 0000h successful
ES:DI -> allocated block
     nonzero insufficient memory

Note

     	this API call may be made from within a hardware interrupt handler

SeeAlso

    INT 15 AX=DE0C    INT 15 AX=DE15    INT 15 AX=DE1A


INT 15 AX=DE1A

15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY

AX = DE1Ah
DS:SI -> previously allocated block

Note

     	this function may be called from within a hardware interrupt handler

SeeAlso

    INT 15 AX=DE0D    INT 15 AX=DE19


INT 15 AX=DE1B

15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT

AX = DE1Bh

Return

        nothing

SeeAlso

    INT 15 AX=101C    INT 15 AX=DE13    INT 15 AX=DE1C


INT 15 AX=DE1C

15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT

AX = DE1Ch

Return

        nothing

Notes

      	similar to AX=101Bh, but begins the critical region without ensuring
  that DOS is free
the official documentation states that this call should be paired with
  "ENDC" (AX=101Ch); no mention is made of AX=DE1Bh
this API call may be made from within a hardware interrupt handler

SeeAlso

    INT 15 AX=101B    INT 15 AX=101C    INT 15 AX=DE13    INT 15 AX=DE1B


INT 15 AX=DE1D

15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES

AX = DE1Dh
DX = segment of handle for task to receive keystroke
BL = character
BH = scan code

Return

        AX = 0000h if successful
   nonzero if receiver's keyboard buffer was full

Notes

      	the key is treated as though the user had pressed it, ignoring any
  script which may be bound to the key, and using the current field
  table if the keyboard object is in field processing mode
multiple PUTKEYs are seen in the order in which they are executed

SeeAlso

    INT 15 AX=DE10


INT 15 AX=DE1E

15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS

AX = DE1Eh

Return

       	CL = actual number of rows on screen
CH = actual number of columns on screen
BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+)

Note

     	this API call may be made from a hardware interrupt handler

SeeAlso

    INT 10 AH=0F


INT 15 AX=DE1F

15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS

AX = DE1Fh

Return

        BX = segment of task handle or 0000h if no tasks are using DOS

Note

     	this API call may be made from within a hardware interrupt handler

SeeAlso

    INT 15 AX=DE13    INT 21 AH=34


INT 15 AX=DE20

15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK

AX = DE20h
BX = segment of handle of task to interupt
DX:CX -> FAR interrupt routine
BP,SI,DI,DS,ES as required by interrupt routine

Return

        nothing

Notes

      	unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task
  making the DISPATCHINT call
multiple "DISPATCHINT" calls are processed in the order in which they
  were executed
the FAR routine is entered with the current ES, DS, SI, DI, and BP
  values, using the task's internal stack (see AX=101Ah); only SS:SP
  needs to be preserved
this API call may be made from within a hardware interrupt handler

SeeAlso

    INT 15 AX=1021    INT 15 AX=DE2A


INT 15 AX=DE21

15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION

AX = DE21h
BX = new state
    0000h turn off
    nonzero turn on

Return

        BX = old state of virtualization

Notes

      	this API call may be made from within a hardware interrupt handler
under DV 2.40 and 2.42, this call appears to have no effect and always
  returns a nonzero value in BX which appears to be the offset within
  the DV common memory segment of the caller's task object; it may
  only have an effect within a hardware interrupt handler

SeeAlso

    INT 15 AX=1117    INT 15 AX=DE17


INT 15 AX=DE22

15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS

AX = DE22h
DX = segment of task handle

Return

        DX = total amount of memory in paragraphs
BX = amount of system memory in paragraphs
CX = largest block of system memory available in paragraphs
AX = flags
    bit 0: system memory resides in shared memory
1: process's memory is swapped out
2: process's system memory is swapped out

Notes

      	if the task handle is a child task, the returned values will be for the
  process containing the task, rather than the task itself
if the process's system memory is swapped out, BX,CX,DX remain
  unchanged, because the memory usage cannot be determined

SeeAlso

    INT 15 AX=DE04    INT 15 AX=DE05    INT 15 AX=DE06


INT 15 AX=DE23

15 U - DESQview v2.31+ - ???

AX = DE23h
BX = ??? IRQ number on first PIC?
CX = ??? IRQ number on second PIC?

Return

        ???

Note

     	called by QEMM 6.00+


INT 15 AX=DE24

15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION

AX = DE24h
BX = length of .DVP data
CX = length of ??? string
DS:SI -> ??? string
ES:DI -> .DVP data (see AX=102Ch)

Return

        BX = segment of task handle??? or 0000h on error

Note

     	this call is similar to AX=102Ch except that it can interpret the
  extended DVP data

SeeAlso

    INT 15 AX=102C


INT 15 AX=DE25

15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY

AX = DE25h
ES:DI -> 67-byte buffer for ASCIZ directory name

Return

        ES:DI buffer filled with directory from which DESQview was started

BUG

    	DV 2.42 does not place a terminating NUL at the end of the directory
  name, so if the buffer is not cleared to zeros before the call,
  there is no way to tell where the directory name ends.  This bug
  has been fixed in DV 2.52 (DV/X 1.02)

SeeAlso

    INT 15 AX=DE2E    INT 21 AH=47


INT 15 AX=DE26

15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS

AX = DE26h

Return

        BX = segment of handle for task with keyboard focus

Note

     	under DESQview/X, the X server always has the keyboard focus unless a
  "direct" window is active

SeeAlso

    INT 15 AX=DE2F    INT 2F AX=DE0A


INT 15 AX=DE27

15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA

AX = DE27h
BX = type
    0000h process
    0001h task
ES:DI -> list of Instance Item Structures (see below)

Return

        CF clear if successful
    AX = ???
    BX = ???
CF set on error
    AX = ???

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.

SeeAlso

    INT 2F AX=DE08    INT 2F AX=DE09

Table Formats

Instance Item Structure [one element of list]:


INT 15 AX=DE28

15 U - DESQview v2.50+ - ???

AX = DE28h
BX = segment of ??? or 0000h for default
???

Return

        ???

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.

SeeAlso

    INT 15 AX=DE2A


INT 15 AX=DE29

15 U - DESQview v2.50+ - ???

AX = DE29h
BX = 0000h
???

Return

        CF clear if successful
    ???
CF set on error

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.


INT 15 AX=DE29

15 U - DESQview v2.50+ - ???

AX = DE29h
BX = 0001h
DX = segment of window handle

Return

        CF clear if successful
    AX = ???
    DX = ???
CF set on error

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.


INT 15 AX=DE29

15 U - DESQview v2.50+ - ???

AX = DE29h
BX = 0002h
DX = segment of window handle

Return

        CF clear if successful
    AX = ???
    DX = ???
CF set on error

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.


INT 15 AX=DE29

15 U - DESQview v2.50+ - ???

AX = DE29h
BX = 0003h
DX = segment of window handle

Return

        CF clear if successful
    ???
CF set on error

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.


INT 15 AX=DE29

15 U - DESQview v2.50+ - GET DISPLAY NAME

AX = DE29h
BX = 0004h
CX = size of buffer in bytes
DX = segment of window handle
ES:DI -> buffer for display name

Return

        CF clear if successful
    buffer filled with ASCIZ display name (truncated if necessary) or
      null string if no display
CF set on error

Notes

      	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
the name ":0" refers to the local display


INT 15 AX=DE29

15 U - DESQview v2.50+ - ???

AX = DE29h
BX = 0005h
???

Return

        CF clear if successful
    ???
CF set on error

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.


INT 15 AX=DE2A

15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK

AX = DE2Ah
BX = segment of handle for task to interrupt or 0000h for caller
DX:CX -> interrupt routine
BP,SI,DI,DS,ES as required by interrupt routine

Return

        nothing

Notes

      	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
this call is the same as AX=DE20h except that it will delay
  interrupting the specified task until after it has exited DOS

SeeAlso

    INT 15 AX=1021    INT 15 AX=DE20


INT 15 AX=DE2B

15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST

AX = DE2Bh
ES:DI -> starting object
0000h:0000h for first object in list???

Return

        AX = status
    0000h successful
ES:DI -> next object of same type (window/non-window)
    0001h failed (ES:DI was not a valid handle)

Notes

      	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
there are two separate lists, one for window/task objects and one
  for all other objects

SeeAlso

    INT 15 AX=1016    INT 15 AX=DE2A    INT 15 AX=DE2C


INT 15 AX=DE2C

15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION

AX = DE2Ch
DX = window information format version (0100h for DESQview 2.5x)
BX = segment of window handle or 0000h for default
ES:DI -> buffer for window information (see below)

Return

        AX = status
    0000h successful

Note

     	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.

SeeAlso

    INT 15 AX=1000    INT 15 AX=1016    INT 15 AX=DE01    INT 15 AX=DE2B

Table Formats

Window information:
Values for task status:
 00h "Waiting" waiting for input
 01h "Idle" keyboard poll limit reached
 03h same as 01h
 04h "Pausing" INT 15/AX=1000h pause called
 04h DV/X direct: user did something to allow task switch
 05h "ModeChg" video mode about to be changed
 06h "ModeNtf" notify that video mode changed
 07h "MoniCh" requested change to other monitor
 08h "StartPgm" control relinquished to start new process
 09h "MgrCan" made window manager CANCEL command
 0Ah "Slicing" time slice expired
 0Bh "Exit DOS" notify on DOS calls
 0Ch "Enter DOS" process is re-entering DOS
 0Dh "Terminate" INT 21/AH=4Ch or task freed
 0Eh "BrkNxt" Control-Break pressed
 0Fh "MgrCol" keyboard focus taken away
 10h "PgmInt" interrupted by API call from another task
 11h "BldOpen" call to INT 15/AX=DE01h


INT 15 AX=DE2D

15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER

AX = DE2Dh
CX = direction
    FFFFh set socket handler
DX:BX -> FAR function for socket interface
must be of the format described under INT 63"DESQview"
    other get socket handler
Return: DX:BX -> socket handler

Notes

      	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
the "set" subfunction is normally called only by SOCKET.DVR

SeeAlso

    INT 15 AX=DE2E    INT 63DESQview


INT 15 AX=DE2E

15 U - DESQview v2.50+ - SOCKET API

AX = DE2Eh
DX:BX -> socket record or 0000h:0000h to create a new socket record

Return

        CX = size of socket record in bytes
DX:BX -> socket record which was used

Notes

      	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
socket records are allocated from common memory
for Unix compatibility, each socket and connection on a socket is
  allocated a DOS file handle (referencing an SFT for NUL) which is
  used on various calls to specify which of possibly multiple
  connections is to be operated upon

SeeAlso

    INT 15 AX=DE2D    INT 63DESQview

Table Formats

Socket record:
Function 0026h/Subfunction 000Fh data:
Function 0026h/Subfunction 0010h data:
Function 0026h/Subfunction 0011h data:
Function 0026h/Subfunction 0012h data:
Function 0026h/Subfunction 0013h data:
Function 0026h/Subfunction 0016h data:
Function 0026h/Subfunction 0018h data:
Function 0026h/Subfunction 0019h data:
Function 0026h/Subfunction 001Ah data:
Function 0026h/Subfunction 001Bh data:
Function 0026h/Subfunction 001Dh return data [array]:
Function 0026h/Subfunction 0024h return data:
Function 0026h/Subfunction 0030h data:
Function 0026h/Subfunction 0034h data:
Function 0026h/Subfunction 0038h return data:
Values for error code:
 0000h successful
 0009h "BADF" bad file handle
 000Ch "ENOMEM" out of memory
 000Eh "EFAULT" bad address
 0016h "EINVAL" invalid argument
 0018h "EMFILE" too many open files
 0020h "EPIPE" ??? broken pipe
 0023h "EWOULDBLOCK" operation cannot be completed at this time
 0024h "EINPROGRESS" operation now in progress
 0026h "ENOTSOCK" socket invalid
 0028h "EMSGSIZE" message too long to send atomically
 002Ch "ESOCKTNOSUPPORT" socket type not supported
 002Fh "EAFNOSUPPORT" address family not supp. by protocol fam.
 0031h "EDOM" argument too large
 0038h "EISCONN" socket is already connected
 0039h "ENOTCONN" socket is not connected

Socket Context Record:


INT 15 AX=DE2F

15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?

AX = DE2Fh

Return

        BX = status
    0001h keyboard focus has been given to a direct window since the
last call
    0000h if not

Notes

      	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
Quarterdeck states that this call will not be available under future
  versions of DESQview Classic


INT 15 AX=DE30

15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION

AX = DE30h

Return

        BX = version (BH=major, BL=minor) or 0000h if not DESQview/X

Notes

      	DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
you must first check the DESQview version to verify that it is 2.50 or
  greater

SeeAlso

    INT 21 AH=2B    /CX=4445


INT 15 AX=E00F

15 - Compaq Systempro - MULTIPROCESSOR DISPATCH

AX = E00Fh
ES:BX -> start of 2nd processor's execution

Return

        AL = 0Fh successful
   = 00h failure

SeeAlso

    INT 15 AX=E10E    INT 15 AX=E200


INT 15 AX=E10E

15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH

AX = E10Eh
ES:BX -> start of 2nd processor's execution

Return

        AL = 0Fh successful (halted)
   = 00h failure (not halted)

SeeAlso

    INT 15 AX=E00F    INT 15 AX=E200


INT 15 AX=E200

15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE

AX = E200h

Return

        AX = 8000h if 2nd processor available

SeeAlso

    INT 15 AX=E00F    INT 15 AX=E10E


INT 15 AH=E4

15 - ???

AH = E4h
AL = subfunction
    21h, 89h, 8Ah, 8Bh called by 386MAX v6.01
DL = ???

Return

        ???


INT 15 AX=F200

15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALISATION CHECK ???

AX = F200h
CX = 454Dh

Return

        CF clear if hardware already initialised
    BX = upper RAM areas in use
bit 0: C000-C3FF
bit 1: C400-C7FF
...
bit 11: EC00-EFFF
CF set if hardware not initialised yet


INT 16 AH=00

16 - KEYBOARD - GET KEYSTROKE

AH = 00h

Return

        AH = BIOS scan code
AL = ASCII character

Notes

      	on extended keyboards, this function discards any extended keystrokes,
  returning only when a non-extended keystroke is available
the BIOS scan code is usually, but not always, the same as the hardware
  scan code processed by INT 09.  It is the same for ASCII keystrokes
  and most unshifted special keys (F-keys, arrow keys, etc.), but
  differs for shifted special keys.

SeeAlso

    INT 16 AH=01    INT 16 AH=05    INT 16 AH=10    INT 16 AH=20    INT 18 AH=00


INT 16 AH=01

16 - KEYBOARD - CHECK FOR KEYSTROKE

AH = 01h

Return

        ZF set if no keystroke available
ZF clear if keystroke available
    AH = BIOS scan code
    AL = ASCII character

Note

     	if a keystroke is present, it is not removed from the keyboard buffer;
  however, any extended keystrokes which are not compatible with 83/84-
  key keyboards are removed in the process of checking whether a
  non-extended keystroke is available

SeeAlso

    INT 16 AH=00    INT 16 AH=11    INT 16 AH=21    INT 18 AH=01


INT 16 AH=02

16 - KEYBOARD - GET SHIFT FLAGS

AH = 02h

Return

        AL = shift flags
    bit 7: Insert active
6: CapsLock active
5: NumLock active
4: ScrollLock active
3: Alt key pressed (either Alt on 101/102-key keyboards)
2: Ctrl key pressed (either Ctrl on 101/102-key keyboards)
1: left shift key pressed
0: right shift key pressed

SeeAlso

    INT 16 AH=12    INT 16 AH=22    INT 18 AH=02


INT 16 AH=03

16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY

AH = 03h
AL = subfunction
    00h set default delay and rate (PCjr and some PS/2)
    01h increase delay before repeat (PCjr)
    02h decrease repeat rate by factor of 2 (PCjr)
    03h increase delay and decrease repeat rate (PCjr)
    04h turn off typematic repeat (PCjr and some PS/2)
    05h set repeat rate and delay (AT,PS)
BH = delay value (00h = 250ms to 03h = 1000ms)
BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
    06h get current typematic rate and delay (newer PS/2s)
Return: BL = repeat rate (see above)
BH = delay (see above)

Note

     	use INT 16/AH=09h to determine whether some of the subfunctions are
  supported

SeeAlso

    INT 16 AH=09


INT 16 AH=04

16 - KEYBOARD - SET KEYCLICK (PCjr only)

AH = 04h
AL = keyclick state
    00h off
    01h on

SeeAlso

    INT 16 AH=03


INT 16 AH=05

16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)

AH = 05h
CH = scan code
CL = ASCII character

Return

        AL = 00h if successful
     01h if keyboard buffer full

Note

     	under DESQview, the following "keystrokes" invoke the following
  actions when they are read from the keyboard buffer:
38FBh or FB00h	switch to next window (only if main menu
popped up)
38FCh or FC00h	pop up DESQview main menu
38FEh or FE00h	close the current window
38FFh or FF00h	pop up DESQview learn menu

SeeAlso

    INT 16 AH=00    INT 16 AH=71    INT 16 AH=FF    INT 15 AX=DE10


INT 16 AH=05

16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)

AH = 05h
AL = function
    01h set keyboard layout to French
    02h set keyboard layout to German
    03h set keyboard layout to Italian
    04h set keyboard layout to Spanish
    05h set keyboard layout to UK
    80h check if function supported
Return: AL <> 80h if supported

Return

        ???

Note

     	called by DOS 3.2 KEYBxx.COM

SeeAlso

    INT 16 AH=92    INT 16 AH=A2


INT 16 AH=09

16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY

AH = 09h

Return

        AL = keyboard functions supported
    bit 7: reserved
    bit 6:
    bit 5:
    bit 4: INT 16/AH=0Ah supported
    bit 3: INT 16/AX=0306h supported
    bit 2: INT 16/AX=0305h supported
    bit 1: INT 16/AX=0304h supported
    bit 0: INT 16/AX=0300h supported

Note

     	this function is only available if bit 6 of the second feature byte
  returned by INT 15/AH=C0h is set

SeeAlso

    INT 16 AH=03    INT 16 AH=0A    INT 15 AH=C0


INT 16 AH=0A

16 - KEYBOARD - GET KEYBOARD ID

AH = 0Ah

Return

        BX = keyboard ID

Note

     	check return value from AH=09h to determine whether this function is
  supported

SeeAlso

    INT 16 AH=09


INT 16 AH=10

16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)

AH = 10h

Return

        AH = BIOS scan code
AL = ASCII character

Notes

      	if no keystroke is available, this function waits until one is placed
  in the keyboard buffer
the BIOS scan code is usually, but not always, the same as the hardware
  scan code processed by INT 09.  It is the same for ASCII keystrokes
  and most unshifted special keys (F-keys, arrow keys, etc.), but
  differs for shifted special keys.
unlike AH=00h, this function does not discard extended keystrokes

SeeAlso

    INT 16 AH=00    INT 16 AH=11    INT 16 AH=20


INT 16 AH=11

16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)

AH = 11h

Return

        ZF set if no keystroke available
ZF clear if keystroke available
    AH = BIOS scan code
    AL = ASCII character

Notes

      	if a keystroke is available, it is not removed from the keyboard buffer
unlike AH=01h, this function does not discard extended keystrokes

SeeAlso

    INT 16 AH=01    INT 16 AH=10    INT 16 AH=21


INT 16 AH=12

16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)

AH = 12h

Return

        AL = shift flags 1 (same as returned by AH=02h)
    bit 7: Insert active
6: CapsLock active
5: NumLock active
4: ScrollLock active
3: Alt key pressed (either Alt on 101/102-key keyboards)
2: Ctrl key pressed (either Ctrl on 101/102-key keyboards)
1: left shift key pressed
0: right shift key pressed
AH = shift flags 2
    bit 7: SysRq key pressed
6: CapsLock pressed
5: NumLock pressed
4: ScrollLock pressed
3: right Alt key pressed
2: right Ctrl key pressed
1: left Alt key pressed
0: left Ctrl key pressed

Notes

      	AL bit 3 set only for left Alt key on many machines
AH bits 7 through 4 always clear on a Compaq SLT/286

SeeAlso

    INT 16 AH=02    INT 16 AH=22    INT 16 AH=51


INT 16 AH=20

16 - KEYBOARD - GET 122-KEY KEYSTROKE???

AH = 20h

Return

        ??? see AH=10h

Note

     	use AH=09h to determine whether this function is supported

SeeAlso

    INT 16 AH=00    INT 16 AH=10    INT 16 AH=21


INT 16 AH=21

16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE???

AH = 21h

Return

        ??? see AH=11h

Note

     	use AH=09h to determine whether this function is supported

SeeAlso

    INT 16 AH=01    INT 16 AH=11    INT 16 AH=20


INT 16 AH=22

16 - KEYBOARD - GET 122-KEY SHIFT STATUS???

AH = 22h

Return

        ??? see AH=12h

Note

     	use AH=09h to determine whether this function is supported

SeeAlso

    INT 16 AH=02    INT 16 AH=12


INT 16 AX=4252

16 - TEXTCAP 2.0 - INSTALLATION CHECK

AX = 4252h

Return

        AX = 5242h if installed

Note

     	TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of the
  PC Magazine utility CAPTURE written by Tom Kihlken

SeeAlso

    INT 16 AX=4253    INT 16 AX=4254


INT 16 AX=4253

16 - TEXTCAP 2.0 - UNINSTALL

AX = 4253h

Return

        AX = segment of resident code

Notes

      	the uninstall code does not check whether interrupt vectors have been
  chained by other programs
the caller must free the main memory block (using the returned segment)

SeeAlso

    INT 16 AX=4252    INT 16 AX=4254


INT 16 AX=4254

16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE

AX = 4254h

Return

        AX = status
    4254h if screen dump will be written as soon as disk becomes idle
    5442h if screen dump written

SeeAlso

    INT 16 AX=4252    INT 16 AX=4253


INT 16 AX=4500

16 - Shamrock Software EMAIL - GET STATUS

AX = 4500h
DL = port number (01h = COM1)
ES:BX -> 13-byte buffer for ASCIZ name

Return

        AX = 4D00h if EMAIL installed on specified port
    ES:BX -> "" if no connection
  -> "*" if connection but caller has not identified name
  -> name otherwise
    CX = version (CH = major, CL = minor)
    DL = privilege level of user (00h = guest)
    DH = chosen language (00h German, 01h English)

SeeAlso

    INT 16 AX=4501    INT 16 AX=4502


INT 16 AX=4501

16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME

AX = 4501h
DL = port number (01h = COM1)

Return

        AX = 4D00h if EMAIL installed on specified port
    BX = maximum connect time in clock ticks
    CX = maximum connect time for guests (without name) in clock ticks
    DX = elapsed connect time of current user in clock ticks

SeeAlso

    INT 16 AX=4500


INT 16 AX=4502

16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS

AX = 4502h
DL = port number (01h = COM1)

Return

        AX = 4D00h if EMAIL installed on specified port
    BL = current value of serial port's Line Control Register
    BH = flags
bit 0: ISO code
    1: pause
    2: linefeed
    3: ANSI sequences
    CX = selected country code (33 = France, 49 = Germany, etc)
    DX = baudrate divisor (115200/DX = baudrate)

SeeAlso

    INT 16 AX=4500


INT 16 AX=4503

16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION

AX = 4503h
DL = port number (01h = COM1)
DH = maximum execution time in clock ticks (00h = 5 seconds)
ES:BX -> ASCIZ string with new user command-word

Return

        AX = 4D00h if EMAIL installed on specified port

Notes

      	a single user command (consisting of only uppercase letters and digits)
  may be defined, and remains valid until it is overwritten or the
  EMAIL program terminates; the user command must be activated by
  calling AX=4504h at least once.
an existing command word may be redefined with this function

SeeAlso

    INT 16 AX=4504    INT 16 AX=4505


INT 16 AX=4504

16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD

AX = 4504h
DL = port number (01h = COM1)
ES:BX -> 80-byte buffer for ASCIZ user input line

Return

        AX = 4D00h if EMAIL installed on specified port
    DL = flags
bit 0: user function supported (always set)
    1: user entered user-function command word
    if DL bit 1 set,
ES:BX buffer contains line entered by user which begins with
the defined command word and has been converted to all
caps

Note

     	caller must process the returned commandline and invoke AX=4505h
  within five seconds with the result of that processing

SeeAlso

    INT 16 AX=4503    INT 16 AX=4505


INT 16 AX=4505

16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION

AX = 4505h
DL = port number (01h = COM1)
DH = error flag
    bit 3: set on error
ES:BX -> ASCIZ text to return to user, max 1024 bytes

Return

        AH = 4Dh if EMAIL installed on specified port
AL = status
    00h successful
    02h unable to perform function (timeout, prev call not complete)
    other error

Notes

      	if the error flag in DH is set, the string is not sent and an error
  message is generated instead; if this function is not called within
  five seconds of AX=4504h, EMAIL automatically generates an error
  message
the string is copied into an internal buffer, allowing this function's
  caller to continue immediately

SeeAlso

    INT 16 AX=4503    INT 16 AX=4504    INT 17 AX=2400


INT 16 AX=4506

16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD

AX = 4506h
DL = port number (01h = COM1)
ES:BX -> 13-byte buffer for ASCIZ filename

Return

        AX = 4D00h if EMAIL installed on specified port
    DH = Xmodem status
00h no XGET command given
01h XGET in progress
02h XGET completed successfully
    ES:BX buffer filled with last filename given to XGET command
(without path)

Note

     	DH=02h will only be returned once per XGET; subsequent calls will
  return DH=00h

SeeAlso

    INT 16 AX=4500    INT 17 AX=2408


INT 16 AX=5000

16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE

AX = 5000h
BX = country code
    0001h USA (English), 0051h Japan

Return

        AL = status
    00h successful
    01h bad country code
    02h other error

SeeAlso

    INT 16 AX=5001    INT 10 AX=5000    INT 17 AX=5000


INT 16 AX=5001

16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE

AX = 5001h

Return

        AL = status
    00h successful
BX = country code
    02h error

SeeAlso

    INT 16 AX=5000    INT 10 AX=5001    INT 17 AX=5001


INT 16 AH=51

16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS

AH = 51h

Return

        AL = standard shift key states (see AH=12h)
AH = Kana lock (00h off, 01h on)

SeeAlso

    INT 16 AH=02    INT 16 AH=12    INT 16 AH=22


INT 16 AX=5500

16 - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR

AX = 5500h

Return

        AX = 4D53h ('MS') if keyboard TSR present

Notes

      	during startup, Microsoft Word tries to communicate with any TSRs
  that are present through this call.
if the return is not 4D53h, Word installs its own INT 09 and INT 16
  handlers; otherwise it assumes that the TSR will handle the keyboard

SeeAlso

    INT 1A AX=3601


INT 16 AX=55FF

16 - Swap Utilities - ???

AX = 55FFh
BX >= 0004h
CX = function
    0000h set ??? flag
    other clear ??? flag

Note

     	present in SWAPSH and SWAPDT v1.77j, distributed with PC Tools 7


INT 16 AX=6969

16 - PC Tools v5.1+ BACKTALK - UNHOOK

AX = 6969h
BX = 6968h

Return

        resident code unhooked, but not removed from memory


INT 16 AX=6969

16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK

AX = 6969h
BX = 6969h
DX = 0000h

Return

        DX nonzero if installed
    BX = CS of resident code
    DX = PSP segment of resident code
    DS:SI -> ASCIZ identification string "CPoint Talk"


INT 16 AX=6F00

16 - HP Vectra - ??? - INSTALLATION CHECK

AX = 6F00h
BX = 0000h

Return

        BX = 4850h if present

Note

     	called by recent MS Mouse drivers


INT 16 AX=6F0D

16 - HP Vectra - ???

AX = 6F0Dh
???

Return

        ???

Note

     	called by MS Windows HPSYSTEM.DRV and HPEBIOS.386

SeeAlso

    INT 16 AX=6F0E


INT 16 AX=6F0E

16 - HP Vectra - ???

AX = 6F0Eh
???

Return

        ???

Note

     	called by MS Windows HPSYSTEM.DRV and HPEBIOS.386

SeeAlso

    INT 16 AX=6F0D


INT 16 AH=70

16 - FAKEY.COM - INSTALLATION CHECK

AH = 70h

Return

        AX = 1954h if installed

Note

     	FAKEY is a keystroke faking utility by System Enhancement Associates


INT 16 AH=71

16 - FAKEY.COM - PUSH KEYSTROKES

AH = 71h
CX = number of keystrokes
DS:SI -> array of words containing keystrokes to be returned by AH=00h

Note

     	FAKEY is a keystroke faking utility by System Enhancement Associates

SeeAlso

    INT 16 AH=05    INT 16 AH=72


INT 16 AH=72

16 - FAKEY.COM - CLEAR FAKED KEYSTROKES

AH = 72h

Note

     	FAKEY is a keystroke faking utility by System Enhancement Associates

SeeAlso

    INT 16 AH=71


INT 16 AH=73

16 - FAKEY.COM - PLAY TONES

AH = 73h
CX = number of tones to play
DS:SI -> array of tones (see below)

Note

     	FAKEY is a keystroke faking utility by System Enhancement Associates

SeeAlso

    INT 15 AX=1019

Table Formats

Tone array entries:


INT 16 AH=75

16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING

AH = 75h
AL = number of ticks between checks for new screen changes


INT 16 AH=76

16 - pcANYWHERE III - SET ERROR CHECKING TYPE

AH = 76h
AL = error checking type
    00h none
    01h fast
    02h slow


INT 16 AH=77

16 - pcANYWHERE III - LOG OFF

AH = 77h
AL = mode
    00h wait for another call
    01h leave in Memory Resident Mode
    02h leave in Automatic Mode
    FFh leave in current operating mode


INT 16 AX=7761

16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK

AX = 7761h ('wa')

Return

        AX = 5741h ('WA') if installed

Note

     	WATCH.COM is part of the "TSR" package by Kim Kokkonen

SeeAlso

    INT 21 AX=7761


INT 16 AX=7788

16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK

AX = 7788h
BX = 7789h
DS:SI -> signature "PUSHDIR VERSION 1.0"

Return

        AX = 7789h if installed and signature correct
BX = 7788h
SI destroyed


INT 16 AH=79

16 - pcANYWHERE III - CHECK STATUS

AH = 79h

Return

        AX = status
    FFFFh if resident and active
    FFFEh if resident but not active
    FFFDh if in Memory Resident mode
    FFFCh if in Automatic mode
    other value if not resident

SeeAlso

    INT 16 AX=7B00    INT 21 AX=2B44


INT 16 AH=7A

16 - pcANYWHERE III - CANCEL SESSION

AH = 7Ah


INT 16 AX=7B00

16 - pcANYWHERE III - SUSPEND

AX = 7B00h

SeeAlso

    INT 16 AH=79    INT 16 AX=7B01


INT 16 AX=7B01

16 - pcANYWHERE III - RESUME

AX = 7B01h

SeeAlso

    INT 16 AH=79    INT 16 AX=7B00


INT 16 AH=7C

16 - pcANYWHERE III - GET PORT CONFIGURATION

AH = 7Ch

Return

        AH = port number
AL = baud rate
    00h = 50 baud
    01h = 75 baud
    02h = 110 baud
    03h = 134.5 baud
    04h = 150 baud
    05h = 300 baud
    06h = 600 baud
    07h = 1200 baud
    08h = 1800 baud
    09h = 2000 baud
    0Ah = 2400 baud
    0Bh = 4800 baud
    0Ch = 7200 baud
    0Dh = 9600 baud
    0Eh = 19200 baud


INT 16 AH=7D

16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS

AH = 7Dh
AL = subfunction
    00h set terminal parameters
    01h get terminal parameters
    02h get configuration header and terminal parameters
DS:CX -> terminal parameter block


INT 16 AH=7E

16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT

AH = 7Eh
AL = subfunction
    01h port input status
Return AX = 0 if no characer ready,
       AX = 1 if character ready
    02h port input character
Return AL = received character
    03h port output character in CX
    11h hang up phone


INT 16 AH=7F

16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE

AH = 7Fh
AL = subfunction
    00h enable remote keyboard only
    01h enable host keyboard only
    02h enable both keyboards
    08h display top 24 lines
    09h display bottom 24 lines
    10h Hayes modem
    11h other modem
    12h direct connect


INT 16 AH=80

16 - MAKEY.COM - INSTALLATION CHECK

AH = 80h

Return

        AX = 1954h if installed

Note

     	MAKEY is a utility by System Enhancement Associates


INT 16 AX=8765

16 - AT.COM version 8/26/87 - API

AX = 8765h
BX = 4321h
CX = ??? or FFFFh
if CX = FFFFh
DX = number of event to remove or FFFFh

Return

        ES:BX -> event record array

Note

     	AT.COM is a resident scheduler by Bill Frolik

Table Formats

Event record:


INT 16 AH=92

16 - ???

AH = 92h

Return

        AH <= 80h if ???

Note

     	called by DOS 3.2 KEYBxx.COM and DOS 5.0 KEYB.COM

SeeAlso

    INT 16 AH=05"PCjr"    INT 16 AH=A2


INT 16 AH=99

16 - SCOUT v5.4 - GET ???

AH = 99h

Return

        AX = ABCDh
BX:CX -> ??? (appears to be start of PSP for resident portion)

Note

     	Scout is a memory-resident file manager by New-Ware

SeeAlso

    INT 16 AH=9E


INT 16 AH=9E

16 - SCOUT v5.4 - INSTALLATION CHECK

AH = 9Eh

Return

        AX = ABCDh if installed

Note

     	Scout is a memory-resident file manager by New-Ware

SeeAlso

    INT 16 AH=99


INT 16 AH=A2

16 - ???

AH = A2h

Return

        AH <= 80h if ???

Note

     	this function is called by DOS 5.0 KEYB.COM

SeeAlso

    INT 16 AH=92


INT 16 AH=AA

16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS

AH = AAh
Various registers set up by high level language.

Return

        Graphics performed

Note

     	PT stands for Paint Tools which is a graphics library for Turbo Pascal,
  Modula 2 and others from DataBiten in Sweden. The library is
  installed as a memory resident driver.


INT 16 AH=CA

16 - CtrlAlt Associates STACKEY.COM v3.00 - API

AH = CAh
BX = 736Bh ("sk")
CX = 736Bh
AL = function
    00h installation check
Return: DX = words available in keyboard buffer
    01h place keystroke in buffer
DX = keystroke (DH = scan code, DL = ASCII character)
Return: DX = words available in keyboard buffer
    FFFFh on error
    02h flush STACKEY and BIOS keyboard buffers

Return

        AX = CAFFh if installed
    BX = segment of resident code
    CX = STACKEY version (CH = major, CL = minor)

Note

     	STACKEY is a shareware keyboard-input faking TSR


INT 16 AX=CA00

16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK

AX = CA00h
BX = 6570h ("ep")
CX = 6570h

Return

        AX = CAFFh if installed
    BX = segment of resident code
    CX = ??? (0090h)

Note

     	EGAPAL is a TSR supplied with STACKEY which makes EGA palette settings
  permanent across mode switches

SeeAlso

    INT 16 AX=CA00    /BX=7670


INT 16 AX=CA00

16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK

AX = CA00h
BX = 7670h ("vp")
CX = 7670h

Return

        AX = CAFFh if installed
    BX = segment of resident code
    CX = ??? (0090h)

Note

     	VGAPAL is a TSR supplied with STACKEY which makes VGA palette settings
  permanent across mode switches

SeeAlso

    INT 16 AX=CA00    /BX=6570


INT 16 AX=E0E0

16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK

AX = E0E0h

Return

        AX = 1F1Fh if installed
    DWORD 0040h:00F0h -> last data block in TSR list (see AX=F0F0h)

Note

     	the returned TSR list provides support for communication among TSRs
  built with TurboPower's Turbo Professional and Object Professional
  libraries for Turbo Pascal

SeeAlso

    INT 16 AX=F0F0


INT 16 AH=ED

16 - BORLAND TURBO LIGHTNING - API

AH = EDh
BH = EDh
BL = function
    00h installation check
Return: AX = 5205h
CH = major version
CL = minor version
    01h ???
    02h get resident CS
Return: AX = code segment of resident portion
    03h get resident ???
Return: AX = offset of some buffer in resident code seg
    04h ???
    05h set ???
AL = 0 to 0Ch
Return: AX = status
    0000h if OK
    0001h if out of range.
    06h ???
    07h ???
    08h ???
AL = char???
CX = ???
DX = ???
Return: AX = 0, 1 or 2
    09h ???
    0Ah ???
CX = ???
DX = ???
Return: AX = ???
    0Bh ???
DS:SI -> ???
Return: AX = 0, 40h, 80h
    0Ch ???
DS:SI -> ???
Return: AH = 0
AL = ???
    0Dh set ???
(sets an internal flag)
    0Eh ???
DS:SI -> ???
Return: AX = 0, 1 or 2.
    0Fh ???
    10h ???

Notes

      	AX in general returns an error code from most functions.


INT 16 AH=F0

16 - Compaq 386 - SET CPU SPEED

AH = F0h
AL = speed
    00h equivalent to 6 MHz 80286 (COMMON)
    01h equivalent to 8 MHz 80286 (FAST)
    02h full 16 MHz (HIGH)
    03h toggles between 8 MHz-equivalent and speed set by system board
switch (AUTO or HIGH)
    08h full 16 MHz except 8 MHz-equivalent during floppy disk access
    09h specify speed directly
CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088

SeeAlso

    INT 16 AH=F1    INT 16 AH=F3


INT 16 AX=F0F0

16 - TurboPower TSRs - INSTALLATION CHECK

AX = F0F0h

Return

        AX = 0F0Fh if installed
    ES:DI -> last data block in TSR list

Note

     	the returned TSR list provides support for communication among TSRs
  built with TurboPower's Turbo Professional and Object Professional
  libraries for Turbo Pascal

SeeAlso

    INT 16 AX=E0E0

Table Formats

Data block:


INT 16 AH=F1

16 - Compaq 386 - READ CURRENT CPU SPEED

AH = F1h

Return

       	AL = speed code (see AH=F0h)
     if AL = 09h, CX = speed code

SeeAlso

    INT 16 AH=F0    INT 16 AH=F3


INT 16 AH=F2

16 - Compaq 386 - DETERMINE ATTACHED KEYBOARD TYPE

AH = F2h

Return

        AL = type
    00h if 11-bit AT keyboard is in use
    01h if 9-bit PC keyboard is in use


INT 16 AH=F3

16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)

AH = F3h
AL = 00h limit is 6 Mhz
   = 01h limit is 8 Mhz/6 Mhz

SeeAlso

    INT 16 AH=F0    INT 16 AH=F1


INT 16 AX=F398

16 U - NORTON GUIDES - INSTALLATION CHECK

AX = F398h

Return

        AX = 6A73h ("js")
BH = scan code of current hot key
BL = ASCII code of current hot key

Note

     	NG.EXE was written by John Socha


INT 16 AX=F400

16 - Compaq Systempro - CACHE CONTROLLER STATUS

AX = F400h

Return

        AH = E2h
AL = status
    00h not present
    01h enabled
    02h disabled

SeeAlso

    INT 16 AX=F401    INT 16 AX=F402


INT 16 AX=F401

16 - Compaq Systempro - ENABLE CACHE CONTROLLER

AX = F401h

Return

        AX = E201h

SeeAlso

    INT 16 AX=F400    INT 16 AX=F402


INT 16 AX=F402

16 - Compaq Systempro - DISABLE CACHE CONTROLLER

AX = F402h

Return

        AX = E202h

SeeAlso

    INT 16 AX=F400    INT 16 AX=F401


INT 16 AX=FA00

16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK???

AX = FA00h
DX = 5945h

Return

        CF clear
DI = 4559h
BX = ??? (2F00h or FFFFh) (VSAFE only)

SeeAlso

    INT 13 AH=FA    INT 21 AH=FA"VDEFEND"    INT 2F AX=6282


INT 16 AX=FA01

16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL

AX = FA01h
DX = 5945h

Return

        CF clear if successful
FI = 4559h

SeeAlso

    INT 16 AX=FA00


INT 16 AX=FA02

16 U - PC Tools v8+ VSAFE, VWATCH - ???

AX = FA02h
DX = 5945h
BL = ???

Return

        CF clear
DI = 4559h
CL = old value of ???


INT 16 AX=FA03

16 U - PC Tools v8+ VSAFE, VWATCH - ???

AX = FA03h
DX = 5945h

Return

        CF clear
DI = 4559h
AX = 0002h


INT 16 AX=FA04

16 U - PC Tools v8+ VSAFE - GET ???

AX = FA04h
DX = 5945h

Return

        CF clear
DI = 4559h
BL = ???

Note

     	this function is a NOP under VWATCH

SeeAlso

    INT 16 AX=FA05


INT 16 AX=FA05

16 U - PC Tools v8+ VSAFE - SET ???

AX = FA05h
DX = 5945h
BL = ???

Return

        CF clear
DI = 4559h

Note

     	this function is a NOP under VWATCH

SeeAlso

    INT 16 AX=FA04


INT 16 AX=FA06

16 U - PC Tools v8+ VSAFE, VWATCH - GET ???

AX = FA06h
DX = 5945h

Return

        CF clear
DI = 4559h
BL = ???

SeeAlso

    INT 16 AX=FA07


INT 16 AX=FA07

16 U - PC Tools v8+ VSAFE, VWATCH - SET ???

AX = FA07h
DX = 5945h
BL = ???

Return

        CF clear
DI = 4559h

SeeAlso

    INT 16 AX=FA00    INT 16 AX=FA06


INT 16 AX=FE55

16 U - PC Tools v8+ DATAMON, DRIVEMAP, CPSCHED, CPTASK - ???

AX = FE55h
CX = ???
DX = ???
???

Return

        DX:AX -> ???


INT 16 AX=FEA4

16 U - PC Tools v7+ CPSCHED/DESKTOP - ???

AX = FEA4h
???

Return

        ???

Note

     	this function is identical to AX=FFD3h, and is implemented by the same
  code in DESKTOP

SeeAlso

    INT 16 AX=FFA4


INT 16 AX=FEC6

16 U - PC Tools v7+ CPSCHED - ???

AX = FEC6h
DL = ???
???

Return

        ???


INT 16 AX=FED3

16 U - PC Tools v7+ CPSCHED/DESKTOP - ???

AX = FED3h
DS:SI -> 92-byte data record for ???

Return

        ???

Note

     	this function is identical to AX=FFD3h, and is implemented by the same
  code in DESKTOP

SeeAlso

    INT 16 AX=FFD3


INT 16 AX=FEDC

16 U - PC Tools v7+ CPSCHED - ???

AX = FEDCh
???

Return

        ???


INT 16 AX=FEEF

16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK

AX = FEEFh
CX = 0000h

Return

        CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
    BX = segment of resident portion

Note

     	this function is identical to AX=FFD3h, and is implemented by the same
  code in DESKTOP

SeeAlso

    INT 16 AX=FFEF


INT 16 AX=FEF1

16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK

AX = FEF1h
BX = ???

Return

        CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
DX = 5555h

Note

     	this function is identical to AX=FFD3h, and is implemented by the same
  code in DESKTOP

SeeAlso

    INT 16 AX=FFF1


INT 16 AH=FF

16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER

AH = FFh
DX = scan code

Return

        AL = status
    00h success
    01h failure

Note

     	KBUF is a keyboard buffer expander by Mark Adler

SeeAlso

    INT 16 AH=05


INT 16 AH=FF

16 - OPTIMA 1024 VGA-Sync - QUERY ZOOM INTERRUPT

AH = FFh

Return

        AL = interrupt number to which BIOS keyboard handler has been relocated
AL+1 = Zoom interrupt number
BX = hotkey

Note

     	The default interrupts are 60h for keyboard and 61h for Zoom interrupt;
  the default hot key is F10

SeeAlso

    INT 60OPTIMA


INT 16 AX=FF70

16 U - PC Tools v8+ DRIVEMAP - API???

AX = FF70h
BX = function (0000h-0002h)
???

Return

        ???

BUG

    	this call will branch to random locations on BX=0003h-5CD6h under v8.0
  due to range-testing the wrong register

SeeAlso

    INT 2F AH=92"DRIVEMAP"


INT 16 AX=FF80

16 U - PC Tools v8+ CPTASK - API

AX = FF80h
BX = function (0000h-0009h or 4350h ['CP'])
???

Return

        ???


INT 16 AX=FF90

16 U - PC Tools v8+ DESKTOP - ???

AX = FF90h
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FF91

16 U - PC Tools v7+ DESKTOP - ???

AX = FF91h
???

Return

        AX = 0000h

Note

     	calls AX=FFFDh after ???

SeeAlso

    INT 16 AX=FF92    INT 16 AX=FFFD


INT 16 AX=FF92

16 U - PC Tools v7+ DESKTOP - ???

AX = FF92h
???

Return

        AX = 0000h

Note

     	like AX=FF91h, but temporarily sets ??? to 3

SeeAlso

    INT 16 AX=FF91    INT 16 AX=FF92


INT 16 AX=FF93

16 U - PC Tools v7+ DESKTOP - SET ??? FLAG

AX = FF93h


INT 16 AX=FF94

16 U - PC Tools v7+ DESKTOP - SET ???

AX = FF94h
CX = ??? (default 0017h)


INT 16 AX=FF95

16 U - PC Tools v7+ DESKTOP - SET ???

AX = FF95h
BX = ???


INT 16 AX=FF96

16 U - PC Tools v7+ DESKTOP - ???

AX = FF96h
CL = ???

Return

        AX = ???


INT 16 AX=FF97

16 U - PC Tools v7+ DESKTOP - ???

AX = FF97h
DS:DX -> buffer for ??? (see below)

Return

        ???

Table Formats

Buffer:


INT 16 AX=FF98

16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY

AX = FF98h
DX = byte offset in file of overlay header

Return

        BX = file handle for DESK.OVL file

Desc

     	open the DESK.OVL file, seek to the specified offset, read in the
  overlay header, and seek to the offset specified by the header

Table Formats

Overlay header:


INT 16 AX=FF99

16 U - PC Tools v7+ DESKTOP - ???

AX = FF99h
???

Return

        ???


INT 16 AX=FF9A

16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME

AX = FF9Ah

Return

        ES:BX -> name of current color scheme

Note

     	available even if not popped up


INT 16 AX=FF9B

16 U - PC Tools v7+ DESKTOP - UNUSED

AX = FF9Bh

Return

        ???

Note

     	sounds triple-length beep


INT 16 AX=FF9C

16 U - PC Tools v8+ CPTASK - ???

AX = FF9Ch
BL = ??? (00h,01h)
???

Return

        ???

Note

     	sounds triple-length beep


INT 16 AX=FF9D

16 U - PC Tools v8+ CPTASK, VSAFE - ???

AX = FF9Dh
ES:BX -> ??? word

Return

        ???

Note

     	if ES is non-zero, the word pointed at by ES:BX determines whether the
  ??? flag is cleared (word = 0000h) or set (word is nonzero).	The
  flag is always cleared if ES=0000h.


INT 16 AX=FF9E

16 U - PC Tools v7+ DESKTOP - ???

AX = FF9Eh
DL = ???
    bit 7: ???
    bits 6-0: function number??? (00h,01h,other)
???

Return

        ???


INT 16 AX=FFA1

16 U - PC Tools v7+ DESKTOP - ???

AX = FFA1h
???

Return

        ???

Note

     	same as AX=FFA2h, except ??? set to FFh

SeeAlso

    INT 16 AX=FFA2


INT 16 AX=FFA2

16 U - PC Tools v7+ DESKTOP - ???

AX = FFA2h
???

Return

        ???

Note

     	calls AX=FFC7h (remove window) and AX=FFFDh

SeeAlso

    INT 16 AX=FFA1    INT 16 AX=FFC7    INT 16 AX=FFFD


INT 16 AX=FFA3

16 U - PC Tools v7+ DATAMON - INSTALLATION CHECK

AX = FFA3h
BX = 0000h
CX = 0000h

Return

        AX = segment of resident code
BX = 5555h
CX = 5555h


INT 16 AX=FFA3

16 U - PC Tools v7+ DATAMON - GET ???

AX = FFA3h
BX = 0001h
CX = 0001h

Return

        AX:BX -> ???
CX = BX


INT 16 AX=FFA3

16 U - PC Tools v7+ DATAMON - GET ???

AX = FFA3h
BX = 0002h
CX = 0002h

Return

        AX = ??? (0 or 1)
CX = BX = AX


INT 16 AX=FFA3

16 U - PC Tools v7+ DATAMON - GET ???

AX = FFA3h
BX = 0003h
CX = 0003h

Return

        AX = ??? (0 or 1)
CX = BX = AX


INT 16 AX=FFA3

16 U - PC Tools v7+ DATAMON - SET ??? FLAG

AX = FFA3h
BX = 0004h
CX = 0004h

SeeAlso

    INT 16 AX=FFA3    /BX=0005


INT 16 AX=FFA3

16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG

AX = FFA3h
BX = 0005h
CX = 0005h

SeeAlso

    INT 16 AX=FFA3    /BX=0004


INT 16 AX=FFA3

16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???

AX = FFA3h
BX = 0006h
CX = 0006h
DX = current PSP segment as known to DOS??? or 0000h


INT 16 AX=FFA4

16 U - PC Tools v7+ DESKTOP - ???

AX = FFA4h

Return

        ???

Notes

      	available even when not popped up
sets unknown flag if ??? conditions met

SeeAlso

    INT 16 AX=FEA4


INT 16 AX=FFA5

16 - PC-Cache v6+ - INSTALLATION CHECK

AX = FFA5h
CX = 1111h

Return

        CH = 00h if installed
    ES:DI -> internal data (see below)
    CL = cache state
01h enabled
02h disabled

SeeAlso

    INT 13 AH=A0    INT 21 AH=2B    /CX=4358

Table Formats

Internal data:


INT 16 AX=FFA5

16 - PC-Cache v6+ - ENABLE DELAYED WRITES

AX = FFA5h
CX = AAAAh

Return

        AX = ??? (apparently either 0000h or sectors_in_cache - 5)

SeeAlso

    INT 16 AX=FFA5    /CX=CCCC


INT 16 AX=FFA5

16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES

AX = FFA5h
CX = CCCCh

Return

        AX = ??? (apparently either 0000h or sectors_in_cache - 5)

Note

     	delayed writes are automatically disabled on EXECing
  (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
  however, delayed writes are not automatically reenabled upon the
  program's termination in v6.

SeeAlso

    INT 16 AX=FFA5    /CX=AAAAh    INT 16 AX=FFA5    /CX=FFFF


INT 16 AX=FFA5

16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE

AX = FFA5h
CX = DDDDh

SeeAlso

    INT 16 AX=FFA5    /CX=EEEEh    INT 16 AX=FFA5    /CX=FFFF


INT 16 AX=FFA5

16 - PC-Cache v6+ - ENABLE CACHE

AX = FFA5h
CX = EEEEh

SeeAlso

    INT 16 AX=FFA5    /CX=DDDD


INT 16 AX=FFA5

16 - PC-Cache v6+ - FLUSH CACHE

AX = FFA5h
CX = FFFFh

SeeAlso

    INT 16 AX=FFA5    /CX=CCCCh    INT 16 AX=FFA5    /CX=DDDDh    INT 13 AH=A1


INT 16 AX=FFA6

16 U - PC Tools v6.0+ DESKTOP API - GET ???

AX = FFA6h

Return

        DS:SI -> ???

Note

     	available only when popped up


INT 16 AX=FFA7

16 U - PC Tools v6.0+ DESKTOP API - GET ??? PATH

AX = FFA7h

Return

        DS:SI -> ASCIZ path (directory from which PCTools was run???)


INT 16 AX=FFA8

16 U - PC Tools v6.0+ DESKTOP API - ???

AX = FFA8h
DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
???

Return

        ???

Notes

      	available only when popped up
strings copied into internal buffer, among other actions


INT 16 AX=FFA9

16 U - PC Tools v6.0+ DESKTOP API - GET VERSION STRING

AX = FFA9h

Return

        DS:SI -> version string


INT 16 AX=FFAA

16 U - PC Tools v6.0+ DESKTOP API - ???

AX = FFAAh
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFAB

16 U - PC Tools v6.0+ DESKTOP API - GET EDITOR SETTINGS???

AX = FFABh

Return

        DS:SI -> editor setting strings???


INT 16 AX=FFAC

16 U - PC Tools v6.0+ DESKTOP API - SET ???

AX = FFACh
DL = ???

Note

     	available only when popped up


INT 16 AX=FFAD

16 U - PC Tools v6.0+ DESKTOP API - SET ???

AX = FFADh
DL = ???


INT 16 AX=FFAE

16 U - PC Tools v6.0+ DESKTOP API - GET ???

AX = FFAEh

Return

        AL = ???


INT 16 AX=FFAF

16 U - PC Tools v6.0+ DESKTOP API - SET ???

AX = FFAFh
DL = ???


INT 16 AX=FFB0

16 U - PC Tools v6.0+ DESKTOP API - SET ???

AX = FFB0h
BL = ???


INT 16 AX=FFB1

16 U - PC Tools v6.0+ DESKTOP API - ???

AX = FFB1h
???

Return

        ???


INT 16 AX=FFB2

16 U - PC Tools v5.5+ DESKTOP API - GET ???

AX = FFB2h

Return

        DS:SI -> ???


INT 16 AX=FFB3

16 U - PC Tools v5.5+ DESKTOP API - ???

AX = FFB3h
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFB4

16 U - PC Tools v5.5+ DESKTOP API - SET ??? FLAG

AX = FFB4h

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFBB


INT 16 AX=FFB5

16 U - PC Tools v5.5+ DESKTOP API - GET/SET WINDOW PARAMETERS

AX = FFB5h
BX = window specifier (000Fh to 0019h) (see below)
DX = 0000h get, nonzero = set
ES:DI -> window parameter buffer (see below)

SeeAlso

    INT 16 AX=FFCB

Values for window specifier:
 000Fh	comm/FAX
 0014h	hotkey selection
 0015h	ASCII table
 0016h	system colors menu

Table Formats

Window parameters:


INT 16 AX=FFB6

16 U - PC Tools v5.5+ DESKTOP API - GET ???

AX = FFB6h

Return

        AH = ???
AL = ???


INT 16 AX=FFB7

16 U - PC Tools v5.5+ DESKTOP API - GET/SET ???

AX = FFB7h
BX = direction
    0000h copy to buffer
    else  copy from buffer
DS:SI -> 70-byte buffer with ???

Return

        data copied

Note

     	available only when popped up under v6.0+


INT 16 AX=FFB8

16 U - PC Tools v5.1+ DESKTOP API - GET/SET???

AX = FFB8h
BH = subfunction
    00h get
Return: BL = old value of ???
CL = old value of ??? (v6.0+)
CH = old value of ??? (v6.0+)
    nonzero set
BL = new value for ???
CL = new value for ??? (v6.0+)
CH = new value for ??? (v6.0+)
DH = ???
Return: AL = old value replaced by CL (v6.0+)
AH = old value replaced by CH (v6.0+)


INT 16 AX=FFB9

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFB9h
???

Return

        AX = ???
CX = ???
DS:SI -> ???
ES:DI -> ???


INT 16 AX=FFBA

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFBAh
???

Return

        AX = ???

Note

     	available only when popped up


INT 16 AX=FFBB

16 U - PC Tools v5.1+ DESKTOP API - CLEAR ??? FLAG

AX = FFBBh

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFB4


INT 16 AX=FFBC

16 U - PC Tools v5.1+ DESKTOP API - RESTORE ORIGINAL SCREEN???

AX = FFBCh


INT 16 AX=FFBD

16 U - PC Tools v5.1+ DESKTOP API - ??? DATABASE INDEXING MESSAGES

AX = FFBDh
???

Return

        ???


INT 16 AX=FFBE

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFBEh
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFBF

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFBFh
BX = DOS file handle to write on
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFC0

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFC0h
???

Return

        AX = 0000h if successful
AX = FFFFh on error

Note

     	available only when popped up


INT 16 AX=FFC1

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFC1h
BL = ???
ES:DI -> data structure (see below)
???

Return

        AX = ???

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFC2    INT 16 AX=FFC3

Table Formats

Data structure:


INT 16 AX=FFC2

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFC2h
BL = ???
ES:DI -> data structure (see AX=FFC1h)
???

Return

        AH = ???
CX = ???
DH = ???
DL = ???

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFC1    INT 16 AX=FFC3


INT 16 AX=FFC3

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFC3h
BL = ???
ES:DI -> data structure (see AX=FFC1h)
???

Return

        AH = ???
CX = ???
DH = ???
DL = ???

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFC1    INT 16 AX=FFC2


INT 16 AX=FFC4

16 U - PC Tools v5.1+ DESKTOP API - GET ???

AX = FFC4h

Return

        AL = ???
BX = segment of scratch space???
CX = segment of stored screen data (section covered by window???)
DX = segment of window parameters for ???
ES:BP -> ???

Note

     	available only when popped up in versions prior to 6.0


INT 16 AX=FFC5

16 U - PC Tools v5.1+ DESKTOP API - CHECK WHETHER DESKTOP LOADED RESIDENT

AX = FFC5h

Return

        BL = nonzero if loaded resident
   = 00h if nonresident

Note

     	available only when popped up; should call AX=FFEFh first to ensure
  that DESKTOP is active

SeeAlso

    INT 16 AX=FFEF    INT 16 AX=FFF3


INT 16 AX=FFC6

16 U - PC Tools v5.1+ DESKTOP API - SET ???

AX = FFC6h
BL = new value for ???


INT 16 AX=FFC7

16 U - PC Tools v5.1+ DESKTOP API - REMOVE WINDOW

AX = FFC7h
???

Return

        ???


INT 16 AX=FFC8

16 U - PC Tools v5.1+ DESKTOP API - GET ???

AX = FFC8h

Return

        DS:SI -> ???

Note

     	valid only while popped up


INT 16 AX=FFC9

16 U - PC Tools v5.1+ DESKTOP API - COPY DATA TO CLIPBOARD

AX = FFC9h
DS:SI -> characters to store in clipboard
CX = size in bytes

Return

        CF set on error

Notes

      	available only when popped up
while copying, bytes of 00h and 0Ah are skipped


INT 16 AX=FFCA

16 U - PC Tools v5.1+ DESKTOP API - SET ???

AX = FFCAh
DX = ???

Return

        AX destroyed

Note

     	available only when popped up


INT 16 AX=FFCB

16 U - PC Tools v5.1+ DESKTOP API - SELECT WINDOW PARAMETERS???

AX = FFCBh
DX = window specifier???

Return

        AX destroyed

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFB5


INT 16 AX=FFCC

16 U - PC Tools v5.1+ DESKTOP API - DISPLAY ASCIZ STRING CENTERED IN WINDOW

AX = FFCCh
DS:SI -> ASCIZ string

Return

        AX = ???
CX = ???
ES:DI -> address past last character displayed (v5.1/5.5)
      -> ??? on menu bar (v6.0)


INT 16 AX=FFCD

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFCDh
DS:DX -> ???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFCE

16 U - PC Tools v5.1+ DESKTOP API - SET ??? DELAYS

AX = FFCEh
CX = ???

Return

        nothing???


INT 16 AX=FFCF

16 U - PC Tools v5.1+ DESKTOP API - CLOSE PRINTER/PRINT FILE

AX = FFCFh

Note

     	available only when popped up


INT 16 AX=FFD0

16 U - PC Tools v5.1+ DESKTOP API - PREPARE TO PRINT???

AX = FFD0h
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFD1

16 U - PC Tools v5.1+ DESKTOP API - DISPLAY PRINT OPTIONS MENU

AX = FFD1h

Return

        BX = number of copies
DX = destination
    00h cancel
    01h LPT1
    02h LPT2
    03h	LPT3
    04h	COM1
    05h	COM2
    06h disk file

Note

     	available only when popped up


INT 16 AX=FFD2

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFD2h
BX = ???

Return

        BL = ???

Note

     	available only when popped up


INT 16 AX=FFD3

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFD3h
DS:SI -> 92-byte data record for ???

Return

        ???

SeeAlso

    INT 16 AX=FED3


INT 16 AX=FFD4

16 U - PC Tools v5.1+ DESKTOP API - CREATE/OPEN/DELETE FILE

AX = FFD4h
BH = 3Ch create file (with no attributes)
     3Dh open file
     41h delete file
BL = access mode
     00h read only
     01h write only
     02h read/write
DS:SI -> ASCIZ filename

Return

        BX = file handle
    0000h on error

Note

     	operation is attempted in (in order) the directory from which the
  desktop was started/run???, the directory specified with the
  filename, X:\PCTOOLS\, and X:\


INT 16 AX=FFD5

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFD5h
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFD6

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFD6h
BX = ???
CX = ???
DX = offset in ???
???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFD7

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFD7h
???

Return

        BL = ???

Note

     	available only when popped up


INT 16 AX=FFD8

16 U - PC Tools v5.1+ DESKTOP API - SAFE CREATE FILE

AX = FFD8h
DS:BX -> ASCIZ filename

Return

        BX = file handle
    0000h on error

Note

     	pops up confirmation menu if file already exists
only available when popped up???


INT 16 AX=FFD9

16 U - PC Tools v5.1+ DESKTOP API - GET ???

AX = FFD9h

Return

        AX = ???

Note

     	available only when popped up


INT 16 AX=FFDA

16 U - PC Tools v5.1+ DESKTOP API - GET NAME OF LAST FILE OPENED

AX = FFDAh
DS:SI -> ??? (v5.1/5.5 only)

Return

        DS:SI -> filename


INT 16 AX=FFDB

16 U - PC Tools v5.1+ DESKTOP API - SET ???

AX = FFDBh
BL = ???

Note

     	available only when popped up


INT 16 AX=FFDC

16 U - PC Tools v5.1+ DESKTOP API - UNHOOK

AX = FFDCh

Return

        interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
  original values


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK

AX = FFDDh
BX = 0000h

Return

        CX = 5555h
DX = 5555h if PCShell installed in resident mode


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP

AX = FFDDh
BX = 0001h

Return

        CF clear if request successful (PCShell will pop up)
CF set on error

SeeAlso

    INT 16 AX=FFDD    /BX=0003


INT 16 AX=FFDD

16 U - PC Tools v5.1-5.5 PCShell API - GET ???

AX = FFDDh
BX = 0002h

Return

        AL =
    00h ???
    01h ???

Note

     	PCShell v6.0+ displays the error message "Incorrect PCRUN version",
  awaits a keystroke, and aborts the current process


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP

AX = FFDDh
BX = 0003h

SeeAlso

    INT 16 AX=FFDD    /BX=0001


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - GET ???

AX = FFDDh
BX = 0004h

Return

        CF clear if successful
    DS:SI -> ???


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - ???

AX = FFDDh
BX = 0005h
???

Return

        ???

Note

     	resets various variables if certain conditions are met


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - ???

AX = FFDDh
BX = 0006h
???

Return

        ???

Note

     	resets various variables if certain conditions are met


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG

AX = FFDDh
BX = 0007h

Return

        CF clear if successful

SeeAlso

    INT 16 AX=FFDD    /BX=0008


INT 16 AX=FFDD

16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG

AX = FFDDh
BX = 0008h

Return

        CF undefined

SeeAlso

    INT 16 AX=FFDD    /BX=0007


INT 16 AX=FFDD

16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS

AX = FFDDh
BX = 0009h

Return

        CF clear if successful
    DS:SI -> list of pointers (see below)

Table Formats

Returned pointer list:


INT 16 AX=FFDD

16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK

AX = FFDDh
BX = 000Ah

Return

        CX = 5555h if running
DX = 5555h

Note

     	also sets a flag


INT 16 AX=FFDD

16 U - PC Tools v6.0+ PCRUN API - ???

AX = FFDDh
BX = 000Bh
???

Return

        CX = 5555h if PCRUN active
DX = 5555h

Note

     	also clears flag set by AX=FFDDh/BX=000Ah


INT 16 AX=FFDE

16 U - PC Tools v5.1+ DESKTOP API - DISPLAY POPUP MENU

AX = FFDEh
DS:DX -> menu description (must be on a paragraph boundary)

Return

        AX = ???
    AL seems to be the number of the selected button

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFEE


INT 16 AX=FFDF

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFDFh
???

Return

        ???


INT 16 AX=FFE0

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFE0h
CX = ???
DX = ???

Note

     	available only when popped up


INT 16 AX=FFE1

16 U - PC Tools v5.1+ DESKTOP API - BEEP

AX = FFE1h


INT 16 AX=FFE2

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFE2h
DX = ???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFE3

16 U - PC Tools v5.1+ DESKTOP API - PRINT CHARACTER

AX = FFE3h
BL = character to print to currently open printer or print file

Return

        CF set on error

Note

     	available only when popped up

SeeAlso

    INT 17 AH=00


INT 16 AX=FFE4

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFE4h
DX = segment of ???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFE5

16 U - PC Tools v5.1+ DESKTOP API - POP UP FILE SELECTION MENU

AX = FFE5h
DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
DX = segment of window parameters???

Return

        AX = DOS file handle for file
DS:DX -> filename???
   = FFFFh if cancelled by user

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFDA


INT 16 AX=FFE6

16 U - PC Tools v5.1+ DESKTOP API - CHECK FOR AND GET KEYSTROKE

AX = FFE6h

Return

        AX = 0000h if no key available
     else  BIOS keycode

Notes

      	available only when popped up
invokes INT 28 idle interrupt before checking for key


INT 16 AX=FFE7

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFE7h
BX = segment of ???

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFE8

16 U - PC Tools v5.1+ DESKTOP API - DISPLAY NUMBER

AX = FFE8h
CX = number
DH = attribute
DS:SI -> destination for ASCII number

Return

        DS:SI buffer filled in with alternating characters and attributes


INT 16 AX=FFE9

16 U - PC Tools v5.1+ DESKTOP API - GET FILE LIST???

AX = FFE9h

Return

        BX = segment of file/directory list (14 bytes per file, NUL-padded)

Note

     	available only when popped up


INT 16 AX=FFEA

16 U - PC Tools v5.1+ DESKTOP API - DISPLAY COUNTED STRING

AX = FFEAh
DS:SI -> counted string (count byte followed by string)

Return

        ???

Note

     	available only when popped up


INT 16 AX=FFEB

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFEBh
???

Return

        ???


INT 16 AX=FFEC

16 U - PC Tools v5.1+ DESKTOP API - GET KEY

AX = FFECh
DS:SI -> FAR routine to ???
BX = ???
???

Return

        AX = keystroke
    FFFFh if F10 pressed to go to menu

Notes

      	available only when popped up
invokes INT 28 while waiting for keystroke
F10 is hotkey to Desktop menu


INT 16 AX=FFED

16 U - PC Tools v5.1+ DESKTOP API - GET ???

AX = FFEDh

Return

        AX = ???

Note

     	available only when popped up


INT 16 AX=FFEE

16 U - PC Tools v5.1+ DESKTOP API - DEFINE PULLDOWN MENUS

AX = FFEEh
DS:SI -> pulldown menu system description (see below)

Return

        AX destroyed

Notes

      	available only when popped up
if the accessory does not need any menu items of its own, it should
  call AX=FFFAh instead

SeeAlso

    INT 16 AX=FFF7    INT 16 AX=FFFA

Table Formats

Pulldown menu system description:
Menu definition:
Menu contents:


INT 16 AX=FFEF

16 U - PC Tools v5.1+ DESKTOP API - INSTALLATION CHECK

AX = FFEFh
CX = 0000h

Return

        CX = ABCDh if PC Tools DESKTOP.EXE installed
    BX = segment of resident portion
    AX = ??? (v5.1/5.5 only)

SeeAlso

    INT 16 AX=FEEF    INT 16 AX=FFC5    INT 16 AX=FFF3


INT 16 AX=FFF0

16 U - PC Tools v5.1+ DESKTOP API - SET ???

AX = FFF0h
DX = ???

Return

        AX destroyed

Note

     	available only when popped up


INT 16 AX=FFF1

16 U - PC Tools v5.1+ DESKTOP API - ALTERNATE INSTALLATION CHECK

AX = FFF1h
BX = 0000h  leave ??? flag as is
    nonzero set ??? flag

Return

        CX = 5555h if installed
DX = 5555h


INT 16 AX=FFF2

16 U - PC Tools v5.1+ DESKTOP API - DISPLAY HELP LINE

AX = FFF2h
DS:SI -> ASCIZ function key label string (each label preceded by '[')
or help text

Return

        AX destroyed

Notes

      	available only when popped up
if the specified string does not start with '[', it is displayed
  centered on the bottom line, else the function key labels are shown


INT 16 AX=FFF3

16 U - PC Tools v5.1+ DESKTOP API - PREPARE TO UNLOAD RESIDENT DESKTOP

AX = FFF3h

Note

     	releases any EMS being used; restores video mode, page, and cursor
  shape; and restores interrupt vectors

SeeAlso

    INT 16 AX=FFC5    INT 16 AX=FFEF


INT 16 AX=FFF4

16 U - PC Tools v5.1+ DESKTOP API - ???

AX = FFF4h
???

Return

        ???

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFF6


INT 16 AX=FFF5

16 U - PC Tools v5.1+ DESKTOP API - GET SCREEN ATTRIBUTE ARRAY

AX = FFF5h

Return

        ES:BX -> screen attributes data structure (see below)
AL = ??? (v6.0+)

Table Formats

Attribute data structure:


INT 16 AX=FFF6

16 U - PC Tools v5.1+ DESKTOP API - INVOKE NOTEPAD EDITOR

AX = FFF6h
DS = segment of editor buffer structure (see below)
BX = ???
DX = segment of window parameters structure (see AX=FFB5h)

Return

        ???

Note

     	available only when popped up

SeeAlso

    INT 16 AX=FFF4

Table Formats

Editor buffer structure:


INT 16 AX=FFF7

16 U - PC Tools v5.1+ DESKTOP API - PROCESS MENU BAR ENTRY???

AX = FFF7h
DS:SI -> ???
???

Return

        ???

Notes

      	available only when popped up
performs input processing on the menu bar set up with AX=FFEEh

SeeAlso

    INT 16 AX=FFEE    INT 16 AX=FFFB


INT 16 AX=FFF8

16 U - PC Tools v5.1+ DESKTOP API - DRAW EMPTY WINDOW

AX = FFF8h
DS:0000h -> window parameters structure (see AX=FFB5h)
DS:BX -> DWORD to store address of ??? on screen

Return

        ???


INT 16 AX=FFF9

16 U - PC Tools v5.1+ DESKTOP API - DEFINE SCREEN REFRESH ROUTINE

AX = FFF9h
ES:BX -> FAR routine to redisplay the utility's window

Note

     	available only when popped up


INT 16 AX=FFFA

16 U - PC Tools v5.1+ DESKTOP API - DEFINE STANDARD PULLDOWN MENUS

AX = FFFAh

Notes

      	available only when popped up
adds the "Window" option to the "Desktop" option which is the only one
  available when no accessories are active.  Unlike AX=FFEEh, no
  additional menu items are added between "Desktop" and "Window"

SeeAlso

    INT 16 AX=FFEE    INT 16 AX=FFFB


INT 16 AX=FFFB

16 U - PC Tools v5.1+ DESKTOP API - PROCESS STANDARD MENU BAR

AX = FFFBh

Return

        ???

Notes

      	available only when popped up
performs input processing on the standard menu bar set up with AX=FFFAh

SeeAlso

    INT 16 AX=FFF7


INT 16 AX=FFFC

16 U - PC Tools v5.1+ DESKTOP API - GET HOTKEYS AND KEYBOARD VECTOR

AX = FFFCh

Return

        ES:BX -> hotkey table (see below)
DS:DX = original INT 9 vector

Table Formats

Hotkey table:


INT 16 AX=FFFD

16 U - PC Tools v5.1+ DESKTOP API - COPY ???

AX = FFFDh

Return

        AX destroyed

Note

     	copies 4000 bytes from ??? to ??? under certain circumstances

SeeAlso

    INT 16 AX=FF91    INT 16 AX=FF92


INT 16 AX=FFFE

16 U - PC Tools v5.1+ DESKTOP API - SHOW MOUSE CURSOR

AX = FFFEh

SeeAlso

    INT 16 AX=FFFF    INT 33 AX=0001


INT 16 AX=FFFF

16 U - PC Tools v5.1+ DESKTOP API - HIDE MOUSE CURSOR

AX = FFFFh

SeeAlso

    INT 16 AX=FFFE    INT 33 AX=0002


INT 17

17 - PRINTER - LPTx v5.x INSTALLATION CHECK

DX = 0ABCh

Return

        AX = AAAAh
DX = BAAAh
ES = code segment of resident portion


INT 17

17 - PRINTER - LPTx v6.x INSTALLATION CHECK

DX = 0B90h

Return

        DX = ABBBh
ES = code segment of resident portion


INT 17

17 - PRINTER - LPTx v7.x INSTALLATION CHECK

DX = 0B91h

Return

        DX = ABCBh
ES = code segment of resident portion


INT 17

17 - PRINTER - LPTx v4.x INSTALLATION CHECK

DX = 0F5Fh

Return

        AX = AAAAh
DX = F555h
ES = code segment of resident portion


INT 17 AH=00

17 - PRINTER - WRITE CHARACTER

AH = 00h
AL = character to write
DX = printer number (00h-02h)

Return

        AH = printer status
    bit 7: not busy
6: acknowledge
5: out of paper
4: selected
3: I/O error
2: unused
1: unused
0: timeout

SeeAlso

    INT 17 AH=84"AX"    INT 17 AH=F1    INT 16 AX=FFE3    INT 1A AH=11"NEC"


INT 17 AH=01

17 - PRINTER - INITIALIZE PORT

AH = 01h
DX = printer number (00h-02h)

Return

        AH = printer status (see AH=00h)

SeeAlso

    INT 17 AH=02    INT 1A AH=10"NEC"


INT 17 AH=02

17 - PRINTER - GET STATUS

AH = 02h
DX = printer number (00h-02h)

Return

        AH = printer status (see AH=00h)

SeeAlso

    INT 17 AH=01    INT 17 AH=F2    INT 1A AH=12"NEC"


INT 17 AH=02

17 - INSET - INSTALLATION CHECK

AH = 02h
DX = 0000h
CX = 07C3h (1987d)

Return

        CX = 07C2h (1986d) if installed

Note

     	INSET is a text/graphics integration program


INT 17 AH=20

17 - PC Paint Plus 2.0 - PRINTER DRIVER

AH = 20h
AL = function number
    00h installation check
Return: BX = driver version number (BH=major,BL=minor)
CH = ??? (00h)
CL = ???
DX = ??? (0100h)
Note: also enables the remaining functions
    01h set ??? flag
    02h get information
CL = subfunction
    00h get printer type
Return: ES:DI -> ASCIZ printer name
    01h get paper size
DX = size index
Return: ES:DI -> ASCIZ paper size description
    02h get ???
Return: BX = ???
    03h get printer information???
DX = ???
ES:BX -> buffer for ??? (min 134 bytes)
    03h ???
ES:BX -> ???
    04h get ???
Return: ES:DI -> ???
    05h advance printer to next page
Note: also clears flag set by function 01h
    06h advance printer to next page and shut down
Note:	also clears flag set by function 01h and disables
  functions other than 00h
    07h not implemented, AX returned unchanged
BL = printer number???

Return

        AX = status
    0000h successful
    0001h invalid printer???
    0002h ???
    0003h invalid subfunction
    0005h driver disabled, must call function 00h first
    0009h unknown printer error
    000Bh printer not selected
    000Ch printer out of paper
    000Eh error while writing to serial printer
    000Fh ???
    0010h invalid function number
    0011h value out of range


INT 17 AX=2400

17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS

AX = 2400h
DL = new state
    00h disabled
    01h enabled

Return

        DL = 24h if installed
DH = minor version number
CX = network address of this machine
AL = status
    00h successful
    01h timeout
    02h header error
    03h data error
    04h busy
    05h invalid parameters

SeeAlso

    INT 17 AX=2403    INT 16 AX=4500


INT 17 AX=2401

17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE

AX = 2401h
BL = timeout in clock ticks

Return

        AL = status (see AX=2400h)
DX:BX -> receive buffer

SeeAlso

    INT 17 AX=2402    INT 17 AX=2404    INT 17 AX=2408


INT 17 AX=2402

17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE

AX = 2402h
transmit buffer filled (see AX=2403h)

Return

        AL = status (see AX=2400h)

SeeAlso

    INT 17 AX=2401    INT 17 AX=2403    INT 17 AX=2404    INT 17 AX=2409


INT 17 AX=2403

17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER

AX = 2403h

Return

        AL = status (see AX=2400h)
CX = number of characters in receive ring buffer
DX:BX -> transmit buffer

SeeAlso

    INT 17 AX=2400    INT 17 AX=2402


INT 17 AX=2404

17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK

AX = 2404h
BX = target address

Return

        AL = status (see AX=2400h)

SeeAlso

    INT 17 AX=2402    INT 17 AX=2405


INT 17 AX=2405

17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK

AX = 2405h
BX = target address

Return

        AL = status (see AX=2400h)

SeeAlso

    INT 17 AX=2402    INT 17 AX=2404


INT 17 AX=2406

17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE

AX = 2406h

Return

        AL = status (see AX=2400h)

SeeAlso

    INT 17 AX=2407    INT 17 AX=240A


INT 17 AX=2407

17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE

AX = 2407h

Return

        AL = status (see also AX=2400h)
    06h end of data
DL = received character

SeeAlso

    INT 17 AX=2406


INT 17 AX=2408

17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE

AX = 2408h

Return

        AL = status (see also AX=2400h)
    06h end of data
CX = number of bytes in receive buffer
DX:SI -> receive buffer

SeeAlso

    INT 17 AX=2401    INT 17 AX=2405    INT 17 AX=2409


INT 17 AX=2409

17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE

AX = 2409h
BX = target address
CX = number of data bytes
DL = command code to send
DS:SI -> data bytes for command

Return

        AL = status (see also AX=2400h)
    03h no response
    06h remote currently unable to perform command

SeeAlso

    INT 17 AX=2405    INT 17 AX=2408


INT 17 AX=240A

17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT

AX = 240Ah

Return

        AL = status (see AX=2400h)

SeeAlso

    INT 17 AX=2406    INT 17 AX=240B    INT 17 AX=240C


INT 17 AX=240B

17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE

AX = 240Bh
DL = character to send

Return

        AL = status (see also AX=2400h)
    03h transmission error
    06h write error

SeeAlso

    INT 17 AX=2407    INT 17 AX=240A    INT 17 AX=240C


INT 17 AX=240C

17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT

AX = 240Ch

Return

        AL = status (see also AX=2400h)
    03h transmission error
    06h remote breaks connection

SeeAlso

    INT 17 AX=240A    INT 17 AX=240B


INT 17 AX=5000

17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE

AX = 5000h
BX = country code
    0001h USA (English), 0051h Japan

Return

        AL = status
    00h successful
    01h bad country code
    02h other error

SeeAlso

    INT 17 AX=5001    INT 17 AH=51    INT 10 AX=5000    INT 16 AX=5000


INT 17 AX=5001

17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE

AX = 5001h

Return

        AL = status
    00h successful
BX = country code
    02h error

SeeAlso

    INT 17 AX=5000    INT 17 AH=51    INT 10 AX=5001    INT 16 AX=5001


INT 17 AH=51

17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION

AH = 51h
DX = 2-byte JIS code

Return

        DX = shift-JIS value or 0000h on error

Note

     	one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  characters to Shift-JIS characters, and the other performs the
  opposite conversion

SeeAlso

    INT 17 AX=5000    INT 17 AH=52


INT 17 AH=52

17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION

AH = 52h
DX = 2-byte shift-JIS code

Return

        DX = JIS code or 0000h on error

Note

     	one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  characters to Shift-JIS characters, and the other performs the
  opposite conversion

SeeAlso

    INT 17 AH=51


INT 17 AH=60

17 - FLASHUP.COM - INSTALLATION CHECK

AH = 60h

Return

        AL = 60h
DX = CS of resident code

Notes

      	FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
  consisting of an 80h followed by the actual command

SeeAlso

    INT 10 AH=09    INT 10 AH=0A


INT 17 AH=61

17 - SPEEDSCR.COM - INSTALLATION CHECK

AH = 61h

Return

        AL = 61h
DX = CS of resident code

Note

     	SPEEDSCR.COM is by The Software Bottling Co.


INT 17 AH=81

17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER

AH = 81h
AL = 00h (NTNX compatibility mode)
CL = number of jobs to cancel

Return

        AL = status
    00h success
    01h..7Fh warning
    80h general failure
    81h host overloaded (NTNX only)
    82h module busy (NTNX only)
    83h host busy (NTNX only)
    84h re-entry flag set
    85h invalid request
    86h invalid printer
    87h invalid process ID
    89h access denied
    8Ah option not available for given port type
    8Bh option not available for given task type
    91h printer busy
    C2h file not found
    C3h path not found
    C4h file access failure

Note

     	cancels the last CL printouts for the current task

SeeAlso

    INT 17 AH=82


INT 17 AH=82

17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER

AH = 82h
AL = 00h (NTNX compatibility mode)

Return

        AL = status (see AH=81h)

SeeAlso

    INT 17 AH=81


INT 17 AH=83

17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES

AH = 83h
AL = mode
    00h NTNX compatibility
CL = number of copies (max 99, default 1)
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4
CX = number of copies

Return

        AL = status (see AH=81h)

Note

     	in NTNX compatibility mode, this function only affects LPT1


INT 17 AH=84

17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK

AH = 84h
AL = mode
    00h NTNX compatibility
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4

Note

     	closes spool file and tells spooler to queue the print job (LPT1 only
  under MW386 in NTNX compatibility mode)


INT 17 AH=84

17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION

AH = 84h
AL = character
DX = printer number

Return

        AH = printer status (see AH=00h)

SeeAlso

    INT 17 AH=00    INT 17 AH=85


INT 17 AH=85

17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION

AH = 85h
AL = new state (00h enabled, 01h disabled)

SeeAlso

    INT 17 AH=84"AX"


INT 17 AH=87

17 - Alloy NTNX - SET INDOS POINTER

AH = 87h
AL = 00h
CX:BX -> buffer for user-written printer drivers

Return

        BX,CX destroyed

Note

     	must be executed before the printer is enabled

SeeAlso

    INT 17 AH=8A


INT 17 AH=88

17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER

AH = 88h
AL = mode
    00h NTNX compatibility
DX = NTNX printer number
    00h host LPT1
    01h host LPT2
    02h host LPT3
    03h host LPT4
    04h host COM1
    05h host COM2
    06h user's logical COM2
    07h user's terminal AUX port
    08h user's logical COM1 (MW386 only)
    01h MW386
DX = MW386 printer number

Return

        AH = status (see AH=81h)

Note

     	removes specified printer from the spooler's list of printers

SeeAlso

    INT 17 AH=89    INT 17 AH=8B


INT 17 AH=89

17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER

AH = 89h
AL = mode
    00h NTNX compatibility
DX = NTNX printer number (see AH=88h)
    01h MW386
DX = MW386 printer number

Return

        AL = status (see AH=81h)

Note

     	the specified printer is added to the spooler's list of available
  printers

SeeAlso

    INT 17 AH=88    INT 17 AH=8B


INT 17 AH=8A

17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER

AH = 8Ah
???

SeeAlso

    INT 17 AH=92


INT 17 AH=8B

17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME

AH = 8Bh
DS:DX -> ASCIZ printer name

Return

        AL = status (see also AH=81h)
    00h successful
DX = physical device number

SeeAlso

    INT 17 AH=89    INT 17 AH=8C    INT 14 AH=20"Alloy"


INT 17 AH=8C

17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER

AH = 8Ch
DX = physical device number
ES:DI -> 17-byte buffer for ASCIZ device name

Return

        AL = status (see also AH=81h)
    00h successful
ES:DI buffer filled

SeeAlso

    INT 17 AH=88    INT 17 AH=8B


INT 17 AH=8D

17 - Alloy NTNX,MW386 - RESET SPOOLER

AH = 8Dh
AL = 00h

Notes

      	clears all buffers and resets spooler to boot-up values
MW386 supports this function for compatibility only; it is a NOP

Return

        AL = status (see AH=81h)


INT 17 AH=8E

17 - Alloy NTNX - GET INT 28 ENTRY POINT

AH = 8Eh
AL = 00h

Return

        CX:BX -> INT 28 entry point

SeeAlso

    INT 17 AH=8F


INT 17 AH=8F

17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT

AH = 8Fh
AL = 00h

Return

        CX:BX -> DOS intercept routine

SeeAlso

    INT 17 AH=8E


INT 17 AH=90

17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME

AH = 90h
AL = mode
    00h NTNX compatibility
DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname

Return

        AL = status (see AH=81h)

Note

     	in mode 00h, the file is always sent to logical LPT1

SeeAlso

    INT 17 AH=A0


INT 17 AH=91

17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER

AH = 91h
AL = mode
    00h NTNX compatibility
Return: CX = user number (00h = host)
DX = currently selected printer number (00h-08h)
    01h MW386
Return: CX = user number
DX = physical dev number of currently selected printer
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4
Return: CX = user number
DX = physical device number

Return

        AL = status (see AH=81h)

SeeAlso

    INT 17 AH=8C


INT 17 AH=92

17 - Alloy NTNX - CHECK PRINTER DRIVER

AH = 92h
AL = 00h
CL = 00h

Return

        CL = driver state
    01h initialized
    80h not initialized
AX = status (see AH=81h)

SeeAlso

    INT 17 AH=8A


INT 17 AH=94

17 - Alloy NTNX, MW386 - SELECT PRINTER

AH = 94h
AL = mode
    00h NTNX compatibility
DX = NTNX printer number (see AH=88h)
    01h MW386
DX = MW386 printer number
    02h MW386 v2+
BX = logical printer number
DX = MW386 printer number

Return

        AL = status (see AH=81h)

Note

     	modes 00h and 01h affect only logical LPT1

SeeAlso

    INT 17 AH=8B    INT 17 AH=95


INT 17 AH=95

17 - Alloy NTNX, MW386 - GET CURRENT PRINTER

AH = 95h
AL = mode
    00h NTNX compatibility
Return: DX = NTNX printer number (see AH=88h)
    (FFFFh if current printer not compatible with NTNX)
    01h MW386
Return: DX = MW386 printer number
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4
Return: DX = MW386 printer number (FFFFh = none)

Return

        AL = status (see AH=81h)

Note

     	modes 00h and 01h return the printer number of logical LPT1 only

SeeAlso

    INT 17 AH=94


INT 17 AH=96

17 - Alloy NTNX - SET SERIAL PORT PARAMETERS

AH = 96h
AL = 00h

Note

     	documentation states that this is a NOP, doing only XOR AX,AX before
  returning

SeeAlso

    INT 14 AH=24


INT 17 AH=97

17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK

AH = 97h
AL = mode
    00h NTNX compatibility
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4
CH,CL,DH = three character break sequence
DL = subfunction
    00h set break string
    else reset break

Return

        AL = status (see AH=81h)

Notes

      	mode 00h affects only logical LPT1
when the break string is encountered, the spool file will be closed and
  queued for printing automatically
the break string is not permanently saved, and will be reset each time
  MW386 or the user is rebooted

SeeAlso

    INT 17 AH=9B


INT 17 AH=98

17 - Alloy NTNX,MW386 - RESTART PRINTER

AH = 98h
AL = 00h
DL = printer number (FFh=current)

Return

        AL = status
    00h successful
    01h incorrect printer
    02h task not found

Note

     	MW386 supports this function for compatibility only; it is a NOP


INT 17 AH=99

17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE

AH = 99h
AL = mode
    00h NTNX compatibility
DL = NTNX printer number (see AH=88h)
(FFh = task's current logical LPT1)
DH = mode
    bit 0: get mode if 1, set mode if 0
1: private ("attached")
2: direct instead of spooled
3-7 reserved (0)
    01h MW386
DX = MW386 printer number
CL = mode (as for DH above)

Return

        AL = status (see AH=81h)
DH = mode (bits 1 and 2 set as above)
DL = printer owner's user number if not spooled


INT 17 AH=9A

17 - Alloy NTNX,MW386 - SET TAB EXPANSION

AH = 9Ah
AL = mode
    00h NTNX compatibility
DX = NTNX printer number (see AH=88h)
(FFFFh = current logical LPT1)
    01h MW386
DX = MW386 printer number
CL = tab length (00h = no expansion, 01h-63h = spaces per tab)

Return

        AL = status (see AH=81h)

Note

     	beginning with MW386 v2.0, tab expansion is set on a per-printer basis
  rather than a per-user basis; NTNX and MW386 v1.x ignore DX

SeeAlso

    INT 17 AH=A4


INT 17 AH=9B

17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT

AH = 9Bh
AL = mode
    00h NTNX compatibility
CX = timeout value in clock ticks (1/18 sec) (00h = never)
    01h MW386
CX = timeout value in seconds (00h = never)
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4
CX = timeout value in seconds (00h = never)

Return

        AL = status (see AH=81h)

Notes

      	modes 00h and 01h affect only the current logical LPT1
if no data is sent to a printer for the specified amount of time, the
  spool file will be closed and queued for printing automatically

SeeAlso

    INT 17 AH=97


INT 17 AH=A0

17 - Alloy MW386 - SPOOL COPY OF FILE

AH = A0h
AL = mode
    00h NTNX compatibility
DX = ??? (NTNX, MW386 v1.x only)
    02h MW386 v2+
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname

Return

        AL = status (see AH=81h)

Notes

      	makes a copy of the specified file in the spooler's directory, allowing
  the original file to be modified or deleted while the copy is printed
in mode 00h, the file is printed on logical LPT1

SeeAlso

    INT 17 AH=90


INT 17 AH=A4

17 - Alloy MW386 - ENABLE/DISABLE FORM FEED

AH = A4h
AL = new state
    00h form feed after end of print job disabled
    01h form feed enabled

Return

        AL = status (see AH=81h)

Note

     	only affects the current logical LPT1

SeeAlso

    INT 17 AH=9A    INT 17 AH=A6    INT 7F AH=05"NTNX (Host)"


INT 17 AH=A6

17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE

AH = A6h
AL = new state
    00h banner page before print job disabled
    01h banner page enabled

Return

        AL = status (see AH=81h)

Note

     	only affects the current logical LPT1

SeeAlso

    INT 17 AH=A4


INT 17 AH=A7

17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS

AH = A7h
AL = spool flags
    bit 0: banner page enabled (see AH=A4h)
1: form feed enabled (see AH=A6h)
2-6: reserved (0)
7: set flags if 1, get flags if 0
BX = logical device number
    00h-03h = LPT1-LPT4
    04h-07h = COM1-COM4

Return

        AL = status (see AH=81h)

Note

     	the documentation does not state which register contains the result of
  a GET

SeeAlso

    INT 17 AH=A4    INT 17 AH=A6


INT 17 AH=A8

17 - Alloy MW386 - DEFINE TEMPORARY FILENAME

AH = A8h
CX:SI -> ASCIZ filename without extension (max 8 chars)

Return

        AL = status (see AH=81h)

Note

     	allows application to specify banner page filename for spool files
  collected from the application's printer output

SeeAlso

    INT 17 AH=A9


INT 17 AH=A9

17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE

AH = A9h
AL = new spool drive (2=C:,3=D:,etc)

Return

        AL = status (see AH=81h)

Note

     	does not remove previous spooling directory since jobs may be pending

SeeAlso

    INT 17 AH=A8


INT 17 AH=AA

17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS

AH = AAh
AL = mode
    00h NTNX
DX = NTNX printer number (see AH=88h)
    01h MW386
DX = MW386 printer number

Return

        AH = instantaneous printer status
    00h printer ready
    01h not ready
    12h off line
    13h out of paper
    14h general device failure
    15h device timeout
    16h bad device number


INT 17 AH=AF

17 - Alloy MW386 - CHECK SPOOLER

AH = AFh

Return

        AX = 55AAh if spooler available


INT 17 AH=C0

17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS

AH = C0h
DX = printer port (0-3)

Return

        ES:BX -> control block (see below)

SeeAlso

    INT 17 AH=C1

Table Formats

Control block:


INT 17 AH=C1

17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD

AH = C1h
DX = printer port (0-3)
DS:SI -> ASCIIZ string to save for display

Note

     	flushes pending writes

SeeAlso

    INT 17 AH=C0    INT 17 AH=C2


INT 17 AH=C2

17 - PC Magazine PCSpool - FLUSH PENDING WRITES

AH = C2h
DX = printer port (0-3)

SeeAlso

    INT 17 AH=C3


INT 17 AH=C3

17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)

AH = C3h
DX = printer port (0-3)

SeeAlso

    INT 17 AH=C2    INT 17 AH=C7


INT 17 AH=C4

17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE

AH = C4h

Return

        DI = B0BFh
SI = segment


INT 17 AH=C5

17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE

AH = C5h
DX = printer port (0-3)

Note

     	cancels up to the pause record


INT 17 AH=C6

17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS

AH = C6h
DX = printer port (0-3)

Return

        AX = 0 printer not active or at pause
   = 1 printer busy


INT 17 AH=C7

17 - PC Magazine PCSpool - CLOSE QUEUE

AH = C7h
DX = printer port (0-3)

SeeAlso

    INT 17 AH=C3


INT 17 AX=CD00

17 - INSET - EXECUTE COMMAND STRING

AX = CD00h
DS:DX -> ASCIZ command string (max 80 bytes)

Return

        CX = 07C2h (1986d)

Note

     	user interface menus pop up after last command, unless that command
exits INSET


INT 17 AX=CD01

17 - INSET - GET IMAGE SIZE

AX = CD01h
DS:DX -> ASCIZ name of image file

Return

        AX = height in 1/720th inch
BX = width in 1/720th inch
CX = 07C2h (1986d)


INT 17 AX=CD02

17 - INSET - INITIALIZE

AX = CD02h

Return

        CX = 07C2h (1986d)

Note

     	all open files are closed and the printer is reset

SeeAlso

    INT 17 AX=CD04


INT 17 AX=CD03

17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE

AX = CD03h

Return

        CX = 07C2h (1986d)


INT 17 AX=CD04

17 - INSET - INITIALIZE LINKED MODE

AX = CD04h
ES:SI -> FAR routine for linked mode

Return

        CX = 07C2h

Note

     	calling sequence for linked-mode routine
AL = 00h send character in BL to printer
   = 01h send CX bytes from DS:DX to printer
   = 02h move print head to horizontal starting position of image
return code for linked-mode routine:
AX = 0000h success
   = 0001h failure

SeeAlso

    INT 17 AX=CD02    INT 17 AX=CD08


INT 17 AX=CD05

17 - INSET - START MERGING IMAGE INTO TEXT

AX = CD05h
DS:DX -> ASCIZ name of PIX file
CX = left margin of text in 1/720th inch

Return

        AH = printer type
    00h page-oriented (multiple images may be placed side-by-side)
    01h line-oriented (use AX=CD06h for vertical paper movement)
CX = 07C2h (1986d)

SeeAlso

    INT 17 AX=CD07


INT 17 AX=CD06

17 - INSET - GRAPHICS LINE FEED

AX = CD06h

Return

        AH = completion status
    00h image complete
    01h image incomplete
CX = 07C2h (1986d)

SeeAlso

    INT 17 AX=CD09


INT 17 AX=CD07

17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER

AX = CD07h

Return

        CX = 07C2h

SeeAlso

    INT 17 AX=CD05


INT 17 AX=CD08

17 - INSET - CANCEL LINK MODE

AX = CD08h

Return

        CX = 07C2h

SeeAlso

    INT 17 AX=CD04


INT 17 AX=CD09

17 - INSET - ALTER TEXT LINE SPACING

AX = CD09h
CX = line spacing in 1/720th inch

Return

        CX = 07C2h

Note

     	not yet implemented, line spacing is currently fixed at 1/6 inch

SeeAlso

    INT 17 AX=CD06


INT 17 AX=CD0A

17 - INSET - GET SETUP

AX = CD0Ah
DS:DX -> buffer for IN.SET data

Return

        CX = 07C2h


INT 17 AX=CD0B

17 - INSET - START GETTING SCALED IMAGE

AX = CD0Bh
DS:SI -> ASCIZ pathname of .PIX file
BX = number of bitplanes
CX = number of rows in output bitmap
DX = number of columns in output bitmap

Return

        AX = status
    0000h OK
    FFFFh error

Note

     	image is returned in strips by repeated calls to AX=CD0Ch


INT 17 AX=CD0C

17 - INSET - GET NEXT IMAGE STRIP

AX = CD0Ch

Return

       	AX = status
    0000h OK but not complete
    0001h OK and image complete
    FFFFh error
DS:SI -> buffer (max 4K) for bit map strip
CX = start row
DX = number of rows
BX = offset in bytes between bit planes

Note

     	buffer may be overwritten by subsequent calls

SeeAlso

    INT 17 AX=CD0B


INT 17 AH=F0

17 - NorthNet Jetstream API - INSTALLATION CHECK

AH = F0h
DX = printer port (0-3)

Return

        AX = 0001h Jetstream present
     else  non-Jetstream port

Note

     	NorthNet Jetstream is a high-performance DMA-driven parallel card able
  to drive printers at up to 80000 characters per second


INT 17 AH=F1

17 - NorthNet Jetstream API - PRINT DATA BUFFER

AH = F1h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer

Return

        AX = status
    0000h printer not ready (see also AH=02h)
    other printing started

SeeAlso

    INT 17 AH=00    INT 17 AH=F2    INT 17 AH=F3    INT 17 AH=F5


INT 17 AH=F2

17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS

AH = F2h
DX = printer port (0-3)

Return

        AX = status
    0000h prior print request finished
    other number of characters left to print

SeeAlso

    INT 17 AH=02    INT 17 AH=F1    INT 17 AH=F3


INT 17 AH=F3

17 - NorthNet Jetstream API - ABORT PRINT OPERATION

AH = F3h
DX = printer port (0-3)

Return

        AX = number of unprinted characters due to abort

SeeAlso

    INT 17 AH=F1    INT 17 AH=F4


INT 17 AH=F4

17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS

AH = F4h
DX = printer port (0-3)
DS:DS -> FAR post address (called with interrupts on)

SeeAlso

    INT 17 AH=F1    INT 17 AH=F3


INT 17 AH=F5

17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY

AH = F5h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer (32-bit physical address)

Return

        AX = status
    0000h printer not ready (see also AH=02h)
    other printing started

SeeAlso

    INT 17 AH=F1


INT 18

18 - START CASSETTE BASIC

Note

     	only PCs produced by IBM contain BASIC in ROM, so the action is
  unpredicatable on compatibles; this interrupt often reboots the
  system, and often has no effect at all

SeeAlso

    INT 86NetBIOS


INT 18 AH=00

18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE

AH = 00h

Return

        AX = keystroke

SeeAlso

    INT 18 AH=01    INT 18 AH=02    INT 16 AH=00


INT 18 AH=01

18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE

AH = 01h

Return

        ZF set if no keystroke available
ZF clear if keystroke available
    AX = keystroke

SeeAlso

    INT 18 AH=00    INT 18 AH=02    INT 16 AH=01


INT 18 AH=02

18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS

AH = 02h

Return

        AL = shift flags

SeeAlso

    INT 18 AH=00    INT 18 AH=02    INT 18 AH=03    INT 18 AH=04    INT 16 AH=02


INT 18 AH=03

18 - NEC PC-9800 series - KEYBOARD - INITIALIZE

AH = 03h
???

Return

        ???

SeeAlso

    INT 18 AH=00    INT 18 AH=04


INT 18 AH=04

18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED

AH = 04h
???

Return

        ???

Note

     	details are not available at this time

SeeAlso

    INT 18 AH=00    INT 18 AH=02    INT 16 AH=00    INT 16 AH=01    INT 16 AH=02


INT 18

18 - NEC PC-9800 series - VIDEO

AH = function
    0Ah set video mode
    0Bh get video mode
    0Ch start text screen display
    0Dh end text screen display
    0Eh set single display area
    0Fh set multiple display area
    10h set cursor shape
    11h display cursor
    12h terminate cursor
    13h set cursor position
    14h read font patter
    16h initialize text video RAM
    1Ah define user character
???

Return

        ???

Notes

      	details are not available at this time
text video RAM is located at segments A000h (characters) and A200h
  (attributes)


INT 19

19 - SYSTEM - BOOTSTRAP LOADER

   Reboot the system without clearing memory or restoring interrupt vectors.
   Because interrupt vectors are preserved, this interrupt usually causes a
   system hang if any TSRs have hooked vectors from 00h through 1Ch,
   particularly INT 08.

   Usually, the BIOS will try to read sector 1, head 0, track 0 from drive A:
   to 0000h:7C00h.  If this fails, and a hard disk is installed, the BIOS will
   read sector 1, head 0, track 0 of the first hard disk.  This sector should
   contain a master bootstrap loader and a partition table.  After loading the
   master boot sector at 0000h:7C00h, the master bootstrap loader is given
   control.  It will scan the partition table for an active partition, and will
   then load the operating system's bootstrap loader (contained in the first
   sector of the active partition) and give it control.

   True IBM PCs issue an INT 18 if neither floppy nor hard disk have a valid
   boot sector.

Notes

      	to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
  0040h:0072h and jump to FFFFh:0000h.	For a cold boot equivalent to
  a reset, store 0000h at 0040h:0072h before jumping.
VDISK.SYS hooks this interrupt to allow applications to find out how
  much extended memory has been used by VDISKs (see below).  DOS 3.3+
  PRINT hooks INT 19 but does not set up a correct VDISK header block
  at the beginning of its INT 19 handler segment, thus causing some
  programs to overwrite extended memory which is already in use.
default handler is at F000h:E6F2h for 100% compatible BIOSes

SeeAlso

    INT 14 AH=17    INT 18

Table Formats

VDISK header block (at beginning of INT 19 handler's segment):
Hard disk master boot sector:
Partition record:
Values for operating system indicator:
 00h empty
 01h DOS 12-bit FAT
 02h XENIX root file system
 03h XENIX /usr file system (obsolete)
 04h DOS 16-bit FAT
 05h DOS 3.3+ extended partition
 06h DOS 3.31+ Large File System
 07h QNX
 07h OS/2 HPFS
 07h Advanced Unix
 08h AIX bootable partition, SplitDrive
 09h AIX data partition
 09h Coherent filesystem
 0Ah OPUS
 0Ah Coherent swap partition
 10h OPUS
 24h NEC MS-DOS 3.x
 40h VENIX 80286
 50h Disk Manager, read-only partition
 51h Disk Manager, read/write partition
 51h Novell???
 52h CP/M
 52h Microport System V/386
 56h GoldenBow VFeature
 61h SpeedStor
 63h Unix SysV/386, 386/ix
 63h Mach, MtXinu BSD 4.3 on Mach
 63h GNU HURD
 64h Novell NetWare
 75h PC/IX
 80h Minix v1.1 - 1.4a
 81h Minix v1.4b+
 81h Linux
 82h Linux Swap partition (planned)
 93h Amoeba file system
 94h Amoeba bad block table
 B7h BSDI file system (secondarily swap)
 B8h BSDI swap partition (secondarily file system)
 C6h DR-DOS 6.0 LOGIN.EXE-secured partition
 DBh CP/M, Concurrent CP/M, Concurrent DOS
 DBh CTOS (Convergent Technologies OS)
 E1h SpeedStor 12-bit FAT extended partition
 E4h SpeedStor 16-bit FAT extended partition
 F2h DOS 3.3+ secondary
 FEh LANstep
 FFh Xenix bad block table


INT 1A AH=00

1A - TIME - GET SYSTEM TIME

AH = 00h

Return

        CX:DX = number of clock ticks since midnight
AL = midnight flag, nonzero if midnight passed since time last read

Notes

      	there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
IBM and many clone BIOSes set the flag for AL rather than incrementing
  it, leading to loss of a day if two consecutive midnights pass
  without a request for the time (e.g. if the system is on but idle)

SeeAlso

    INT 1A AH=01    INT 1A AH=02    INT 21 AH=2C


INT 1A AH=01

1A - TIME - SET SYSTEM TIME

AH = 01h
CX:DX = number of clock ticks since midnight

SeeAlso

    INT 1A AH=00    INT 1A AH=03    INT 21 AH=2D


INT 1A AH=02

1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)

AH = 02h

Return

        CF clear if successful
    CH = hour (BCD)
    CL = minutes (BCD)
    DH = seconds (BCD)
    DL = daylight savings flag (00h standard time, 01h daylight time)
CF set on error (i.e. clock not running or in middle of update)

SeeAlso

    INT 1A AH=00


INT 1A AH=03

1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)

AH = 03h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = daylight savings flag (00h standard time, 01h daylight time)

SeeAlso

    INT 1A AH=01


INT 1A AH=04

1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)

AH = 04h

Return

        CF clear if successful
    CH = century (BCD)
    CL = year (BCD)
    DH = month (BCD)
    DL = day (BCD)
CF set on error

SeeAlso

    INT 1A AH=02    INT 1A AH=05    INT 21 AH=2A


INT 1A AH=05

1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)

AH = 05h
CH = century (BCD)
CL = year (BCD)
DH = month (BCD)
DL = day (BCD)

SeeAlso

    INT 1A AH=04    INT 21 AH=2B


INT 1A AH=06

1A - TIME - SET ALARM (AT,XT286,PS)

AH = 06h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)

Return

        CF set on error (alarm already set or clock stopped for update)
CF clear if successful

Note

     	the alarm occurs every 24 hours until turned off, invoking INT 4A each
  time

SeeAlso

    INT 1A AH=07    INT 4A


INT 1A AH=07

1A - TIME - CANCEL ALARM (AT,XT286,PS)

AH = 07h

Return

        alarm disabled

Note

     	does not disable the real-time clock's IRQ

SeeAlso

    INT 1A AH=06    INT 70


INT 1A AH=08

1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)

AH = 08h
CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD


INT 1A AH=09

1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)

AH = 09h

Return

        CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD
DL = alarm status
    00h alarm not enabled
    01h alarm enabled but will not power up system
    02h alarm will power up system


INT 1A AH=0A

1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)

AH = 0Ah

Return

        CF set on error
CF clear if successful
    CX = count of days since Jan 1,1980

SeeAlso

    INT 1A AH=04    INT 1A AH=0B


INT 1A AH=0B

1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)

AH = 0Bh
CX = count of days since Jan 1,1980

Return

        CF set on error
CF clear if successful

SeeAlso

    INT 1A AH=05    INT 1A AH=0A


INT 1A AH=10

1A - NEC PC-9800 series - PRINTER - INITIALIZE

AH = 10h
???

Return

        ???

SeeAlso

    INT 1A AH=11    INT 1A AH=12    INT 17 AH=01


INT 1A AH=11

1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER

AH = 11h
???

Return

        ???

SeeAlso

    INT 1A AH=10    INT 1A AH=12    INT 17 AH=00


INT 1A AH=12

1A - NEC PC-9800 series - PRINTER - SENSE STATUS

AH = 12h
???

Return

        ???

SeeAlso

    INT 1A AH=10    INT 1A AH=11    INT 17 AH=02


INT 1A AX=3601

1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK

AX = 3601h

Return

        DS:SI = routine to monitor keyboard input, immediately preceded by the
ASCIZ string "WPCORP\0"

Notes

      	WordPerfect 5.0 will call this interrupt at start up to determine if a
  third party product wants to interface with it.  The third party
  product must intercept this interrupt and return the address of a
  keyboard monitor routine.
Before checking for keyboard input, and after every key entered by the
  user, Word Perfect will call the routine whose address was provided
  in DS:SI with the following parameters:
Entry:	AX = key code or 0
BX = WordPerfect state flag
Exit:	AX = 0 or key code
BX = 0 or segment address of buffer with key codes
See the "WordPerfect 5.0 Developer's Toolkit" for further information.

SeeAlso

    INT 16 AX=5500


INT 1A AX=6108

1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY

AX = 6108h
STACK:	WORD	conversation ID (0000h-0009h)
DWORD	pointer to message buffer
WORD	length of message
DWORD	pointer to reply buffer
WORD	length of reply buffer
WORD	0000h (use default "Cparams" structure)

Return

        AX = status (see below)
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol

SeeAlso

    INT 1A AX=6205

Values for status:
 0000h successful
 F830h "SNAP_ABORTED"
 FC04h "SNAP_SERVERDIED"
 FC05h "SNAP_RESEND"
 FC06h "SNAP_SELECTFAILED"
 FC07h "SNAP_WRONGVERSION"
 FC08h "SNAP_INVALIDACK"
 FC09h "SNAP_TIMEOUT"
 FC0Ah "SNAP_SERVERREJECT"
 FC0Bh "SNAP_NOREPLYDUE"
 FC0Ch "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
 FC0Dh "SNAP_NOINIT"
 FC0Eh "SNAP_SOCKETERROR"
 FC0Fh "SNAP_BUFFERLIMIT"
 FC10h "SNAP_INVALIDCID"
 FC11h "SNAP_INVALIDOP"
 FC12h "SNAP_XMITFAIL"
 FC13h "SNAP_NOMORERETRIES"
 FC14h "SNAP_BADPARMS"
 FC15h "SNAP_NOMEMORY"
 FC16h "SNAP_NOMORECONVS"
 FFFFh failed (invalid function/parameter)


INT 1A AX=6205

1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY

AX = 6205h
STACK:	WORD	conversation ID (0000h-0009h)
DWORD	pointer to message
WORD	length of message
WORD	0000h (use default "Cparms" structure)

Return

        AX = status (see AX=6108h)
STACK unchanged

SeeAlso

    INT 1A AX=6108


INT 1A AX=6308

1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION

AX = 6308h
STACK:	WORD	offset of ASCIZ "guardian"
WORD	offset of ASCIZ hostname
WORD	offset of ASCIZ server name
WORD	offset of ASCIZ userid
WORD	offset of ASCIZ password
WORD	offset of password length
WORD	offset of password type
WORD	offset of "Cparms" structure (see below)

Return

        ???
STACK unchanged

Note

     	all stacked offsets are within the SNAP data segment (use AX=6A01h
  to allocate a buffer)

SeeAlso

    INT 1A AX=6405    INT 1A AX=7202

Table Formats

Cparms structure:


INT 1A AX=6405

1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION

AX = 6405h
STACK:	WORD	conversation ID (0000h-0009h)
DWORD	pointer to message buffer
WORD	length of message
WORD	0000h (use default "Cparms" structure)

Return

        AX = status (see AX=6108h)
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol

SeeAlso

    INT 1A AX=6308


INT 1A AX=6900

1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT

AX = 6900h

Return

        AX = value used for DS by resident code

SeeAlso

    INT 1A AX=6A01    INT 1A AX=6F01


INT 1A AX=6A01

1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT

AX = 6A01h
STACK:	WORD	number of bytes to allocate

Return

        AX = offset of allocated buffer or 0000h if out of memory
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol

SeeAlso

    INT 1A AX=6B01


INT 1A AX=6B01

1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT

AX = 6B01h
STACK:	WORD	offset within SNAP data segment of previously allocated
buffer

Return

       	STACK unchanged

Note

     	this call is a NOP if the specified offset is 0000h

SeeAlso

    INT 1A AX=6A01


INT 1A AX=6C04

1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE

AX = 6C04h
STACK:	WORD	offset within SNAP data segment of dest (nonzero)
WORD	segment of source buffer
WORD	offset of source buffer
WORD	number of bytes to copy

Return

        AX = offset of byte after last one copied to destination
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol

SeeAlso

    INT 1A AX=6D04


INT 1A AX=6D04

1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE

AX = 6D04h
STACK:	WORD	offset within SNAP data segment of source buffer
WORD	segment of destination buffer
WORD	offset of destination buffer
WORD	number of bytes to copy

Return

        AX = offset of byte after last one copied from source
buffer filled
STACK unchanged

SeeAlso

    INT 1A AX=6C04


INT 1A AX=6E01

1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???

AX = 6E01h
STACK:	WORD	new value for ???

Return

       	AX = old value of ???
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol


INT 1A AX=6F01

1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK

AX = 6F01h
STACK: WORD 0000h

Return

        AX = status
    0000h SNAP is resident
    other SNAP not present
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol, and is
  required by PCVENUS (a network shell).  The combination of SNAP and
  PCVENUS allows the use of the Andrew File System as one or more
  networked drives.

SeeAlso

    INT 1A AX=6900    INT 1A AX=7400


INT 1A AX=7002

1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"

AX = 7002h
STACK:	WORD	anchor number (0000h-0009h)
WORD	new value for the anchor

Return

        AX = status
    0000h successful
    FFFFh failed (top word on stack not in range 00h-09h)
STACK unchanged

SeeAlso

    INT 1A AX=7101


INT 1A AX=7101

1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"

AX = 7101h
STACK:	WORD	anchor number (0000h-0009h)

Return

       	AX = anchor's value
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol

SeeAlso

    INT 1A AX=7002


INT 1A AX=7202

1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS

AX = 7202h
STACK:	WORD	conversation ID (0000h-0009h)
WORD	offset within resident data segment of "Cparms"
structure (see AX=6308h)

Return

       	AX = status???
STACK unchanged

SeeAlso

    INT 1A AX=6308


INT 1A AX=7302

1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???

AX = 7302h
STACK:	WORD	conversation ID (0000h-0009h)
WORD	offset within resident data segment of ???

Return

       	AX = ???
???
STACK unchanged

SeeAlso

    INT 1A AX=7400


INT 1A AX=7400

1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION

AX = 7400h

Return

        AX = version (AH=major, AL=minor)

Note

     	this call is only valid if SNAP is installed

SeeAlso

    INT 1A AX=7302    INT 1A AX=6F01


INT 1A AH=75

1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???

AH = 75h
AL = ???

Return

        AX = ??? (0000h)

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol


INT 1A AH=76

1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???

AH = 76h
AL = ???

Return

        AX = ???


INT 1A AH=77

1A - SNAP.EXE 3.4 - ???

AH = 77h
AL = ??? (at least 01h)
STACK:	WORD	???
???

Return

        ???
STACK unchanged


INT 1A AX=7802

1A - SNAP.EXE 3.4 - ???

AX = 7802h
STACK:	WORD	???
WORD	???

Return

        ???
STACK unchanged

Program

         SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  which implements the Simple Network Application Protocol


INT 1A AH=7F

1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???

AH = 7Fh
???

Return

        ???

SeeAlso

    INT 1A AH=80    INT 1A AH=83    INT 1A AH=85


INT 1A AH=80

1A - PCjr - SET UP SOUND MULTIPLEXOR

AH = 80h
AL = 00h source is 8253 channel 2
     01h source is cassette input
     02h source is I/O channel "Audio IN"
     03h source is sound generator chip

SeeAlso

    INT 1A AH=7F    INT 1A AH=83


INT 1A AX=8100

1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK

AX = 8100h

Return

        AH > 80h if supported


INT 1A AH=83

1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND

AH = 83h
AL = volume (0=lowest, 7=highest)
CX = number of bytes to play
DX = time between sound samples (multiples of 273 nanoseconds)
ES:BX -> sound data (array of 8-bit PCM samples)

Return

        ???

Notes

      	this call returns immediately while the sound plays in the
  background
The sound data pointed to by ES:BX probably shouldn't cross a 64k
  boundary.  The BIOS appears to call INT 15/AX=91FBh when the sound
  device underflows to allow another INT 1A/AH=83h for seamless
  playing of long sounds.

SeeAlso

    INT 1A AH=84    INT 15 AH=91


INT 1A AH=84

1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND

AH = 84h

Return

        ???

SeeAlso

    INT 1A AH=83    INT 1A AH=85


INT 1A AH=85

1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???

AH = 85h
???

Return

        ???

SeeAlso

    INT 1A AH=7F    INT 1A AH=83


INT 1A AH=A0

1A - Disk Spool II v2.07 - INSTALLATION CHECK

AH = A0h

Return

        AH = B0h if installed
    AL = pending INT 1A/AH=D0h subfunction if nonzero???
    ES = code segment
    ES:BX -> name of current spool file
    ES:SI -> current despool file
    CL = 00h despooler is disabled
       = 41h despooler is enabled
    CH = 00h spooler is disabled
       = 41h spooler is enabled
    DL = 00h despooler is currently active printing a file
       = 41h despooler is standing by
    DH = 00h ???
       = 41h ???
    DI = 0000h ???
 0001h ???

Note

     	Disk Spool II is a shareware disk-based print spooler by Budget
  Software Company

SeeAlso

    INT 1A AH=AB    INT 1A AH=C0    INT 1A AH=D0


INT 1A AH=AB

1A - Disk Spool II v1.83 - INSTALLATION CHECK

AH = ABh

Return

       	AH = BAh if installed
    AL = pending INT 1A/AH=ADh subfunction if nonzero???
    ES = code segment
    ES:BX -> name of current spool file
    ES:SI -> current despool file
    CL = 00h despooler is disabled
       = 41h despooler is enabled
    CH = 00h spooler is disabled
       = 41h spooler is enabled
    DL = 00h despooler is currently active printing a file
       = 41h despooler is standing by
    DH = 00h ???
       = 41h ???
    DI = 0000h ???
 0001h ???

Note

     	Disk Spool II is a shareware disk-based print spooler by Budget
  Software Company

SeeAlso

    INT 1A AH=A0    INT 1A AH=AC    INT 1A AH=AD


INT 1A AH=AC

1A - Disk Spool II v1.83 - INSTALLATION CHECK

AH = ACh

Return

        (see AH=ABh)

Note

     	this function is identical to AH=ABh

SeeAlso

    INT 1A AH=A0    INT 1A AH=AB    INT 1A AH=AD


INT 1A AH=AD

1A - Disk Spool II v1.83 - FUNCTION CALLS

AH = ADh
AL = function code
    02h enable spooler only
    03h enable the despooler
    04h disable the despooler
    08h inhibit popup menu
    09h enable popup menu
    0Ah ???
    0Bh disable the spooler
    0Ch start despooler after last successfully printed document???
    0Dh start despooler at the exact point where it last left off???
    0Eh pop up the menu
    0Fh ???
    11h ???
    14h ???
    15h ???
    16h ???
    17h ???
    18h ???
    19h ???
    20h clear file pointed to by the despooler???
    21h	???
    22h	???
    23h ???
    30h ???

Return

        AH = 00h if successful

SeeAlso

    INT 1A AH=AB


INT 1A AH=C0

1A - Disk Spool II v2.07 - ALTERNATE INSTALLATION CHECK

AH = C0h

Return

        (see AH=A0h)

Note

     	this call is identical to AH=A0h

SeeAlso

    INT 1A AH=A0    INT 1A AH=AB    INT 1A AH=D0


INT 1A AH=D0

1A - Disk Spool II v2.07 - FUNCTION CALLS

AH = D0h
AL = function code
    01h enable spooler and despooler
    02h enable spooler only
    03h enable despooler at beginning of file
    04h disable the despooler
    05h disable the despooler and spooler
    06h clear the spool file
    08h inhibit the popup menu
    09h enable the popup menu
    0Ah ??? (called by Disk Spool's INT 21 handler)
    0Bh disable the spooler
    0Ch start despooler after last successfully printed document
    0Dh start despooler at the exact point where it last left off
    0Eh pop up the menu
    0Fh ???
    11h start new spool file??? (called by Disk Spool's INT 21 handler
when a program terminates)
    14h ???
    15h delete despool file and reset ???
    16h ??? (writes something to unknown file)
    17h ??? (writes something to despool file, then reads something
else and ???)
    18h ??? (reads something from despool file, and then ???)
    19h ??? (creates/truncates spool file)
    20h clear file pointed to by the despooler
    21h ??? (writes something to unknown file)
    22h ??? (writes something to spool file if spooler/despooler using
same file)
    23h ??? (opens/creates unknown file, then ???)
    30h ???
    31h ???
    32h beep
    33h append CRLF to spool file???
    34h ???
    35h ???
    36h ???
    37h append CRLF to spool file and start a new spool file???
    38h ???
    51h ??? (called by Disk Spool's INT 21 handler)
    52h ??? (called by Disk Spool's INT 21 handler)
    57h ???

SeeAlso

    INT 1A AH=A0    INT 1A AH=AD


INT 1A AH=F7

1A - RighTime v1.1 - TEMPORARILY DISABLE

AH = F7h

Notes

      	RighTime is a TSR by G.T. Becker which continuously adjusts the system
  time to correct for clock drift
any AH value from F0h-F7h or F9h-FEh will perform this function in
  version 1.1, but F7h is the function called by transient portion

SeeAlso

    INT 1A AH=F8    INT 1A AH=FF"RighTime"


INT 1A AH=F8

1A - RighTime v1.1 - ENABLE

AH = F8h

Notes

      	RighTime is a TSR by G.T. Becker which continuously adjusts the system
  time to correct for clock drift
RighTime is TeSseRact-compatible (see INT 2F/AX=5453h) and modifies its
  TeSseRact program identifier based on its current state: "RighTime"
  when enabled, "RighTim"F7h when disabled.

SeeAlso

    INT 1A AH=F7    INT 1A AH=FF"RighTime"


INT 1A AH=FE

1A - AT&T 6300 - READ TIME AND DATE

AH = FEh

Return

        BX = day count (0 = Jan 1, 1984)
CH = hour
CL = minute
DH = second
DL = hundredths

SeeAlso

    INT 1A AH=FF"AT&T"    INT 21 AH=2A    INT 21 AH=2C


INT 1A AH=FF

1A - AT&T 6300 - SET TIME AND DATE

AH = FFh
BX = day count (0 = Jan 1, 1984)
CH = hour
CL = minute
DH = second
DL = hundredths

Return

        ???

SeeAlso

    INT 1A AH=FE    INT 21 AH=2B    INT 21 AH=2D


INT 1A AH=FF

1A - RighTime v1.1 - PERMANENTLY DISABLE

AH = FFh

Notes

      	RighTime is a TSR by G.T. Becker which continuously adjusts the system
  time to correct for clock drift
upon being permanently disabled, RighTime closes the file handle
  referencing its executable (which is updated with time correction
  information every two minutes while RighTime is enabled).


INT 1B

1B C - KEYBOARD - CONTROL-BREAK HANDLER

Desc

     	this interrupt is automatically called when INT 09 determines that
  Control-Break has been pressed

Note

     	normally points to a short routine in DOS which sets the Ctrl-C flag,
  thus invoking INT 23h the next time DOS checks for Ctrl-C.

SeeAlso

    INT 23


INT 1C

1C - TIME - SYSTEM TIMER TICK

Desc

     	this interrupt is automatically called on each clock tick by the INT 08
  handler

Notes

      	this is the preferred interrupt to chain when a program needs to be
  invoked regularly
not available on NEC 9800-series PCs

SeeAlso

    INT 08


INT 1D

1D - SYSTEM DATA - VIDEO PARAMETER TABLES

Note

     	default parameter table at F000h:F0A4h for 100% compatible BIOSes

SeeAlso

    INT 10 AH=00

Table Formats

Video parameters:


INT 1E

1E - SYSTEM DATA - DISKETTE PARAMETERS

Note

     	default parameter table at F000h:EFC7h for 100% compatible BIOSes

SeeAlso

    INT 13 AH=0F    INT 41

Table Formats

Diskette parameter table:


INT 1F

1F - SYSTEM DATA - 8x8 GRAPHICS FONT

   points at 1024 bytes of graphics data, 8 bytes for each character 80h-FFh

Note

     	graphics data for characters 00h-7Fh stored at F000h:FA6Eh in 100%
  compatible BIOSes

SeeAlso

    INT 10 AX=5000    INT 43


INT 20

20 - Minix - SEND/RECEIVE MESSAGE

AX = process ID of other process
BX -> message
CX = 1 send
     2 receive
     3 send&receive

Note

     	the message contains the system call number (numbered as in V7
  Unix(tm)) and the call parameters


INT 20

20 - DOS 1+ - TERMINATE PROGRAM

CS = PSP segment

Return

        never

Note

     	(see INT 21/AH=00h)

SeeAlso

    INT 21 AH=00    INT 21 AH=4C


INT 21 AH=00

21 - DOS 1+ - TERMINATE PROGRAM

AH = 00h
CS = PSP segment

Notes

      	Microsoft recomments using INT 21/AH=4Ch for DOS 2+
execution continues at address stored in INT 22 after DOS performs
  whatever cleanup it needs to do
if the PSP is its own parent, the process's memory is not freed; if
  INT 22 additionally points into the terminating program, the
  process is effectively NOT terminated
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=26    INT 21 AH=31    INT 21 AH=4C    INT 20INT 2


INT 21 AH=01

21 - DOS 1+ - READ CHARACTER FROM STANDARD INPUT, WITH ECHO

AH = 01h

Return

        AL = character read

Notes

      	^C/^Break are checked, and INT 23 executed if read
character is echoed to standard output
standard input is always the keyboard and standard output the screen
  under DOS 1.x, but they may be redirected under DOS 2+

SeeAlso

    INT 21 AH=06    INT 21 AH=07    INT 21 AH=08    INT 21 AH=0A


INT 21 AH=02

21 - DOS 1+ - WRITE CHARACTER TO STANDARD OUTPUT

AH = 02h
DL = character to write

Return

        AL = last character output (despite the official docs which state
nothing is returned) (at least DOS 3.3-5.0)

Notes

      	^C/^Break are checked, and INT 23 executed if pressed
standard output is always the screen under DOS 1.x, but may be
  redirected under DOS 2+
the last character output will be the character in DL unless DL=09h
  on entry, in which case AL=20h as tabs are expanded to blanks

SeeAlso

    INT 21 AH=06    INT 21 AH=09


INT 21 AH=03

21 - DOS 1+ - READ CHARACTER FROM STDAUX

AH = 03h

Return

        AL = character read

Notes

      	keyboard checked for ^C/^Break, and INT 23 executed if detected
STDAUX is usually the first serial port

SeeAlso

    INT 21 AH=04    INT 14 AH=02    INT E0CL=03


INT 21 AH=04

21 - DOS 1+ - WRITE CHARACTER TO STDAUX

AH = 04h
DL = character to write

Notes

      	keyboard checked for ^C/^Break, and INT 23 executed if detected
STDAUX is usually the first serial port
if STDAUX is busy, this function will wait until it becomes free

SeeAlso

    INT 21 AH=03    INT 14 AH=01    INT E0CL=04


INT 21 AH=05

21 - DOS 1+ - WRITE CHARACTER TO PRINTER

AH = 05h
DL = character to print

Notes

      	keyboard checked for ^C/^Break, and INT 23 executed if detected
STDPRN is usually the first parallel port, but may be redirected under
  DOS 2+
if the printer is busy, this function will wait

SeeAlso

    INT 17 AH=00


INT 21 AH=06

21 - DOS 1+ - DIRECT CONSOLE OUTPUT

AH = 06h
DL = character (except FFh)

Return

        AL = character output (despite official docs which state nothing is
returned) (at least DOS 3.3-5.0)

Notes

      	does not check ^C/^Break
writes to standard output, which is always the screen under DOS 1.x,
  but may be redirected under DOS 2+

SeeAlso

    INT 21 AH=02    INT 21 AH=09


INT 21 AH=06

21 - DOS 1+ - DIRECT CONSOLE INPUT

AH = 06h
DL = FFh

Return

        ZF set if no character available
ZF clear if character available
    AL = character read

Notes

      	^C/^Break are NOT checked
if the returned character is 00h, the user pressed a key with an
  extended keycode, which will be returned by the next call of this
  function
reads from standard input, which is always the keyboard under DOS 1.x,
  but may be redirected under DOS 2+

SeeAlso

    INT 21 AH=0B


INT 21 AH=07

21 - DOS 1+ - DIRECT CHARACTER INPUT, WITHOUT ECHO

AH = 07h

Return

        AL = character read from standard input

Notes

      	does not check ^C/^Break
standard input is always the keyboard under DOS 1.x, but may be
  redirected under DOS 2+
if the interim console flag is set (see AX=6301h), partially-formed
  double-byte characters may be returned

SeeAlso

    INT 21 AH=01    INT 21 AH=06    INT 21 AH=08    INT 21 AH=0A


INT 21 AH=08

21 - DOS 1+ - CHARACTER INPUT WITHOUT ECHO

AH = 08h

Return

        AL = character read from standard input

Notes

      	^C/^Break are checked, and INT 23 executed if detected
standard input is always the keyboard under DOS 1.x, but may be
  redirected under DOS 2+
if the interim console flag is set (see AX=6301h), partially-formed
  double-byte characters may be returned

SeeAlso

    INT 21 AH=01    INT 21 AH=06    INT 21 AH=07    INT 21 AH=0A    INT 21 AH=64


INT 21 AH=09

21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT

AH = 09h
DS:DX -> '$'-terminated string

Return

        AL = 24h (the '$' terminating the string, despite official docs which
state that nothing is returned) (at least DOS 3.3-5.0)

Notes

      	^C/^Break are checked, and INT 23 is called if either pressed
standard output is always the screen under DOS 1.x, but may be
  redirected under DOS 2+
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=02    INT 21 AH=06"OUTPUT"


INT 21 AH=0A

21 - DOS 1+ - BUFFERED INPUT

AH = 0Ah
DS:DX -> buffer (see below)

Return

        buffer filled with user input

Notes

      	^C/^Break are checked, and INT 23 is called if either detected
reads from standard input, which may be redirected under DOS 2+
if the maximum buffer size (see below) is set to 00h, this call returns
  immediately without reading any input

SeeAlso

    INT 21 AH=0C    INT 2F AX=4810

Table Formats

Input buffer:


INT 21 AX=0A00

21 - WCED v1.6 - INSTALLATION CHECK

AX = 0A00h
DS:DX -> 6-byte buffer whose first two bytes must be 00h

Return

        buffer offset 02h-05h filled with "Wced" if installed

Note

     	WCED is a free command-line editor and history utility by Stuart
  Russell

SeeAlso

    INT 21 AH=FF"CED"


INT 21 AH=0B

21 - DOS 1+ - GET STDIN STATUS

AH = 0Bh

Return

        AL = 00h if no character available
   = FFh if character is available

Notes

      	^C/^Break are checked, and INT 23 is called if either pressed
standard input is always the keyboard under DOS 1.x, but may be
  redirected under DOS 2+
if the interim console flag is set (see AX=6301h), this function
  returns AL=FFh if a partially-formed double-byte character is
  available

SeeAlso

    INT 21 AH=06"INPUT"    INT 21 AX=4406


INT 21 AX=0B56

21 - VIRUS - "Perfume" - INSTALLATION CHECK

AX = 0B56h

Return

        AX = 4952h if resident

SeeAlso

    INT 21 AX=0D20


INT 21 AH=0C

21 - DOS 1+ - FLUSH BUFFER AND READ STANDARD INPUT

AH = 0Ch
AL = STDIN input function to execute after flushing buffer
other registers as appropriate for the input function

Return

        as appropriate for the specified input function

Note

     	if AL is not one of 01h,06h,07h,08h, or 0Ah, the buffer is flushed but
  no input is attempted

SeeAlso

    INT 21 AH=01    INT 21 AH=06"INPUT"    INT 21 AH=07    INT 21 AH=08    INT 21 AH=0A


INT 21 AH=0D

21 - DOS 1+ - DISK RESET

AH = 0Dh

Notes

      	writes all modified disk buffers to disk, but does not update directory
  information (that is only done when files are closed or a SYNC call
  is issued)

SeeAlso

    INT 21 AX=5D01    INT 13 AH=00    INT 2F AX=1120


INT 21 AX=0D20

21 - VIRUS - "Crazy Imp" - INSTALLATION CHECK

AX = 0D20h

Return

        AX = 1971h if resident

SeeAlso

    INT 21 AX=0B56    INT 21 AH=30    /DX=ABCD


INT 21 AH=0E

21 - DOS 1+ - SELECT DEFAULT DRIVE

AH = 0Eh
DL = new default drive (00h = A:, 01h = B:, etc)

Return

        AL = number of potentially valid drive letters

Notes

      	under Novell NetWare, the return value is always 32, the number of
  drives that NetWare supports
under DOS 3+, the return value is the greatest of 5, the value of
  LASTDRIVE= in CONFIG.SYS, and the number of drives actually present
on a DOS 1.x/2.x single-floppy system, AL returns 2 since the floppy
  may be accessed as either A: or B:
otherwise, the return value is the highest drive actually present
DOS 1.x supports a maximum of 16 drives, 2.x a maximum of 63 drives,
  and 3+ a maximum of 26 drives

SeeAlso

    INT 21 AH=19    INT 21 AH=3B    INT 21 AH=DB


INT 21 AH=0F

21 - DOS 1+ - OPEN FILE USING FCB

AH = 0Fh
DS:DX -> unopened File Control Block (see below)

Return

        AL = status
    00h successful
    FFh file not found or access denied

Notes

      	(DOS 3.1+) file opened for read/write in compatibility mode
an unopened FCB has the drive, filename, and extension fields filled
  in and all other bytes cleared
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=10    INT 21 AH=16    INT 21 AH=3D

Table Formats

File Control Block:
Reserved field for DOS 1.0:
Reserved field for DOS 1.10-1.25:
Reserved field for DOS 2.x:
Reserved field for DOS 3.x:


INT 21 AH=10

21 - DOS 1+ - CLOSE FILE USING FCB

AH = 10h
DS:DX -> File Control Block (see AH=0Fh)

Return

        AL = status
    00h successful
    FFh failed

Notes

      	a successful close forces all disk buffers used by the file to be
  written and the directory entry to be updated
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=0F    INT 21 AH=16    INT 21 AH=3E


INT 21 AH=11

21 - DOS 1+ - FIND FIRST MATCHING FILE USING FCB

AH = 11h
DS:DX -> unopened FCB (see AH=0Fh), may contain '?' wildcards

Return

        AL = status
    00h successful
[DTA] unopened FCB for first matching file
    FFh no matching filename, or bad FCB

Notes

      	the type of the returned FCB depends on whether the input FCB was a
  normal or an extended FCB
for extended FCBs with search attribute 08h, the volume label (if any)
  will be returned even if the current directory is not the root dir.
DOS 3+ also allows the '*' wildcard
the search FCB must not be modified if AH=12h will be used to continue
  searching; DOS 3.3 has set the following parts of the FCB:
 0Ch	BYTE	???
 0Dh	WORD	directory entry number of matching file
 0Fh	WORD	cluster number of current directory
 11h  4 BYTEs	???
 15h	BYTE	drive number (1=A:)
at least for DOS 3.3, the unopened FCB in the DTA is actually the drive
  number followed by the file's directory entry

SeeAlso

    INT 21 AH=12    INT 21 AH=1A    INT 21 AH=4E    INT 2F AX=111B


INT 21 AH=12

21 - DOS 1+ - FIND NEXT MATCHING FILE USING FCB

AH = 12h
DS:DX -> unopened FCB (see AH=0Fh)

Return

        AL = status
    00h successful
[DTA] = unopened FCB
    FFh no more matching filenames

Note

     	(see AH=11h)
assumes that successful FindFirst executed on search FCB before call

SeeAlso

    INT 21 AH=1A    INT 21 AH=4F    INT 2F AX=111C


INT 21 AH=13

21 - DOS 1+ - DELETE FILE USING FCB

AH = 13h
DS:DX -> unopened FCB (see AH=0Fh), filename filled with template for
deletion ('?' wildcards allowed)

Return

        AL = status
    00h one or more files successfully deleted
    FFh no matching files or all were read-only or locked

Notes

      	DOS 1.25+ deletes everything in the current directory (including
  subdirectories) and sets the first byte of the name to 00h (entry
  never used) instead of E5h if called on an extended FCB with
  filename '???????????' and bits 0-4 of the attribute set (bits 1 and
  2 for DOS 1.x).  This may have originally been an optimization to
  minimize directory searching after a mass deletion (DOS 1.25+ stop
  the directory search upon encountering a never-used entry), but can
  corrupt the filesystem under DOS 2+ because subdirectories are
  removed without deleting the files they contain.
currently-open files should not be deleted

SeeAlso

    INT 21 AH=41    INT 2F AX=1113


INT 21 AH=14

21 - DOS 1+ - SEQUENTIAL READ FROM FCB FILE

AH = 14h
DS:DX -> opened FCB (see AH=0Fh)

Return

        AL = status
    00h successful
    01h end of file (no data)
    02h segment wrap in DTA
    03h end of file, partial record read
[DTA] = record read from file

Notes

      	reads a record of the size specified in the FCB beginning at the
  current file position, then updates the current block and current
  record fields in the FCB
if a partial record was read, it is zero-padded to the full size
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=0F    INT 21 AH=15    INT 21 AH=1A    INT 21 AH=3F    INT 2F AX=1108


INT 21 AH=15

21 - DOS 1+ - SEQUENTIAL WRITE TO FCB FILE

AH = 15h
DS:DX -> opened FCB (see AH=0Fh)
[DTA] = record to write

Return

        AL = status
    00h successful
    01h disk full
    02h segment wrap in DTA

Notes

      	writes a record of the size specified in the FCB beginning at the
  current file position, then updates the current block and current
  record fields in the FCB
if less than a full sector is written, the data is placed in a DOS
  buffer to be written out at a later time
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=0F    INT 21 AH=14    INT 21 AH=1A    INT 21 AH=40    INT 2F AX=1109


INT 21 AH=16

21 - DOS 1+ - CREATE OR TRUNCATE FILE USING FCB

AH = 16h
DS:DX -> unopened FCB (see AH=0Fh), wildcards not allowed

Return

        AL = status
    00h successful
    FFh directory full or file exists and is read-only or locked

Notes

      	if file already exists, it is truncated to zero length
if an extended FCB is used, the file is given the attribute in the
  FCB; this is how to create a volume label in the disk's root dir
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=0F    INT 21 AH=10    INT 21 AH=3C


INT 21 AH=17

21 - DOS 1+ - RENAME FILE USING FCB

AH = 17h
DS:DX -> modified FCB (see also AH=0Fh)
the old filename ('?' wildcards OK) is in the standard location
while the new filename ('?' wildcards OK) is stored in the 11
bytes beginning at offset 11h

Return

       	AL = status
    00h successfully renamed
    FFh no matching files,file is read-only, or new name already exists

Note

     	subdirectories may be renamed using an extended FCB with the
  appropriate attribute, as may volume labels

SeeAlso

    INT 21 AH=0F    INT 21 AH=13    INT 21 AH=56    INT 2F AX=1111


INT 21 AH=18

21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

AH = 18h

Return

        AL = 00h

Note

     	corresponds to the CP/M BDOS function "get bit map of logged drives",
  which is meaningless under MSDOS

SeeAlso

    INT 21 AH=1D    INT 21 AH=1E    INT 21 AH=20    INT 21 AX=4459


INT 21 AH=19

21 - DOS 1+ - GET CURRENT DEFAULT DRIVE

AH = 19h

Return

        AL = drive (00h = A:, 01h = B:, etc)
SeeAlo: AH=0Eh,AH=47h


INT 21 AH=1A

21 - DOS 1+ - SET DISK TRANSFER AREA ADDRESS

AH = 1Ah
DS:DX -> Disk Transfer Area (DTA)

Notes

      	the DTA is set to PSP:0080h when a program is started
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=11    INT 21 AH=12    INT 21 AH=2F    INT 21 AH=4E    INT 21 AH=4F


INT 21 AH=1B

21 - DOS 1+ - GET ALLOCATION INFORMATION FOR DEFAULT DRIVE

AH = 1Bh

Return

        AL = sectors per cluster (allocation unit)
CX = bytes per sector
DX = total number of clusters
DS:BX -> media ID byte (see below)

Note

     	under DOS 1.x, DS:BX points at an actual copy of the FAT; later
  versions return a pointer to a copy of the FAT's ID byte

SeeAlso

    INT 21 AH=1C    INT 21 AH=36

Values for media ID byte:
 FFh	floppy, double-sided, 8 sectors per track (320K)
 FEh	floppy, single-sided, 8 sectors per track (160K)
 FDh	floppy, double-sided, 9 sectors per track (360K)
 FCh	floppy, single-sided, 9 sectors per track (180K)
 F9h	floppy, double-sided, 15 sectors per track (1.2M)
 F8h	hard disk
 F0h	other


INT 21 AH=1C

21 - DOS 1+ - GET ALLOCATION INFORMATION FOR SPECIFIC DRIVE

AH = 1Ch
DL = drive (00h = default, 01h = A:, etc)

Return

        AL = sectors per cluster (allocation unit)
CX = bytes per sector
DX = total number of clusters
DS:BX -> media ID byte (see AH=1Bh)

Note

     	under DOS 1.x, DS:BX points at an actual copy of the FAT; later
  versions return a pointer to a copy of the FAT's ID byte

SeeAlso

    INT 21 AH=1B    INT 21 AH=36


INT 21 AH=1D

21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

AH = 1Dh

Return

        AL = 00h

Note

     	corresponds to the CP/M BDOS function "get bit map of read-only
  drives", which is meaningless under MSDOS

SeeAlso

    INT 21 AH=18    INT 21 AH=1E    INT 21 AH=20    INT 21 AX=4459


INT 21 AH=1E

21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

AH = 1Eh

Return

        AL = 00h

Note

     	corresponds to the CP/M BDOS function "set file attributes" which was
 meaningless under MSDOS 1.x

SeeAlso

    INT 21 AH=18    INT 21 AH=1D    INT 21 AH=20


INT 21 AH=1F

21 - DOS 1+ - GET DRIVE PARAMETER BLOCK FOR DEFAULT DRIVE

AH = 1Fh

Return

        AL = status
    00h successful
DS:BX -> Drive Parameter Block (DPB) (see below for DOS 1.x,
AH=32h for DOS 2+)
    FFh invalid drive

Note

     	this call was undocumented prior to the release of DOS 5.0; however,
  only the DOS 4+ version of the DPB has been documented

SeeAlso

    INT 21 AH=32

Table Formats

DOS 1.1 and MSDOS 1.25 drive parameter block:


INT 21 AH=20

21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY

AH = 20h

Return

        AL = 00h

Note

     	corresponds to the CP/M BDOS function "get/set default user
  (sublibrary) number", which is meaningless under MSDOS

SeeAlso

    INT 21 AH=18    INT 21 AH=1D    INT 21 AH=1E    INT 21 AX=4459


INT 21 AH=21

21 - DOS 1+ - READ RANDOM RECORD FROM FCB FILE

AH = 21h
DS:DX -> opened FCB (see AH=0Fh)

Return

        AL = status
    00h successful
    01h end of file, no data read
    02h segment wrap in DTA, no data read
    03h end of file, partial record read
[DTA] = record read from file

Notes

      	the record is read from the current file position as specified by the
  random record and record size fields of the FCB
the file position is not updated after reading the record
if a partial record is read, it is zero-padded to the full size
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=14    INT 21 AH=22    INT 21 AH=27    INT 21 AH=3F


INT 21 AH=22

21 - DOS 1+ - WRITE RANDOM RECORD TO FCB FILE

AH = 22h
DS:DX -> opened FCB (see AH=0Fh)
[DTA] = record to write

Return

        AL = status
    00h successful
    01h disk full
    02h segment wrap in DTA

Notes

      	the record is written to the current file position as specified by the
  random record and record size fields of the FCB
the file position is not updated after writing the record
if the record is located beyond the end of the file, the file is
  extended but the intervening data remains uninitialized
if the record only partially fills a disk sector, it is copied to a
  DOS disk buffer to be written out to disk at a later time
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=15    INT 21 AH=21    INT 21 AH=28    INT 21 AH=40


INT 21 AH=23

21 - DOS 1+ - GET FILE SIZE FOR FCB

AH = 23h
DS:DX -> unopened FCB (see AH=0Fh), wildcards not allowed

Return

        AL = status
    00h successful (matching file found)
FCB random record field filled with size in records, rounded up
to next full record
    FFh failed (no matching file found)

Note

     	not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=42


INT 21 AH=24

21 - DOS 1+ - SET RANDOM RECORD NUMBER FOR FCB

AH = 24h
DS:DX -> opened FCB (see AH=0Fh)

Notes

      	computes the random record number corresponding to the current record
  number and record size, then stores the result in the FCB
normally used when switching from sequential to random access
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=21    INT 21 AH=27    INT 21 AH=42


INT 21 AH=25

21 - DOS 1+ - SET INTERRUPT VECTOR

AH = 25h
AL = interrupt number
DS:DX -> new interrupt handler

Notes

      	this function is preferred over direct modification of the interrupt
  vector table
some DOS extenders place an API on this function, as it is not
  directly meaningful in protected mode

SeeAlso

    INT 21 AX=2501    INT 21 AH=35


INT 21 AX=2501

21 P - Phar Lap 386/DOS-Extender - RESET DOS EXTENDER DATA STRUCTURES

AX = 2501h
SS = application's original SS or DS (FlashTek X-32VM)

Return

        CF clear if successful
CF set on error
    caller is operating on X-32 stack (FlashTek X-32VM)

Notes

      	Phar Lap uses INT 21/AH=25h as the entry point for all 386/DOS-Extender
  system calls.	 Only available when directly using 386/DOS-Extender or
  a compatible DOS extender, or when using a product that was created
  using 386-DOS/Extender or a compatible
this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AH=30"Phar Lap"


INT 21 AX=2502

21 - Phar Lap 386/DOS-Extender - GET PROTECTED-MODE INTERRUPT VECTOR

AX = 2502h
CL = interrupt number

Return

       	CF clear
ES:EBX = CS:EIP of protected-mode interrupt handler

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2503    INT 21 AX=2504    INT 31 AX=0204


INT 21 AX=2503

21 - Phar Lap 386/DOS-Extender - GET REAL-MODE INTERRUPT VECTOR

AX = 2503h
CL = interrupt number

Return

        CF clear
EBX = CS:IP of real-mode interrupt handler

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2502    INT 21 AX=2504    INT 21 AH=35    INT 31 AX=0200


INT 21 AX=2504

21 - Phar Lap 386/DOS-Extender - SET PROTECTED-MODE INTERRUPT VECTOR

AX = 2504h
CL = interrupt number
DS:EDX = CS:EIP of protected-mode interrupt handler

Return

        CF clear

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2502    INT 21 AX=2505    INT 31 AX=0205


INT 21 AX=2505

21 - Phar Lap 386/DOS-Extender - SET REAL-MODE INTERRUPT VECTOR

AX = 2505h
CL = interrupt number
EBX = CS:IP of real-mode interrupt handler

Return

        CF clear

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2503    INT 21 AX=2504    INT 31 AX=0201


INT 21 AX=2506

21 - Phar Lap 386/DOS-Extender - SET INT TO ALWAYS GAIN CONTRL IN PROT MODE

AX = 2506h
CL = interrupt number
DS:EDX = CS:EIP of protected-mode interrupt handler

Return

        CF clear

Notes

      	this function modifies both the real-mode low-memory interrupt
  vector table and the protected-mode Interrupt Descriptor Table (IDT)
interrupts occurring in real mode are resignaled in protected mode
this function is also supported by FlashTek X-32VM


INT 21 AX=2507

21 - Phar Lap 386/DOS-Extender - SET REAL- & PROTECTED-MODE INT VECTORS

AX = 2507h
CL = interrupt numbern
DS:EDX = CS:EIP of protected-mode interrupt handler
EBX = CS:IP of real-mode interrupt handler

Return

        CF clear

Notes

      	interrupts are disabled until both vectors have been modified
this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2504    INT 21 AX=2505


INT 21 AX=2508

21 - Phar Lap 386/DOS-Extender - GET SEGMENT LINEAR BASE ADDRESS

AX = 2508h
BX = segment selector

Return

        CF clear if successful
    ECX = linear base address of segment
CF set if invalid segment selector

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2509


INT 21 AX=2509

21 - Phar Lap 386/DOS-Extender - CONVERT LINEAR TO PHYSICAL ADDRESS

AX = 2509h
EBX = linear address to convert

Return

        CF clear if successful
    ECX = physical address (carry flag clear)
CF set if linear address not mapped in page tables

SeeAlso

    INT 21 AX=2508


INT 21 AX=2509

21 - FlashTek X-32VM - GET SYSTEM SEGMENTS AND SELECTORS

AX = 2509h

Return

        CF clear
EAX high word = default DS
AX = alias for 16-bit data segment
BX = real mode code segment
EDX high word = selector covering full 4GB address space
DX = default SS
ESI high word = PSP selector
SI = environment selector


INT 21 AX=250A

21 - Phar Lap 386/DOS-Extender - MAP PHYSICAL MEMORY AT END OF SEGMENT

AX = 250Ah
ES = segment selector in the Local Descriptor Table (LDT) of segment
     to modify
EBX = physical base address of memory to map (multiple of 4K)
ECX = number of physical 4K pages to map

Return

        CF clear if successful
    EAX = 32-bit offset in segment of mapped memory
CF set on error
    EAX = error code
08h insufficient memory to create page tables
09h invalid segment selector

SeeAlso

    INT 31 AX=0800


INT 21 AX=250C

21 - Phar Lap 386/DOS-Extender - GET HARDWARE INTERRUPT VECTORS

AX = 250Ch

Return

        CF clear
AL = base interrupt vector for IRQ0-IRQ7
AH = base interrupt vector for IRQ8-IRQ15
BL = interrupt vector for BIOS print screen function (Phar Lap only)

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 31 AX=0400    INT 67 AX=DE0A


INT 21 AX=250D

21 - Phar Lap 386/DOS-Extender - GET REAL-MODE LINK INFORMATION

AX = 250Dh

Return

        CF clear
EAX = CS:IP of real-mode callback procedure that will call through
from real mode to a protected-mode routine
EBX = 32-bit real-mode address of intermode call data buffer
ECX = size in bytes of intermode call data buffer
ES:EDX = protected-mode address of intermode call data buffer

Notes

      	this function is also supported by FlashTek X-32VM
X-32VM guarantees the intermode buffer to be at least 4 KB

SeeAlso

    INT 21 AX=250E

Call real-mode callback with:
STACK:	DWORD	offset to protected-mode code
WORD	placeholder for protected-mode CS
DWORD	pointer to selector structure (see below)
or 0000h:0000h for defaults
var	parameters for protected-mode procedure

Return

        via FAR return

Table Formats

Selector structure:


INT 21 AX=250E

21 - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE

AX = 250Eh
EBX = CS:IP of real-mode procedure to call
ECX = number of two-byte words to copy from protected-mode stack
      to real-mode stack

Return

        CF clear if successful
    all segment registers unchanged
    all general registers contain values set by real-mode procedure
    all other flags set as they were left by real-mode procedure
    stack unchanged
CF set on error
    EAX = error code
01h not enough real-mode stack space

Note

     	this function is also supported by FlashTek X-32VM; under X-32VM, the
  call will fail if ECX > 0000003Fh

SeeAlso

    INT 21 AX=250D    INT 21 AX=2510    INT 21 AH=E1"OS/286"    INT 31 AX=0301


INT 21 AX=250F

21 - Phar Lap 386/DOS-Extender - CONVERT PROTECTED-MODE ADDRESS TO MS-DOS

AX = 250Fh
ES:EBX = 48-bit protected-mode address to convert

Return

        CF clear if successful (address < 1MB)
    ECX = 32-bit real-mode MS-DOS address
CF set on error (address >= 1MB)
    ECX = linear address

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2510


INT 21 AX=2510

21 - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE, REGISTERS

AX = 2510h
EBX = CS:IP of real-mode procedure to call
ECX = number of two-byte words to copy to protected-mode stack to
      real-mode stack
DS:EDX -> pointer to parameter block (see below)

Return

        CF clear if successful
    all segment registers unchanged,
    EDX unchanged
    all other general registers contain values set by real-mode proc
    all other flags are set as they were left by real-mode procedure
    real-mode register values are returned in the parameter block
CF set on error
    EAX = error code
01h not enough real-mode stack space

Note

     	unlike most of the preceding 25xxh functions, this one is not
  supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=250E    INT 21 AX=250F

Table Formats

Parameter block:


INT 21 AX=2511

21 - Phar Lap 386/DOS-Extender - ISSUE REAL-MODE INTERRUPT

AX = 2511h
DS:EDX -> parameter block (see below)

Return

        all segment registers unchanged
EDX unchanged
all other registers contain values set by the real-mode int handler
the flags are set as they were left by the real-mode interrupt handler
real-mode register values are returned in the parameter block

Note

     	this function is also supported by FlashTek X-32VM

SeeAlso

    INT 21 AX=2503    INT 21 AX=2505    INT 21 AX=250E    INT 21 AH=E3"OS/286"    INT 31 AX=0300

Table Formats

Parameter block:


INT 21 AX=2512

21 - Phar Lap 386/DOS-Extender - LOAD PROGRAM FOR DEBUGGING

AX = 2512h
DS:EDX -> pointer to ASCIIZ program name
ES:EBX -> pointer to parameter block (see below)
ECX = size in bytes of LDT buffer

Return

        CF clear if successful
    EAX = number of segment descriptors in LDT
CF set on error
    EAX = error code
02h file not found or path invalid
05h access denied
08h insufficient memory
0Ah environment invalid
0Bh invalid file format
80h LDT too small

Table Formats

Parameter block:


INT 21 AX=2513

21 - Phar Lap 386/DOS-Extender - ALIAS SEGMENT DESCRIPTOR

AX = 2513h
BX = segment selector of descriptor in GDT or LDT
CL = access-rights byte for alias descriptor
CH = use-type bit (USE16 or USE32) for alias descriptor

Return

        CF clear if successful
    AX = segment selector for created alias
CF set on error
    EAX = error code
08h insufficient memory (can't grow LDT)
09h invalid segment selector in BX


INT 21 AX=2514

21 - Phar Lap 386/DOS-Extender - CHANGE SEGMENT ATTRIBUTES

AX = 2514h
BX = segment selector of descriptor in GDT or LDT
CL = new access-rights byte
CH = new use-type bit (USE16 or USE32)

Return

        CF clear if successful
CF set on error
    EAX = error code
09h invalid selector in BX

SeeAlso

    INT 21 AX=2515    INT 31 AX=0009


INT 21 AX=2515

21 - Phar Lap 386/DOS-Extender - GET SEGMENT ATTRIBUTES

AX = 2515h
BX = segment selector of descriptor in GDT or LDT

Return

        CF clear if successful
    CL = access-rights byte for segment
    CH = use-type bit (USE16 or USE32)
ECX<16-31> destroyed
CF set on error
    EAX = error code
09h invalid segment selector in BX

SeeAlso

    INT 21 AX=2514


INT 21 AX=2516

21 - Phar Lap 386/DOS-Extender - FREE ALL MEMORY OWNED BY LDT

AX = 2516h
???

Return

        ???


INT 21 AX=2517

21 - Phar Lap 386/DOS-Extender - GET INFO ON DOS DATA BUFFER

AX = 2517h
???

Return

        ???


INT 21 AX=2518

21 - Phar Lap 386/DOS-Extender - SPECIFY HANDLER FOR MOVED SEGMENTS

AX = 2518h
???

Return

        ???


INT 21 AX=2519

21 - Phar Lap 386/DOS-Extender VMM - GET ADDITIONAL MEMORY ERROR INFO

AX = 2519h

Return

        CF clear
EAX = error code
    0000h  no error
    0001h  out of physical memory
    0002h  out of swap space (unable to grow swap file)
    0003h  out of LDT entries and unable to grow LDT
    0004h  unable to change extended memory allocation mark
    FFFFFFFFh	paging disabled

Note

     	VMM is the Virtual Memory Manager option


INT 21 AX=251A

21 - Phar Lap 386/DOS-Extender VMM - LOCK PAGES IN MEMORY

AX = 251Ah
EDX = number of 4k pages to lock
if BL = 00h
    ECX = linear address of first page to lock
if BL = 01h
    ES:ECX -> pointer to first page to lock

Return

        CF clear if successful
CF set on error
    EAX = error code
08h insufficient memory
09h invalid address range

SeeAlso

    INT 21 AX=251B    INT 21 AX=EB06    INT 31 AX=0600


INT 21 AX=251B

21 - Phar Lap 386/DOS-Extender VMM - UNLOCK PAGES

AX = 251Bh
EDX = number of pages to unlock
if BL = 00h
    ECX = linear address of first page to unlock
if BL = 01h
    ES:ECX -> pointer to first page to unlock

Return

        CF clear if successful
CF set on error
    EAX = error code
09h invalid address range

SeeAlso

    INT 21 AX=251A    INT 21 AX=EB07    INT 31 AX=0601


INT 21 AX=251D

21 - Phar Lap 386/DOS-Extender VMM - READ PAGE-TABLE ENTRY

AX = 251Dh
???

Return

        ???

SeeAlso

    INT 21 AX=251E    INT 21 AX=EB00    INT 31 AX=0506


INT 21 AX=251E

21 - Phar Lap 386/DOS-Extender VMM - WRITE PAGE-TABLE ENTRY

AX = 251Eh
???

Return

        ???

SeeAlso

    INT 21 AX=251D    INT 31 AX=0507


INT 21 AX=251F

21 - Phar Lap 386/DOS-Extender VMM - EXHANGE TWO PAGE-TABLE ENTRIES

AX = 251Fh
???

Return

        ???

SeeAlso

    INT 21 AX=251D    INT 21 AX=251E


INT 21 AX=2520

21 - Phar Lap 386/DOS-Extender VMM - GET MEMORY STATISTICS

AX = 2520h
DS:EDX -> pointer to buffer at least 100 bytes in size (see below)
BL = 0 (don't reset VM stats), 1 (reset VM stats)

Return

        carry flag clear

Table Formats

VM stats buffer:


INT 21 AX=2521

21 - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S EXTENDED MEMORY USAGE

AX = 2521h
EBX = max 4k pages of physical extended memory which program may use

Return

        CF clear if successful
   EBX = maximum limit in pages
   ECX = minimum limit in pages
CF set on error
    EAX = error code
08h insufficient memory or -nopage switch used

SeeAlso

    INT 21 AX=2522


INT 21 AX=2522

21 - Phar Lap 386/DOS-Extender VMM - SPECIFY ALTERNATE PAGE-FAULT HANDLER

AX = 2522h
???

Return

        ???

SeeAlso

    INT 21 AX=2523


INT 21 AX=2523

21 - Phar Lap 386/DOS-Extender VMM - SPECIFY OUT-OF-SWAP-SPACE HANDLER

AX = 2523h
???

Return

        ???

SeeAlso

    INT 21 AX=2522


INT 21 AX=2524

21 - Phar Lap 386/DOS-Extender VMM - INSTALL PAGE-REPLACEMENT HANDLERS

AX = 2524h
???

Return

        ???


INT 21 AX=2525

21 - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S CONVENTIONAL MEM USAGE

AX = 2525h
EBX = limit in 4k pages of physical conventional memory which program
      may use

Return

        CF clear if successful
    EBX = maximum limit in pages
    ECX = minimum limit in pages
CF set on error
    EAX = error code
08h insufficient memory or -nopage switch used

SeeAlso

    INT 21 AX=2521


INT 21 AX=2526

21 - Phar Lap 386/DOS-Extender - GET CONFIGURATION INFORMATION

AX = 2526h
???

Return

        ???


INT 21 AX=252B

21 - FlashTek X-32VM - VIRTUAL MEMORY MANAGEMENT - PAGE LOCKING

AX = 252Bh
BH = function
    05h lock pages
    06h unlock pages
BL = address type
    00h linear address
ECX = linear start address of memory region
    01h segmented address
ES:ECX -> start of memory region
EDX = size of memory region in bytes

Return

        CF clear if successful
CF set on error

Note

     	if X-32 is not using virtual memory, this function always succeeds


INT 21 AX=2532

21 - FlashTek X-32VM - GET EXCEPTION HANDLER VECTOR

AX = 2532h
CL = exception number (00h-0Fh)

Return

        CF clear if successful
    ES:EBX = CS:EIP of current exception handler
CF set on error (CL > 0Fh)

SeeAlso

    INT 21 AX=2533


INT 21 AX=2533

21 - FlashTek X-32VM - SET EXCEPTION HANDLER VECTOR

AX = 2533h
CL = exception number (00h-0Fh)
DS:EDX = CS:EIP of new exception handler

Return

        CF clear if successful
CF set on error (CL > 0Fh)

SeeAlso

    INT 21 AX=2532


INT 21 AX=25C0

21 - Phar Lap 386/DOS-Extender - ALLOCATE MS-DOS MEMORY BLOCK

AX = 25C0h
BX = number of 16-byte paragraphs of MS-DOS memory requested

Return

        CF clear if successful
    AX = real-mode paragraph address of memory
CF set on error
    AX = error code
07h MS-DOS memory control blocks destroyed
08h insufficient memory
    BX = size in paragraphs of largest available memory block

SeeAlso

    INT 21 AX=25C1    INT 21 AX=25C2


INT 21 AX=25C1

21 - Phar Lap 386/DOS-Extender - RELEASE MS-DOS MEMORY BLOCK

AX = 25C1h
CX = real-mode paragraph address of memory block to free

Return

        CF clear if successful
    EAX destroyed
CF set on error
    AX = error code
07h MS-DOS memory control blocks destroyed
09h invalid memory block address in CX

SeeAlso

    INT 21 AX=25C0    INT 21 AX=25C2


INT 21 AX=25C2

21 - Phar Lap 386/DOS-Extender - MODIFY MS-DOS MEMORY BLOCK

AX = 25C2h
BX = new requested block size in paragraphs
CX = real-mode paragraph address of memory block to modify

Return

        CF clear if successful
    EAX destroyed
CF set on error
    AX = error code
07h MS-DOS memory control blocks destroyed
08h insufficient memory
09h invalid memory block address in CX
    BX = size in paragraphs of largest available memory block

SeeAlso

    INT 21 AX=25C0    INT 21 AX=25C1


INT 21 AX=25C3

21 - Phar Lap 386/DOS-Extender - EXECUTE PROGRAM

AX = 25C3h
ES:EBX -> pointer to parameter block (see below)
DS:EDX -> pointer to ASCIIZ program filename

Return

        CF clear if successful
    all registers unchanged
CF set on error
    EAX = error code
01h function code in AL is invalid ???
02h file not found or path invalid
05h access denied
08h insufficient memory to load program
0Ah environment invalid
0Bh invalid file format

Table Formats

Parameter block:


INT 21 AH=26

21 - DOS 1+ - CREATE NEW PROGRAM SEGMENT PREFIX

AH = 26h
DX = segment at which to create PSP (see below)

Notes

      	new PSP is updated with memory size information; INTs 22h, 23h, 24h
  taken from interrupt vector table
(DOS 2+) DOS assumes that the caller's CS is the segment of the PSP to
  copy

SeeAlso

    INT 21 AH=4B    INT 21 AH=50    INT 21 AH=51    INT 21 AH=55    INT 21 AH=62    INT 21 AH=67

Table Formats

PSP:
Environment block:


INT 21 AH=27

21 - DOS 1+ - RANDOM BLOCK READ FROM FCB FILE

AH = 27h
CX = number of records to read
DS:DX -> opened FCB (see AH=0Fh)

Return

        AL = status
    00h successful, all records read
    01h end of file, no data read
    02h segment wrap in DTA, no data read
    03h end of file, partial read
[DTA] = records read from file
CX = number of records read (return AL = 00h or 03h)

Notes

      	read begins at current file position as specified in FCB; the file
  position is updated after reading
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=21    INT 21 AH=28    INT 21 AH=3F


INT 21 AH=28

21 - DOS 1+ - RANDOM BLOCK WRITE TO FCB FILE

AH = 28h
CX = number of records to write
DS:DX -> opened FCB (see AH=0Fh)
[DTA] = records to write

Return

        AL = status
    00h successful
    01h disk full or file read-only
    02h segment wrap in DTA
CX = number of records written

Notes

      	write begins at current file position as specified in FCB; the file
  position is updated after writing
if CX = 0000h on entry, no data is written; instead the file size is
  adjusted to be the same as the file position specified by the random
  record and record size fields of the FCB
if the data to be written is less than a disk sector, it is copied into
  a DOS disk buffer, to be written out to disk at a later time
not supported by MS Windows 3.0 DOSX.EXE DOS extender

SeeAlso

    INT 21 AH=22    INT 21 AH=27    INT 21 AH=40    INT 21 AH=59


INT 21 AH=29

21 - DOS 1+ - PARSE FILENAME INTO FCB

AH = 29h
AL = parsing options
    bit 0: skip leading separators
    bit 1: use existing drive number in FCB if no drive is specified,
   instead of setting field to zero
    bit 2: use existing filename in FCB if no base name is specified,
   instead of filling field with blanks
    bit 3: use existing extension in FCB if no extension is specified,
   instead of filling field with blanks
    bits 4-7: reserved (0)
DS:SI -> filename string (both '*' and '?' wildcards OK)
ES:DI -> buffer for unopened FCB

Return

        AL = result code
    00h successful parse, no wildcards encountered
    01h successful parse, wildcards present
    FFh failed (invalid drive specifier)
DS:SI -> first unparsed character
ES:DI buffer filled with unopened FCB (see AH=0Fh)

Notes

      	asterisks expanded to question marks in the FCB
all processing stops when a filename terminator is encountered
cannot be used with filespecs which include a path (DOS 2+)

SeeAlso

    INT 21 AH=0F    INT 21 AH=16    INT 21 AH=26


INT 21 AH=2A

21 - DOS 1+ - GET SYSTEM DATE

AH = 2Ah

Return

        CX = year (1980-2099)
DH = month
DL = day
---DOS 1.10+---
AL = day of week (00h=Sunday)

SeeAlso

    INT 21 AH=2B"DOS"    INT 21 AH=2C    INT 21 AH=E7    INT 1A AH=04    INT 2F AX=120D


INT 21 AH=2B

21 - DOS 1+ - SET SYSTEM DATE

AH = 2Bh
CX = year (1980-2099)
DH = month
DL = day

Return

        AL = status
    00h successful
    FFh invalid date, system date unchanged

Note

     	DOS 3.3+ also sets CMOS clock

SeeAlso

    INT 21 AH=2A    INT 21 AH=2D    INT 1A AH=05


INT 21 AH=2B

21 - AI Architects - ??? - INSTALLATION CHECK

AH = 2Bh
CX = 4149h ('AI')
DX = 413Fh ('A?')

Return

        AL <> FFh if installed

Note

     	Borland's TKERNEL makes this call


INT 21 AH=2B

21 - PC Tools v5.x PC-Cache - INSTALLATION CHECK

AH = 2Bh
CX = 4358h ('CX')

Return

        AL = FFh if PC-Cache not installed
AL = 00h if installed
    CX = 6378h ('cx')
    BX = ???
    DX = ???

SeeAlso

    INT 16 AX=FFA5    /CX=1111


INT 21 AH=2B

21 - DESQview - INSTALLATION CHECK

AH = 2Bh
CX = 4445h ('DE')
DX = 5351h ('SQ')
AL = subfunction (DV v2.00+)
    01h get version
Return: BX = version (BH = major, BL = minor)
Note: early copies of v2.00 return 0002h
    02h get shadow buffer info, and start shadowing
Return: BH = rows in shadow buffer
BL = columns in shadow buffer
DX = segment of shadow buffer
    04h get shadow buffer info
Return: BH = rows in shadow buffer
BL = columns in shadow buffer
DX = segment of shadow buffer
    05h stop shadowing

Return

        AL = FFh if DESQview not installed

Notes

      	in DESQview v1.x, there were no subfunctions; this call only identified
  whether or not DESQview was loaded.  DESQview v2.52 performs function
  01h for all subfunction requests 0Ch and higher and appears to ignore
  all lower-numbered functions not listed here.
DESQview versions 2.5x are part of DESQview/X v1.0x.

BUG

    	subfunction 05h does not appear to work correctly in DESQview 2.52

SeeAlso

    INT 10 AH=FE    INT 10 AH=FF    INT 15 AX=1024    INT 15 AX=DE30


INT 21 AH=2B

21 - ELRES v1.1 - INSTALLATION CHECK

AH = 2Bh
CX = 454Ch ('EL')
DX = 5253h ('RS')

Return

        ES:BX -> ELRES history structure (see below)
DX = DABEh (signature, DAve BEnnett)

Note

     	ELRES is an MSDOS return code (errorlevel) recorder by David H. Bennett
  which stores recent errorlevel values, allows them to be retrieved
  for use in batch files, and can place them in an environment variable

SeeAlso

    INT 21 AH=4B"ELRES"    INT 21 AH=4D

Table Formats

ELRES history structure:


INT 21 AX=2B01

21 - TAME v2.10+ - INSTALLATION CHECK

AX = 2B01h
CX = 5441h ('TA')
DX = 4D45h ('ME')
---v2.60---
BH = ???
    00h skip ???, else do

Return

        AL = 02h if installed
ES:DX -> data area in TAME-RES (see below)

Note

     	TAME is a shareware program by David G. Thomas which gives up CPU time
  to other partitions under a multitasker when the current partition's
  program incessantly polls the keyboard or system time

Table Formats

TAME 2.10-2.20 data area:
TAME 2.30 data area:
TAME 2.60 data area:


INT 21 AX=2B44

21 - pcANYWHERE IV/LAN - INSTALLATION CHECK

AX = 2B44h ('D')
BX = 4D41h ('MA')
CX = 7063h ('pc')
DX = 4157h ('AW')

Return

        AX = 4F4Bh ('OK') if large host resident
   = 6F6Bh ('ok') if small host resident
CX:DX -> API entry point

SeeAlso

    INT 16 AH=79

Call API entry point with:
AX = 0000h get pcANYWHERE IV version
    DS:SI -> BYTE buffer for host type code
    Return: AH = version number
    AL = revision number
    DS:DI buffer byte filled with
00h full-featured host
01h limited-feature LAN host
other API may not be supported
AX = 0001h initialize operation
    DS:SI -> initialization request structure (see below)
    Return: AX = function status (see below)
AX = 0002h get status
    Return: AH = current operating mode (see init req structure below)
    AL = current connection status
bit 0: a physical connection is active
bit 1: remove screen updating is active
bit 2: connection checking is active
bit 3: hot key detection is active
bit 4: background file transfer is active
AX = 0003h suspend remote screen updates
    Return: AX = function status (see below)
AX = 0004h resume screen updates
    Return: AX = function status (see below)
AX = 0005h end current remote access session
    DS:SI -> termination request structure (see below)
    Return: AX = function status (see below)
AX = 0006h remove pcANYWHERE IV from memory
    Return: AX = status
0000h successful
FFD2h unable to release allocated memory
FFD1h unable to release interrupt vectors
AX = 8000h read data from communications channel
    DS:BX -> buffer
    CX = buffer size
    Return: AX >= number of characters read/available
    AX < 0 on error
AX = 8001h write data to communications channel
    DS:BX -> buffer
    CX = buffer size
    Return: AX >= number of characters written
    AX < 0 on error
AX = 8002h get connection status
    Return: AX = status
> 0000h if connection active
= 0000h if connection lost
< 0000h on error

Table Formats

Initialization request structure:
Termination request structure:
Values for function status:
 0000h function completed successfully
 FFF2h unable to establish a connection when operating mode is
"Initiate a call"
 FFF3h modem configuration is invalid (corrupt config)
 FFF4h modem initialization failed (no modem response)
 FFF5h the communications device could not be initialized
 FFF6h the host operator aborted the function
 FFF7h the communications driver type specified in the configuration file is
different than the one loaded when pcANYWHERE IV was initially started
 FFF9h the configuration file is invalid
 FFFAh the configuration file could not be found
 FFFBh no session is active
 FFFCh a remote access session is active
 FFFDh the specified operating mode is invalid


INT 21 AH=2C

21 - DOS 1+ - GET SYSTEM TIME

AH = 2Ch

Return

        CH = hour
CL = minute
DH = second
DL = 1/100 seconds

Note

     	on most systems, the resolution of the system clock is about 5/100sec,
  so returned times generally do not increment by 1
on some systems, DL may always return 00h

SeeAlso

    INT 21 AH=2A    INT 21 AH=2D    INT 21 AH=E7    INT 1A AH=00    INT 1A AH=02    INT 1A AH=FE

SeeAlso

    INT 2F AX=120D


INT 21 AH=2D

21 - DOS 1+ - SET SYSTEM TIME

AH = 2Dh
CH = hour
CL = minute
DH = second
DL = 1/100 seconds

Return

        AL = result
    00h successful
    FFh invalid time, system time unchanged

Note

     	DOS 3.3+ also sets CMOS clock

SeeAlso

    INT 21 AH=2B"DOS"    INT 21 AH=2C    INT 1A AH=01    INT 1A AH=03    INT 1A AH=FF"AT&T"


INT 21 AH=2E

21 - DOS 1+ - SET VERIFY FLAG

AH = 2Eh
DL = 00h (DOS 1.x/2.x only)
AL = new state of verify flag
    00h off
    01h on

Notes

      	default state at system boot is OFF
when ON, all disk writes are verified provided the device driver
  supports read-after-write verification

SeeAlso

    INT 21 AH=54


INT 21 AH=2F

21 - DOS 2+ - GET DISK TRANSFER AREA ADDRESS

AH = 2Fh

Return

        ES:BX -> current DTA

Note

     	under the FlashTek X-32 DOS extender, the pointer is in ES:EBX

SeeAlso

    INT 21 AH=1A


INT 21 AH=30

21 - DOS 2+ - GET DOS VERSION

AH = 30h
---DOS 5.0---
AL = what to return in BH
    00h OEM number (as for DOS 2.0-4.0x)
    01h version flag

Return

        AL = major version number (00h if DOS 1.x)
AH = minor version number
BL:CX = 24-bit user serial number (most versions do not use this)
---if DOS <5 or AL=00h---
BH = OEM number
    00h IBM
    05h Zenith
    16h DEC
    23h Olivetti
    29h Toshiba
    4Dh	Hewlett-Packard
    99h	STARLITE architecture (OEM DOS, NETWORK DOS, SMP DOS)
    FFh Microsoft, Phoenix
---if DOS 5.0 and AL=01h---
BH = version flag
    08h DOS is in ROM
    10h DOS is in HMA

Notes

      	the OS/2 v1.x Compatibility Box returns major version 0Ah (10)
the OS/2 v2.x Compatibility Box returns major version 14h (20)
the Windows/NT DOS box returns major version 1Eh (30)
DOS 4.01 and 4.02 identify themselves as version 4.00; use
  INT 21/AH=87h to distinguish between the original European MSDOS 4.00
  and the later PCDOS 4.0x and MSDOS 4.0x
generic MSDOS 3.30, Compaq MSDOS 3.31, and others identify themselves
  as PC-DOS by returning OEM number 00h
the version returned under DOS 4.0x may be modified by entries in
  the special program list (see AH=52h)
the version returned under DOS 5.0 may be modified by SETVER; use
  AX=3306h to get the true version number

SeeAlso

    INT 21 AX=3000    /BX=3000h    INT 21 AX=3306    INT 21 AX=4452    INT 21 AH=87    INT 15 AX=4900

SeeAlso

    INT 2F AX=122F    INT 2F AX=E002


INT 21 AH=30

21 - Phar Lap 386/DOS-Extender, Intel Code Builder - INSTALLATION CHECK

AH = 30h
EAX = 00003000h
EBX = 50484152h ("PHAR")

Return

        AL = major DOS version
AH = minor DOS version
EAX bits 31-16 = 4458h ('DX') if 386/DOS-extender installed
    BL = ASCII major version number
EAX bits 31-16 = 4243h ('BC') if Intel Code Builder installed
    EDX = address of GDA

SeeAlso

    INT 21 AX=2501    INT 21 AX=FF00    INT 2F AX=F100


INT 21 AH=30

21 - VIRUS - "Possessed" - INSTALLATION CHECK

AH = 30h
DX = ABCDh

Return

        DX = DCBAh if installed

SeeAlso

    INT 21 AX=0D20    INT 21 AX=30F1


INT 21 AX=3000

21 - CTask 2.0+ - INSTALLATION CHECK

AX = 3000h
BX = 1234h
DS:DX -> 8-byte version string (DX < FFF0h) "CTask21",00h for v2.1-2.2

Return

        AL = DOS major version
AH = DOS minor version
CX:BX -> Ctask global data block

Notes

      	if first eight bytes of returned data block equal eight bytes passed
  in, CTask is resident
CTask is a multitasking kernel for C written by Thomas Wagner


INT 21 AX=3000

21 - PC-MOS/386 v3.0 - INSTALLATION CHECK/GET VERSION

AX = 3000h
BX = 3000h
CX = DX = 3000h

Return

        AX = PC-MOS version

Program

         PC-MOS/386 is a multitasking/multiuser MSDOS-compatible operating
  system by Software Links, Inc.

SeeAlso

    INT 21 AH=30    INT 38 AH=02    INT 38 AH=10


INT 21 AX=30F1

21 - VIRUS - "Dutch-555"/"Quit 1992" - INSTALLATION CHECK

AX = 30F1h

Return

        AL = 00h if resident

SeeAlso

    INT 21 AH=30    /DX=ABCDh    INT 21 AX=330F


INT 21 AX=30FF

21 - DESQ??? - INSTALLATION CHECK

AX = 30FFh
CX = 4445h ("DE")
DX = 5351h ("SQ")

Return

        BH = 05h if installed
???

Note

     	called by DUBLDISK.COM v2.6; this function is not supported by
  DESQview, so it may be for DESQview's precursor DESQ.

SeeAlso

    INT 21 AX=4404"DUBLDISK"


INT 21 AH=31

21 - DOS 2+ - TERMINATE AND STAY RESIDENT

AH = 31h
AL = return code
DX = number of paragraphs to keep resident

Return

        never

Notes

      	the value in DX only affects the memory block containing the PSP;
  additional memory allocated via AH=48h is not affected
the minimum number of paragraphs which will remain resident is 11h
  for DOS 2.x and 06h for DOS 3+
most TSRs can save some memory by releasing their environment block
  before terminating (see AH=26h,AH=49h)

SeeAlso

    INT 21 AH=00    INT 21 AH=4C    INT 21 AH=4D    INT 20INT 22    INT 27


INT 21 AH=32

21 - DOS 2+ - GET DOS DRIVE PARAMETER BLOCK FOR SPECIFIC DRIVE

AH = 32h
DL = drive number (00h = default, 01h = A:, etc)

Return

        AL = status
    00h successful
DS:BX -> Drive Parameter Block (DPB) for specified drive
    FFh invalid or network drive

Notes

      	the OS/2 compatibility box supports the DOS 3.3 version of this call
  except for the DWORD at offset 12h
this call updates the DPB by reading the disk; the DPB may be accessed
  via the DOS list of lists (see AH=52h) if disk access is not
  desirable.
undocumented prior to the release of DOS 5.0; only the DOS 4+ version
  of the DPB has been documented, however

SeeAlso

    INT 21 AH=1F    INT 21 AH=52

Table Formats

DOS Drive Parameter Block:


INT 21 AH=33

21 - DOS 2+ - EXTENDED BREAK CHECKING

AH = 33h
AL = subfunction
    00h get current extended break state
Return: DL = current state, 00h = off, 01h = on
    01h set state of extended ^C/^Break checking
DL = 00h off, check only on character I/O functions
     01h on, check on all DOS functions

Note

     	under DOS 3.1+, this function does not use any of the DOS-internal and
  may thus be called at any time

SeeAlso

    INT 21 AX=3302


INT 21 AX=3302

21 - DOS 3.x+ internal - GET AND SET EXTENDED CONTROL-BREAK CHECKING STATE

AX = 3302h
DL = new state
     00h for OFF or 01h for ON

Return

        DL = old state of extended BREAK checking

Note

     	this function does not use any of the DOS-internal stacks and may thus
  be called at any time; one possible use is modifying Control-Break
  checking from within an interrupt handler or TSR

SeeAlso

    INT 21 AH=33


INT 21 AX=3305

21 - DOS 4+ - GET BOOT DRIVE

AX = 3305h

Return

        DL = boot drive (1=A:,...)

Notes

      	fully reentrant
NEC 9800-series PCs always call the boot drive A: and assign the other
  drive letters sequentially to the other drives in the system


INT 21 AX=3306

21 - DOS 5.0 - GET TRUE VERSION NUMBER

AX = 3306h

Return

       	BL = major version
BH = minor version
DL = revision (bits 2-0, all others 0)
DH = version flags
    bit 3: DOS is in ROM
    bit 4: DOS in in HMA

Notes

      	this function always returns the true version number, unlike AH=30h,
  whose return value may be changed with SETVER
because of the conflict from the CBIS PowerLAN redirector (see next
  entry), programs should check whether BH is less than 100 (64h)
  and BL is at least 5 before accepting the returned BX as the true
  version number; however, even this is not entirely reliable when
  that redirector is loaded
fully reentrant

BUG

    	DR-DOS 5.0 and 6.0 return CF set/AX=0001h for INT 21/AH=33h
  subfunctions other than 00h-02h and 05h, while MS-DOS returns AL=FFh
  for invalid subfunctions

SeeAlso

    INT 21 AH=30    INT 2F AX=112F


INT 21 AX=3306

21 - CBIS POWERLAN - NETWORK REDIRECTOR - ???

AX = 3306h

Return

        AX = 3306h
BL = ??? (usually 00h)
BH = ??? (usually 00h or FFh)

Note

     	unknown function, is in conflict with DOS 5.0 version call

SeeAlso

    INT 21 AX=3306"DOS"


INT 21 AX=330F

21 - VIRUS - "Burghofer" - INSTALLATION CHECK

AX = 330Fh

Return

        AL = 0Fh if resident (DOS returns AL=FFh)

SeeAlso

    INT 21 AX=30F1    INT 21 AX=33E0


INT 21 AX=33E0

21 - VIRUS - "Oropax" - INSTALLATION CHECK

AX = 33E0h

Return

        AL = E0h if resident (DOS returns AL=FFh)

SeeAlso

    INT 21 AX=330F    INT 21 AX=357F


INT 21 AH=34

21 - DOS 2+ - GET ADDRESS OF INDOS FLAG

AH = 34h

Return

        ES:BX -> one-byte InDOS flag

Notes

      	the value of InDOS is incremented whenever an INT 21 function begins
  and decremented whenever one completes
during an INT 28 call, it is safe to call some INT 21 functions even
  though InDOS may be 01h instead of zero
InDOS alone is not sufficient for determining when it is safe to
  enter DOS, as the critical error handling decrements InDOS and
  increments the critical error flag for the duration of the critical
  error.  Thus, it is possible for InDOS to be zero even if DOS is
  busy.
the critical error flag is the byte immediately following InDOS in
  DOS 2.x, and the byte BEFORE the InDOS flag in DOS 3+ (except COMPAQ
  DOS 3.0, where the critical error flag is located 1AAh bytes BEFORE
  the critical section flag)
For DOS 3.1+, an undocumented call exists to get the address of the
  critical error flag (see AX=5D06h)
this function was undocumented prior to the release of DOS 5.0.

SeeAlso

    INT 21 AX=5D06    INT 21 AX=5D0B    INT 15 AX=DE1F    INT 28


INT 21 AH=35

21 - DOS 2+ - GET INTERRUPT VECTOR

AH = 35h
AL = interrupt number

Return

        ES:BX -> current interrupt handler

SeeAlso

    INT 21 AH=25    INT 21 AX=2503


INT 21 AX=3501

21 P - FlashTek X-32VM - ALLOCATE PROTECTED-MODE SELECTOR

AX = 3501h

Return

        CF clear if successful
    BX = new selector
CF set on error (no more selectors available)

Note

     	the new selector will be an expand-up read/write data selector with
  undefined base and limit

SeeAlso

    INT 21 AX=3502    INT 31 AX=0000


INT 21 AX=3502

21 P - FlashTek X-32VM - DEALLOCATE PROTECTED-MODE SELECTOR

AX = 3502h
BX = selector

Return

        CF clear if successful
CF set on error (invalid selector)

Note

     	only selectors allocated via AX=3501h should be deallocated

SeeAlso

    INT 21 AX=3501    INT 31 AX=0001


INT 21 AX=3503

21 P - FlashTek X-32VM - SET SELECTOR BASE ADDRESS

AX = 3503h
BX = selector
ECX = base address

Return

        CF clear if successful
CF set on error (invalid selector)

SeeAlso

    INT 21 AX=3504    INT 21 AX=3505    INT 31 AX=0007


INT 21 AX=3504

21 P - FlashTek X-32VM - GET SELECTOR BASE ADDRESS

AX = 3504h
BX = selector

Return

        CF clear if successful
    ECX = absolute base address of selector
CF set on error (invalid selector)

SeeAlso

    INT 21 AX=3503    INT 31 AX=0006


INT 21 AX=3505

21 P - FlashTek X-32VM - SET SELECTOR LIMIT

AX = 3505h
BX = selector
ECX = desired limit

Return

        CF clear if successful
    ECX = actual limit set
CF set on error (no more selectors available)

Note

     	the limit will be rounded down to nearest 4K boundary if the requested
  limit is greater than 1MB

SeeAlso

    INT 21 AX=3503    INT 31 AX=0008


INT 21 AX=350A

21 P - FlashTek X-32VM - PHYSICAL ADDRESS MAPPING

AX = 350Ah
EBX = absolute physical address
ECX = size in bytes of area to map

Return

        CF clear if successful
CF set on error (insufficient memory or service refused by DPMI host)

Notes

      	should not make repeated calls for the same physical address
there is no provision for unmapping memory


INT 21 AX=350B

21 P - FlashTek X-32VM - UPDATE AND RETURN AVAILABLE FREE MEMORY

AX = 350Bh
DS = default selector for DS

Return

        CF clear
EAX = maximum amount of memory which can be allocated via AX=350Ch

SeeAlso

    INT 21 AX=350C


INT 21 AX=350C

21 P - FlashTek X-32VM - ALLOCATE A BLOCK OF MEMORY

AX = 350Ch
ECX = size of block in bytes
DS = default DS

Return

        CF clear if successful
    EAX = near pointer to new block
    EDX = new lowest legal value for stack
CF set on error (requested size not multiple of 4K)

SeeAlso

    INT 21 AX=350B    INT 21 AX=350D


INT 21 AX=350D

21 P - FlashTek X-32VM - RESERVE BLOCK OF MEMORY FOR 32-BIT STACK

AX = 350Dh
EBX = current ESP value
ECX = size of block in bytes
DS = default DS

Return

        CF clear if successful
    EBX = new value for ESP
    EDX = suggested new limit for SS
CF set on error

Note

     	this function should only be called once during initialization

SeeAlso

    INT 21 AX=350B    INT 21 AX=350C


INT 21 AX=357F

21 - VIRUS - "Agiplan"/"Month 4-6" - INSTALLATION CHECK

AX = 357Fh

Return

        DX = FFFFh if installed

SeeAlso

    INT 21 AX=33E0    INT 21 AX=3DFF


INT 21 AH=36

21 - DOS 2+ - GET FREE DISK SPACE

AH = 36h
DL = drive number (00h = default, 01h = A:, etc)

Return

        AX = FFFFh if invalid drive
else
    AX = sectors per cluster
    BX = number of free clusters
    CX = bytes per sector
    DX = total clusters on drive

Notes

      	free space on drive in bytes is AX * BX * CX
total space on drive in bytes is AX * CX * DX
"lost clusters" are considered to be in use
according to Dave Williams' MSDOS reference, the value in DX is
  incorrect for non-default drives after ASSIGN is run

SeeAlso

    INT 21 AH=1B    INT 21 AH=1C


INT 21 AX=3700

21 - DOS 2+ - "SWITCHAR" - GET SWITCH CHARACTER

AX = 3700h

Return

        AL = status
    00h successful
DL = current switch character
    FFh unsupported subfunction

Desc

     	Determine the character which is used to introduce command switches.
  This setting is ignored by DOS commands in version 4.0 and higher,
  but is honored by many third-party programs.

Notes

      	documented in some OEM versions of some releases of DOS
supported by OS/2 compatibility box
always returns DL=2Fh for DOS 5.0

SeeAlso

    INT 21 AX=3701


INT 21 AX=3701

21 - DOS 2+ - "SWITCHAR" - SET SWITCH CHARACTER

AX = 3701h
DL = new switch character

Return

        AL = status
    00h successful
    FFh unsupported subfunction

Notes

      	documented in some OEM versions of some releases of DOS
supported by OS/2 compatibility box
ignored by DOS 5.0

SeeAlso

    INT 21 AX=3700


INT 21 AH=37

21 - DOS 2.x and 3.3+ only - "AVAILDEV" - SPECIFY \DEV\ PREFIX USE

AH = 37h
AL = subfunction
    02h get availdev flag
Return: DL = 00h \DEV\ must precede character device names
   = nonzero \DEV\ is optional
    03h set availdev flag
DL = 00h	\DEV\ is mandatory
   = nonzero	\DEV\ is optional

Return

        AL = status
    00h successful
    FFh unsupported subfunction

Notes

      	all versions of DOS from 2.00 allow \DEV\ to be prepended to device
  names without generating an error even if the directory \DEV does
  not actually exist (other paths generate an error if they do not
  exist).
although DOS 3.3+ accepts these calls, they have no effect, and
  AL=02h always returns DL=FFh


INT 21 AH=38

21 - DOS 2+ - GET COUNTRY-SPECIFIC INFORMATION

AH = 38h
--DOS 2.x--
AL = 00h get current-country info
DS:DX -> buffer for returned info (see below)

Return

        CF set on error
    AX = error code (02h)
CF clear if successful
    AX = country code (MSDOS 2.11 only)
    buffer at DS:DX filled
--DOS 3+--
AL = 00h for current country
AL = 01h thru 0FEh for specific country with code <255
AL = 0FFh for specific country with code >= 255
   BX = 16-bit country code
DS:DX -> buffer for returned info (see below)

Return

       	CF set on error
    AX = error code (02h)
CF clear if successful
    BX = country code
    DS:DX buffer filled

SeeAlso

    INT 21 AH=65    INT 10 AX=5001    INT 2F AX=110C    INT 2F AX=1404

Table Formats

PCDOS 2.x country info:
MSDOS 2.x,DOS 3+ country info:
Values for country code:
 001h	United States
 002h	Canadian-French
 003h	Latin America
 01Fh	Netherlands
 020h	Belgium
 021h	France
 022h	Spain
 024h	Hungary (not supported by DR-DOS 5.0)
 026h	Yugoslavia (not supported by DR-DOS 5.0)
 027h	Italy
 029h	Switzerland
 02Ah	Czechoslovakia (not supported by DR-DOS 5.0)
 02Bh	Austria (DR-DOS 5.0)
 02Ch	United Kingdom
 02Dh	Denmark
 02Eh	Sweden
 02Fh	Norway
 030h	Poland (not supported by DR-DOS 5.0)
 031h	Germany
 037h	Brazil (not supported by DR-DOS 5.0)
 03Dh	International English [Australia in DR-DOS 5.0]
 051h	Japan (DR-DOS 5.0)
 052h	Korea (DR-DOS 5.0)
 15Fh	Portugal
 166h	Finland
 311h	Middle East (DR-DOS 5.0)
 3CCh	Israel (DR-DOS 5.0)


INT 21 AH=38

21 - DOS 3+ - SET COUNTRY CODE

AH = 38h
AL = 01h thru 0FEh for specific country with code <255
AL = FFh for specific country with code >= 255
   BX = 16-bit country code
DX = FFFFh

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Note

     	not supported by OS/2

SeeAlso

    INT 2F AX=1403


INT 21 AH=39

21 - DOS 2+ - "MKDIR" - CREATE SUBDIRECTORY

AH = 39h
DS:DX -> ASCIZ pathname

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (03h,05h) (see AH=59h)

Notes

      	all directories in the given path except the last must exist
fails if the parent directory is the root and is full
DOS 2.x-3.3 allow the creation of a directory sufficiently deep that
  it is not possible to make that directory the current directory
  because the path would exceed 64 characters
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=3A    INT 21 AH=3B    INT 21 AH=E2    /SF=0Ah    INT 2F AX=1103


INT 21 AH=3A

21 - DOS 2+ - "RMDIR" - REMOVE SUBDIRECTORY

AH = 3Ah
DS:DX -> ASCIZ pathname of directory to be removed

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (03h,05h,06h,10h) (see AH=59h)

Notes

      	directory must be empty (contain only '.' and '..' entries)
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=39    INT 21 AH=3B    INT 21 AH=E2    /SF=0Bh    INT 2F AX=1101


INT 21 AH=3B

21 - DOS 2+ - "CHDIR" - SET CURRENT DIRECTORY

AH = 3Bh
DS:DX -> ASCIZ pathname to become current directory (max 64 bytes)

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (03h) (see AH=59h)

Notes

      	if new directory name includes a drive letter, the default drive is
  not changed, only the current directory on that drive
changing the current directory also changes the directory in which
  FCB file calls operate
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=47    INT 2F AX=1105


INT 21 AH=3C

21 - DOS 2+ - "CREAT" - CREATE OR TRUNCATE FILE

AH = 3CH
CX = file attribute
    bit 0: read-only
1: hidden
2: system
3: volume label (ignored)
4: reserved, must be zero (directory)
5: archive bit
7: if set, file is shareable under Novell NetWare
DS:DX -> ASCIZ filename

Return

        CF clear if successful
    AX = file handle
CF set on error
    AX = error code (03h,04h,05h) (see AH=59h)

Notes

      	if a file with the given name exists, it is truncated to zero length
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=16    INT 21 AH=3D    INT 21 AH=5A    INT 21 AH=5B    INT 21 AH=93


INT 21 AH=3D

21 - DOS 2+ - "OPEN" - OPEN EXISTING FILE

AH = 3Dh
AL = access and sharing modes
    bits 2-0: access mode
000 read only
001 write only
010 read/write
    bit 3: reserved (0)
    bits 6-4: sharing mode (DOS 3+)
000 compatibility mode
001 "DENYALL" prohibit both read and write access by others
010 "DENYWRITE" prohibit write access by others
011 "DENYREAD" prohibit read access by others
100 "DENYNONE" allow full access by others
    bit 7: inheritance
if set, file is private to current process and will not be
  inherited by child processes
DS:DX -> ASCIZ filename
CL = attribute mask of files to look for (server call only)

Return

        CF clear if successful
    AX = file handle
CF set on error
    AX = error code (01h,02h,03h,04h,05h,0Ch) (see AH=59h)

Notes

      	file pointer is set to start of file
file handles which are inherited from a parent also inherit sharing
  and access restrictions
files may be opened even if given the hidden or system attributes
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=0F    INT 21 AH=3C    INT 21 AX=4301    INT 21 AX=5D00    INT 2F AX=1226

File sharing behavior:
  |	Second and subsequent Opens
 First	  |Compat  Deny	  Deny	 Deny	Deny
 Open	  |	   All	  Write	 Read	None
  |R W RW R W RW R W RW R W RW R W RW
 - - - - -| - - - - - - - - - - - - - - - - -
 Compat	R |Y Y Y  N N N	 1 N N	N N N  1 N N
W |Y Y Y  N N N	 N N N	N N N  N N N
RW|Y Y Y  N N N	 N N N	N N N  N N N
 - - - - -|
 Deny	R |C C C  N N N	 N N N	N N N  N N N
 All	W |C C C  N N N	 N N N	N N N  N N N
RW|C C C  N N N	 N N N	N N N  N N N
 - - - - -|
 Deny	R |2 C C  N N N	 Y N N	N N N  Y N N
 Write	W |C C C  N N N	 N N N	Y N N  Y N N
RW|C C C  N N N	 N N N	N N N  Y N N
 - - - - -|
 Deny	R |C C C  N N N	 N Y N	N N N  N Y N
 Read	W |C C C  N N N	 N N N	N Y N  N Y N
RW|C C C  N N N	 N N N	N N N  N Y N
 - - - - -|
 Deny	R |2 C C  N N N	 Y Y Y	N N N  Y Y Y
 None	W |C C C  N N N	 N N N	Y Y Y  Y Y Y
RW|C C C  N N N	 N N N	N N N  Y Y Y
Legend: Y = open succeeds, N = open fails with error code 05h
C = open fails, INT 24 generated
1 = open succeeds if file read-only, else fails with error code
2 = open succeeds if file read-only, else fails with INT 24


INT 21 AX=3DFF

21 - VIRUS - "JD-448" - INSTALLATION CHECK

AX = 3DFFh

Return

        AX = 4A44h if resident

SeeAlso

    INT 21 AX=357F    INT 21 AX=4203


INT 21 AH=3E

21 - DOS 2+ - "CLOSE" - CLOSE FILE

AH = 3Eh
BX = file handle

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (06h) (see AH=59h)

Note

     	if the file was written to, any pending disk writes are performed, the
  time and date stamps are set to the current time, and the directory
  entry is updated

SeeAlso

    INT 21 AH=10    INT 21 AH=3C    INT 21 AH=3D    INT 2F AX=1106    INT 2F AX=1227


INT 21 AH=3F

21 - DOS 2+ - "READ" - READ FROM FILE OR DEVICE

AH = 3Fh
BX = file handle
CX = number of bytes to read
DS:DX -> buffer for data

Return

        CF clear if successful
    AX = number of bytes actually read (0 if at EOF before call)
CF set on error
    AX = error code (05h,06h) (see AH=59h)

Notes

      	data is read beginning at current file position, and the file position
  is updated after a successful read
the returned AX may be smaller than the request in CX if a partial
  read occurred
if reading from CON, read stops at first CR
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=27    INT 21 AH=40    INT 21 AH=93    INT 2F AX=1108    INT 2F AX=1229


INT 21 AH=3F

21 - Turbo Debug HARDWARE BREAKPOINTS - READ STATUS BLOCK

AH = 3Fh
BX = handle for character device "TDHDEBUG"
CX = number of bytes to read
DS:DX -> buffer for status block (see below)

Return

        CF clear if successful
    AX = number of bytes actually read
CF set on error
    AX = error code (05h,06h) (see AH=59h)

SeeAlso

    INT 21 AH=40"Turbo Debug"

Table Formats

Status block:


INT 21 AH=3F

21 - PC/TCP IPCUST.SYS - READ CONFIGURATION DATA

AH = 3Fh
BX = handle for character device "$IPCUST"
CX = number of bytes to read
DS:DX -> buffer for configuration data (see below)

Return

        CF clear if successful
    AX = number of bytes actually read
CF set on error
    AX = error code (05h,06h) (see AH=59h)

Notes

      	if less than the entire data is read or written, the next read/write
  continues where the previous one ended; IOCTL calls AX=4402h and
  AX=4403h both reset the location at which the next operation starts
  to zero
the data pointer is also reset to zero if the previous read or write
  reached or exceeded the end of the data, when the current function
  is read and the previous was write, or vice versa

SeeAlso

    INT 21 AH=40"IPCUST"    INT 21 AX=4402"IPCUST"

Table Formats

Configuration data:


INT 21 AH=40

21 - DOS 2+ - "WRITE" - WRITE TO FILE OR DEVICE

AH = 40h
BX = file handle
CX = number of bytes to write
DS:DX -> data to write

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (05h,06h) (see AH=59h)

Notes

      	if CX is zero, no data is written, and the file is truncated or
  extended to the current position
data is written beginning at the current file position, and the file
  position is updated after a successful write
the usual cause for AX < CX on return is a full disk

BUG

    	a write of zero bytes will appear to succeed when it actually failed
  if the write is extending the file and there is not enough disk
  space for the expanded file (DOS 5.0); one should therefore check
  whether the file was in fact extended by seeking to 0 bytes from
  the end of the file (INT 21/AX=4202h/CX=0/DX=0)
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=28    INT 21 AH=3F    INT 21 AH=93    INT 2F AX=1109


INT 21 AH=40

21 - Turbo Debug HARDWARE BREAKPOINTS - SEND CMD TO HARDWARE BRKPNT DRIVER

AH = 40h
BX = handle for character device "TDHDEBUG"
CX = number of bytes to write
DS:DX -> hardware breakpoint command (see below)

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (05h,06h) (see AH=59h)

Note

     	results are retrieved by reading from the device

SeeAlso

    INT 21 AH=3F"Turbo Debug"

Table Formats

Hardware breakpoint commands:


INT 21 AH=40

21 - PC/TCP IPCUST.SYS - WRITE CONFIGURATION DATA

AH = 40h
BX = handle for character device "$IPCUST"
CX = number of bytes to write
DS:DX -> buffer for configuration data (AH=3Fh"IPCUST")

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (05h,06h) (see AH=59h)

Notes

      	if less than the entire data is read or written, the next read/write
  continues where the previous one ended; IOCTL calls AX=4402h and
  AX=4403h both reset the location at which the next operation starts
  to zero
the data pointer is also reset to zero if the previous read or write
  reached or exceeded the end of the data, when the current function
  is read and the previous was write, or vice versa

SeeAlso

    INT 21 AH=3F"IPCUST"    INT 21 AX=4402"IPCUST"


INT 21 AX=4000

21 - FARTBELL.EXE - INSTALLATION CHECK

AX = 4000h
BX = 0002h
CX = 0000h
DS:DX = 0000h:0000h

Return

        CF clear if installed
    AX = CS of resident code

Note

     	FARTBELL is a joke program by Guenther Thiele which makes various
  noises when programs output a bell

SeeAlso

    INT 21 AX=4001


INT 21 AX=4001

21 - FARTBELL.EXE - FORCE NOISE

AX = 4001h
BX = 0002h
CX = 0000h
DS:DX = 0000h:0000h

Note

     	FARTBELL is a joke program by Guenther Thiele which makes various
  noises when programs output a bell

SeeAlso

    INT 21 AX=4000


INT 21 AH=41

21 - DOS 2+ - "UNLINK" - DELETE FILE

AH = 41h
DS:DX -> ASCIZ filename (no wildcards, but see below)
CL = attribute mask for deletion (server call only, see below)

Return

        CF clear if successful
    AX destroyed (DOS 3.3) AL seems to be drive of deleted file
CF set on error
    AX = error code (02h,03h,05h) (see AH=59h)

Notes

      	(DOS 3.1+) wildcards are allowed if invoked via AX=5D00h, in which case
  the filespec must be canonical (as returned by AH=60h), and only
  files matching the attribute mask in CL are deleted
DOS does not erase the file's data; it merely becomes inaccessible
  because the FAT chain for the file is cleared
deleting a file which is currently open may lead to filesystem
  corruption.  Unless SHARE is loaded, DOS does not close the handles
  referencing the deleted file, thus allowing writes to a nonexistant
  file.
under DRDOS and DR Multiuser DOS, this function will fail if the file
  is currently open
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX

SeeAlso

    INT 21 AH=13    INT 21 AX=4301    INT 21 AX=5D00    INT 21 AH=60    INT 21 AX=F244    INT 2F AX=1113


INT 21 AX=4101

21 - SoftLogic Data Guardian - ???

AX = 4101h
DX = FFFEh

Return

        AX = 0000h if installed

Note

     	resident code sets several internal variables on this call


INT 21 AH=42

21 - DOS 2+ - "LSEEK" - SET CURRENT FILE POSITION

AH = 42h
AL = origin of move
    00h start of file
    01h current file position
    02h end of file
BX = file handle
CX:DX = offset from origin of new file position

Return

        CF clear if successful
    DX:AX = new file position in bytes from start of file
CF set on error
    AX = error code (01h,06h) (see AH=59h)

Notes

      	for origins 01h and 02h, the pointer may be positioned before the
  start of the file; no error is returned in that case, but subsequent
  attempts at I/O will produce errors
if the new position is beyond the current end of file, the file will
  be extended by the next write (see AH=40h)

SeeAlso

    INT 21 AH=24    INT 2F AX=1228


INT 21 AX=4203

21 - VIRUS - "Shake" - INSTALLATION CHECK

AX = 4203h

Return

        AX = 1234h if resident

SeeAlso

    INT 21 AX=3DFF    INT 21 AX=4243


INT 21 AX=4243

21 - VIRUS - "Invader" - INSTALLATION CHECK

AX = 4243h

Return

        AX = 5678h if resident

SeeAlso

    INT 21 AX=4203    INT 21 AX=4B04


INT 21 AX=4300

21 - DOS 2+ - GET FILE ATTRIBUTES

AX = 4300h
DS:DX -> ASCIZ filename

Return

        CF clear if successful
    CX = attributes (see AX=4301h)
    AX = CX (DR-DOS 5.0)
CF set on error
    AX = error code (01h,02h,03h,05h) (see AH=59h)

Note

     	under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX

SeeAlso

    INT 21 AX=4301    INT 21 AX=4310    INT 21 AH=B6    INT 2F AX=110F


INT 21 AX=4301

21 - DOS 2+ - "CHMOD" - SET FILE ATTRIBUTES

AX = 4301h
CX = new attributes
    bit 7: shareable (Novell NetWare)
6: unused
5: archive
4: directory
3: volume label
   execute-only (Novell NetWare)
2: system
1: hidden
0: read-only
DS:DX -> ASCIZ filename

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (01h,02h,03h,05h) (see AH=59h)

Notes

      	will not change volume label or directory attribute bits, but will
  change the other attribute bits of a directory (the directory
  bit must be cleared to successfully change the other attributes of a
  directory, but the directory will not be changed to a normal file as
  a result)
MSDOS 4.01 reportedly closes the file if it is currently open
for security reasons, the Novell NetWare execute-only bit can never
  be cleared; the file must be deleted and recreated
under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX

SeeAlso

    INT 21 AX=4300    INT 21 AX=4311    INT 2F AX=110E


INT 21 AX=4302

21 - DR-DOS 3.41+ internal - GET ACCESS RIGHTS

AX = 4302h
DS:DX -> ASCIZ pathname

Return

        CF clear if successful
    CX = access rights
bit 0 owner delete requires password
bit 1 owner execution requires password (FlexOS)
bit 2 owner write requires password
bit 3 owner read requires password
bit 4 group delete requires password
bit 5 group execution requires password (FlexOS)
bit 6 group write requires password
bit 7 group read requires password
bit 8 world delete requires password
bit 9 world execution requires password (FlexOS)
bit 10 world write requires password
bit 11 world read requires password
    AX = CX (DR-DOS 5.0)
CF set on error
    AX = error code

Desc

     	Determine which operations the calling program may perform on a
  specified file without being required to provide a password.

Notes

      	this protection scheme has been coordinated on all current Digital
  Research/Novell operating systems (DR-DOS 3.41+, DRMDOS 5.x, and
  FlexOS 2+)
only FlexOS actually uses the "execution" bits; DR-DOS 3.41+ treats
  them as "read" bits.
DR-DOS 3.41-5.x only use bits 0-3.  Only DR-DOS 6.0 using a
  DRMDOS 5.x security system allowing for users and groups uses bits
  4-11.

SeeAlso

    INT 21 AX=4303


INT 21 AX=4303

21 - DR-DOS 3.41+ internal - SET ACCESS RIGHTS AND PASSWORD

AX = 4303h
CX = access rights
     bits 11-0: access rights (see AX=4302h)
     bit 15: new password is to be set
DS:DX -> ASCIZ pathname
[DTA] = new password if CX bit 15 is set (blank-padded to 8 characters)

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	if the file is already protected, the old password must be added after
  the pathname, separated by a ";"

SeeAlso

    INT 21 AX=4302    INT 21 AX=4454


INT 21 AX=4304

21 - DR-DOS 5.0 internal - GET ???

AX = 4304h
???

Return

        CF clear if successful
    CX = AX = ???
CF set on error
    AX = error code (see AH=59h)

SeeAlso

    INT 21 AX=4305


INT 21 AX=4305

21 - DR-DOS 5.0 internal - SET ???

AX = 4305h
???

Return

        CF clear if successful
CF set on error
    AX = error code (see AH=59h)

SeeAlso

    INT 21 AX=4304


INT 21 AX=4310

21 - Banyan VINES 2.1+ - GET EXTENDED FILE ATTRIBUTES

AX = 4310h
DS:DX -> ASCIZ filename

Return

        CF clear if successful
    CH = attributes (see AX=4311h)
CF set on error
    AX = error code (01h,02h,03h,05h) (see AH=59h)

Note

     	the filename may be a directory but must be on a VINES file service

SeeAlso

    INT 21 AX=4300    INT 21 AX=4311    INT 21 AH=B6    INT 2F AX=110F


INT 21 AX=4311

21 - Banyan VINES 2.1+ - SET EXTENDED FILE ATTRIBUTES

AX = 4311h
CH = new attributes
    bit 7: unused
    bit 6: shareable
    bit 5: execute-only
    bits 4-0: unused
DS:DX -> ASCIZ filename

Return

        CF clear if successful
CF set on error
    AX = error code (01h,02h,03h,05h) (see AH=59h)

Note

     	the filename may be a directory but must be on a VINES file service

SeeAlso

    INT 21 AX=4301    INT 21 AX=4310    INT 2F AX=110E


INT 21 AX=4400

21 - DOS 2+ - IOCTL - GET DEVICE INFORMATION

AX = 4400h
BX = handle

Return

        CF clear if successful
    DX = device information word
character device
  14: device driver can process IOCTL requests (see AX=4402h)
  13: output until busy supported
  11: driver supports OPEN/CLOSE calls
   7: set (indicates device)
   6: EOF on input
   5: raw (binary) mode
   4: device is special (uses INT 29)
   3: clock device
   2: NUL device
   1: standard output
   0: standard input
disk file
  15: file is remote (DOS 3+)
  14: don't set file date/time on closing (DOS 3+)
  11: media not removable
   8: (DOS 4+) generate INT 24 if no disk space on write
   7: clear (indicates file)
   6: file has not been written
 5-0: drive number (0 = A:)
    AX destroyed
CF set on error
    AX = error code (01h,05h,06h) (see AH=59h)

Note

     	value in DH corresponds to high byte of device driver's attribute word
  if handle refers to a character device

SeeAlso

    INT 21 AX=4401    INT 2F AX=122B


INT 21 AX=4401

21 - DOS 2+ - IOCTL - SET DEVICE INFORMATION

AX = 4401h
BX = handle (must refer to character device)
DX = device information word (see AX=4400h)
    (DH must be zero)

Return

        CF clear if successful
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4400    INT 2F AX=122B


INT 21 AX=4402

21 - DOS 2+ - IOCTL - READ FROM CHARACTER DEVICE CONTROL CHANNEL

AX = 4402h
BX = file handle referencing character device
CX = number of bytes to read
DS:DX -> buffer

Return

        CF clear if successful
    AX = number of bytes actually read
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	format of data is driver-specific (see below for some specific cases)

SeeAlso

    INT 21 AX=4400    INT 21 AX=4403    INT 21 AX=4404    INT 2F AX=122B


INT 21 AX=4402

21 - Network Driver Interface Spec 2.0.1 - PROTOCOL MANAGER

AX = 4402h
BX = file handle for device "PROTMAN$"
DS:DX -> request block (see below)
CX = 000Eh (size of request block)

Table Formats

Request block for GetProtocolManagerInfo:
Request block for RegisterModule:
Request block for BindAndStart:
Request block for GetProtocolManagerLinkage:
Request block for GetProtocolIniPath:
Request block for RegisterProtocolManagerInfo:
Request block for InitAndRegister:
Request block for UnbindAndStop:
Request block for BindStatus:
Request block for RegisterStatus:
Values of status code:
 0000h success
 0001h wait for release--protocol has retained control of the data buffer
 0002h request queued
 0003h frame not recognized
 0004h frame rejected
 0005h frame should be forwarded
 0006h out of resource
 0007h invalid parameter
 0008h invalid function
 0009h not supported
 000Ah hardware error
 000Bh transmit error
 000Ch unrecognized destination
 000Dh buffer too small
 0020h already started
 0021h binding incomplete
 0022h driver not initialized
 0023h hardware not found
 0024h hardware failure
 0025h configuration failure
 0026h interrupt conflict
 0027h MAC incompatible
 0028h initialization failed
 0029h no binding
 002Ah network may be disconnected
 002Bh incompatible OS version
 002Ch already registered
 002Dh path not found
 002Eh insufficient memory
 002Fh info not found
 00FFh general failure
 F000h-FFFFh reserved for vendor-specific codes, treated as general failure

Common characteristics table:
MAC Service-Specific Characteristics Table:
NetBIOS Service-Specific Characteristics Table
MAC Service-Specific Status Table:


INT 21 AX=4402

21 U - IBM SYSTEM 36/38 WORKSTATION EMULATION - VDI.SYS - GET ???

AX = 4402h
BX = handle for character device "GDMS"
CX = number of bytes to read (>= 4)
DS:DX -> buffer (see below)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    AX = number of bytes read

Table Formats

Returned data:


INT 21 AX=4402

21 U - LASTBYTE.SYS v1.19 - IOCTL - GET ??? TABLE

AX = 4402h
BX = handle for device "LA$TBYTE"
CX = 0004h
DS:DX -> DWORD to hold address of 39-byte table of ???

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    AX = number of bytes read

Note

     	LASTBYTE.SYS is part of "The Last Byte" by Key Software Products

SeeAlso

    INT 21 AX=4402"HIGHUMM"


INT 21 AX=4402

21 - HIGHUMM.SYS v1.17+ - IOCTL - GET API ADDRESS

AX = 4402h
BX = handle for device "KSP$UMM"
CX = 0004h
DS:DX -> DWORD to hold entry point

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    AX = number of bytes read

Note

     	HIGHUMM.SYS is part of "The Last Byte" by Key Software Products

SeeAlso

    INT 21 AX=4402"LASTBYTE"

Call HIGHUMM.SYS entry point with:
AH = 00h allocate UMB (same as XMS function 10h) (see INT 2F/AX=4310h)
    DX = size in paragraphs
    Return: BX = segment number (if successful)
    DX = size of requested block/size of largest block
AH = 01h deallocate UMB (same as XMS func 11h) (see INT 2F/AX=4310h)
    DX = segment number of UMB
AH = 02h request a bank-switched memory block
    DX = size in paragraphs
    Return: BX = segment number (if successful)
    DX = size of requested block/size of largest block
AH = 03h release a bank-switched memory block
    DX = segment number
AH = 04h transfer data to/from high memory
    DS:SI -> source
    ES:DI -> destination
    CX = length in bytes
    Note: enables bank-switched memory, does the copy, then disables
bank-switched memory
AH = 05h get a word from bank-switched memory
    ES:DI -> word to read
    Return: DX = word
AH = 06h put a word to bank-switched memory
    ES:DI -> word to write
    DX = word
AH = 07h put a byte to bank-switched memory
    ES:DI -> byte to write
    DL = byte
AH = 08h enable bank-switched memory
    DS:SI -> 6-byte status save area
AH = 09h disable bank-switched memory
    DS:SI -> 6-byte save area from enable call (AH=08h)
AH = 0Ah assign name to UMB or high bank-switched block
    DX = segment number
    DS:SI -> 8-byte blank-padded name
AH = 0Bh locate UMB block by name
    DS:SI -> 8-byte blank-padded name
    Return: BX = segment number (if successful)
    DX = size of block
AH = 0Ch locate bank-switched block by name
    DS:SI -> 8-byte blank-padded name
    Return: BX = segment number (if successful)
    DX = size of block

Return

        AX = status code
    0001h successful
    0000h failed
BL = error code
    80h not implemented
    B0h insufficient memory, smaller block available
    B1h insufficient memory, no blocks available
    B2h invalid segment number

Note

     	only functions 00h and 01h are always available; the remaining
  functions are only enabled if the proper commandline switch is given


INT 21 AX=4402

21 - SMARTDRV.SYS - IOCTL - GET CACHE STATUS

AX = 4402h
BX = file handle for device "SMARTAAR"
CX = number of bytes to read (min 28h)
DS:DX -> buffer for status record (see below)

Return

        CF clear if successful
    AX = number of bytes actually read
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4403"SMARTDRV"    INT 2F AX=4A10

Table Formats

SMARTDRV status record:


INT 21 AX=4402

21 - CD-ROM device driver - IOCTL INPUT

AX = 4402h
BX = file handle referencing character device for CD-ROM driver
CX = number of bytes to read
DS:DX -> control block (see below)

Return

        CF clear if successful
    AX = number of bytes actually read
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	the data returned depends on the first byte of the control block; the
  remainder of the control block is filled by the driver

SeeAlso

    INT 21 AX=4403"CD-ROM"    INT 2F AX=0802

Table Formats

Control block:


INT 21 AX=4402

21 U - Quarterdeck - QEMM-386 v5+ - GET API ENTRY POINT

AX = 4402h
BX = file handle for device "QEMM386$"
CX = 0004h
DS:DX -> DWORD buffer for API entry point

Return

        CF clear if successful
    buffer filled (see INT 67/AH=3Fh for entry point parameters)
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4402"HOOKROM"    INT 2F AX=D201    /BX=5145h    INT 67 AH=3F


INT 21 AX=4402

21 U - Quarterdeck - QEMM-386 v6+ - GET ???

AX = 4402h
BX = file handle for device "EMMXXXX0"
CX = 0006h (size of buffer in bytes)
DS:DX -> buffer for ???
first byte must be 01h on entry

Return

        CF clear if successful
    buffer filled (see INT 67/AH=3Fh function 1B00h)
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	this call always returns an error if Windows3 support has been disabled
  with the NW3 switch to QEMM386.SYS

SeeAlso

    INT 2F AX=D201    /BX=5145h    INT 67 AH=3F


INT 21 AX=4402

21 U - Quarterdeck - HOOKROM.SYS - GET HOOKED VECTOR TABLE

AX = 4402h
BX = file handle for device "HOOKROM$"
CX = 0004h
DS:DX -> DWORD buffer for address of hooked vector table (see below)

Return

        CF clear if successful
    DS:DX buffer filled
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4402"QEMM"

Table Formats

Hooked vector table entry:


INT 21 AX=4402

21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE

AX = 4402h
BX = file handle for device "SCSIMGR$"
CX = 0004h
DS:DX -> buffer for function address

Return

        CF clear if successful
    AX = 0004h
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	the function address is called with the address of a SCSI Request
  Block on the stack and the caller must clean up the stack

SeeAlso

    INT 21 AX=440C"ASPITAPE"    INT 11 AH=FF"WD7000"

Table Formats

SCSI Request Block (64 bytes):
CCB:


INT 21 AX=4402

21 U - Qualitas 386MAX v6.00+ - IOCTL INPUT - GET STATE

AX = 4402h
BX = file handle for device "386MAX$$"
CX = 005Ah
DS:DX -> 386MAX state buffer (see below)

Return

        CF clear if successful
    buffer filled
    AX = number of bytes actually copied
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Notes

      	the buffer must be one byte larger than the value given in CX; if the
  value is less than 5Ah, only a partial state record will be returned
the state is 40h bytes for 386MAX (actually ASTEMM) v2.20 ("386MAX$$"
  did not exist yet, use "QMMXXXX0" and then "EMMXXXX0" instead) and
  56h bytes for v5.11.
to invoke 386MAX API functions, push DX onto the stack, load DX with
  the word at offset 25h in the returned state, load all other
  registers as needed for the desired function, and execute an
  OUT DX,AL or OUT DX,AX; DX will be set to the pushed value on return
  if it is not otherwise modified by the API function.

SeeAlso

    INT 21 AX=4403"386MAX"    INT 67 AH=3F

Table Formats

386MAX v6.01 state:
High memory info record:
ROM shadowing record:
Values for memory type:
 00h unused by EMS
 01h DOS
 04h page frame overlapping ROM???
 80h high memory
 84h page frame???
 87h video ROM???

Note

     	the type may be 00h (unused) if the 16K page is split among different
  uses (such as ROM and high RAM)

Call 386MAX API (via OUT DX,AL) with:
STACK: WORD value for DX
AH = 01h get high memory information
ES:DI -> buffer for array of high memory info records
(see above)
Return: CX = number of records placed in buffer
AH = 02h get shadowed ROM info???
ES:DI -> buffer for array of ROM shadowing records (see above)
Return: CX = number of records placed in buffer
AH = 03h get 386MAX state
ES:DI -> 90-byte buffer for state (see above)
Return: AH = 00h (successful)
buffer filled
Note:	unlike INT 21/AX=4402h"386MAX", this function omits
  the first byte specifying the state buffer version
AH = 04h get memory types???
ES:DI -> buffer for memory type info (array of bytes, one per
16K page) (see above)
Return:	CX = number of bytes placed in buffer
AH = 05h get ???
AL = subfunction
    00h invoke INT 15/AX=2401h first
    01h don't invoke INT 15/AX=2401h first
CX = number of bytes to copy (0000h for default)
SI = ???
ES:DI -> buffer for ???
Return: CX = number of bytes actually copied
???
AH = 06h get memory speed info
ES:DI -> buffer for memory speed records (see below)
Return: AH = 00h (successful)
CX = number of bytes placed in buffer
Note:	this function can take over a second to execute
AH = 07h ???
???
Return:	???
AH = 08h ???
AL = ??? (00h or nonzero)
AH = 09h toggle ??? flags
BX = bitmask of bits of ??? flags (word at state+11h) to toggle
Return: AH = 00h (successful)
Note: invokes INT 15/AX=2401h first
AH = 0Ah toggle ??? flags
BX = bitmask of bits of ??? (word at state+33h) to toggle
Return: AH = 00h (successful)
Notes:	invokes INT 15/AX=2401h first
does ??? if bit 3 on after specified bits are toggled
AH = 0Bh toggle ??? flags
BX = bitmask of bits of ??? (word at state+35h) to toggle
Return: AH = 00h (successful)
Note: invokes INT 15/AX=2401h first
AH = 0Ch toggle ??? flags
BX = bitmask of bits of ??? (word at state+41h) to toggle
Return: AH = 00h (successful)
Note: invokes INT 15/AX=2401h first
AH = 0Dh specify 386MAX high-memory location
BX = segment address of high-memory real-mode portion of 386MAX
???
Return: AH = status (00h successful)
???
AH = 0Eh CRT controller register virtualization
AL = subfunction
    00h allow access to CRTC I/O ports 03B4h/03B5h, 03D4h/03D5h
    01h trap accesses to CRTC I/O ports
AH = 0Fh reboot system
Return: never
AH = 11h get high memory information
ES:DI -> 96-byte buffer for high memory info
Return: AH = 00h (successful)
ES:DI buffer filled
Notes:	each byte in buffer contains bit flags for a 4K page in
  the A000h-FFFFh region
bit 0: ???
bit 1: physical address same as linear address
bit 2: EMS page frame
bit 6: ???
this function can take over a second to execute
AH = 12h ???
AL = subfunction
    00h ???
    01h ???
???
Return: AH = 00h (successful) if AL=00h or 01h
AH = 8Fh otherwise
AH = 13h page protection???
AL = subfunction
    00h set all ??? 4K pages to read-only???
    01h set all ??? 4K pages to read-write???
???
Return: AH = 00h (successful) if AL=00h or 01h
AH = 8Fh otherwise
AH = 15h ???
???
Return: ???
AH = 16h get 386MAX memory usage screen
ES:DI -> buffer for memory info display
CX = size of buffer in bytes
Return:	ES:DI buffer filled with '$'-terminated string (if
large enough to hold entire usage screen)
AH = 17h Windows 3 startup/termination
AL = subfunction
    00h Windows3 initializing
DX (on stack) = Windows startup flags
DI = Windows version number (major in upper byte)
ES:BX = 0000h:0000h
DS:SI = 0000h:0000h
Return: CX = 0000h if OK for Windows to load
   <> 0 if Windows should not load
ES:BX -> startup info structure
DS:SI -> Virtual86 mode enable/disable callback
    01h Windows3 terminating
ES:BX -> ???
DX (on stack) = Windows exit flags
Return: ???
AH = 18h QPMS (Qualitas Protected Memory Services)
AL = subfunction
    00h get QPMS configuration
Return: BX = starting segment of QPMS memory window
CX = number of 4K pages reserved for QPMS???
DX = number of 4K pages in QPMS window???
    01h map QPMS memory page???
BX = 4K page number within memory reserved for QPMS???
CL = 4K page number within QPMS memory window???
    02h mark all QPMS memory read-only
    03h mark all QPMS memory read-write
Return: AH = status (00h,8Ah,8Bh,8Fh)
AH = 19h get linear address for physical address
EDX = physical address (low word on stack)
Return: AH = status
    00h successful
EDX = linear address at which physical address
may be accessed
    8Bh physical address currently not addressable
Note: calls INT 15/AX=2401h first
AH = 1Ah set page table entry???
EDX = new page table entry??? (low word on stack)
ESI = linear address of page???
Return: AH = status (00h,8Bh)
Note: calls INT 15/AX=2401h first
AH = 1Bh get ???
Return: AH = status
BX = ???
CX = ???
EDX = physical address of ???
AH = 1Ch get original interrupt vector
AL = interrupt vector (00h-7Fh)
Return: AH = 00h (successful)
EDX = original vector before 386MAX loaded (segment in
high word, offset in low word)
Note:	no range checking is performed; requests for INTs 80h-
  FFh will return random values
AH = 1Dh display string???
SI = ???
Return: AH = 00h (successful)
???
AH = 1Eh ???
ES:DI -> ???
???
Return: ???
AH = 1Fh ???
???
Return: AX = 0000h if successful
BX = ??? (0001h for 386MAX v6.01)
CL = ???
DL = ??? (5Ah for 386MAX v6.01)
DH = ??? (00h for 386MAX v6.01)
SI = ???
ES???:DI -> ???
AH = 40h-5Dh EMS services (see INT 67/AH=40h etc)
AH = DEh VCPI services (see INT 67/AX=DE00h etc)

Return

        AH = status (as for EMS INT 67 calls)
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h	undefined function
    8Ah invalid logical page nuber
    8Bh illegal physical page number
    8Fh undefined subfunction
    A4h access denied
    etc.
STACK popped (value placed in DX if no specific return value for DX)

Memory speed record:


INT 21 AX=4402

21 - PGS1600.DEV - IOCTL - GET CONFIGURATION INFO

AX = 4402h
BX = file handle for device "PGS1600$"
CX = 0018h (size of buffer)
DS:DX -> configuration buffer (see below)

Return

        CF clear if successful
    buffer filled
    AX = number of bytes actually copied
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	PGS1600.DEV is a device driver for the Cornerstone Technology PG1600
  display adapter, which provides a 1600x1200 monochrome display as
  well as one of two emulations, MDA or CGA.

SeeAlso

    INT 21 AX=4403"PGS1600"

Table Formats

Configuration information:


INT 21 AX=4402

21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER

AX = 4402h
BX = file handle referencing device "$IPCUST"
CX, DS:DX ignored

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	there are a total of 378h bytes of configuration data for IPCUST.SYS
  version 2.05.	 If less than the entire data is read or written,
  the next read/write continues where the previous one ended; this
  call and AX=4403h both reset the location at which the next
  operation starts to zero

SeeAlso

    INT 21 AH=3F"IPCUST"    INT 21 AH=40"IPCUST"    INT 21 AX=4403"IPCUST"


INT 21 AX=4402

21 - 10NET v5.0 - 10BEUI.DOS - API

AX = 4402h
BX = file handle referencing device "10BEUI$"
DS:DX -> parameter record (see below)
CX ignored

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4402"10MEMMGR"    INT 6F AH=00"10NET"

Table Formats

Parameter record:


INT 21 AX=4402

21 - 10NET v5.0 - 10MEMMGR.SYS - API

AX = 4402h
BX = file handle referencing device "MEMMGR0$"
DS:DX -> 6-byte buffer for interface info (see below)
CX ignored

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4402"10BEUI"    INT 6F AH=00"10NET"

Table Formats

Interface info:
Call entry point with:
AL = 01h ???
    BX = ???
    Return: CF clear if successful
    CF set on error
AX = error code
AL = 02h ???
    ???
AL = 03h ???
    ???
AL = 04h set/restore memory allocation strategy
    BX = subfunction
0000h set strategy
0001h restore strategy
    Return: CF clear if successful
    CF set on error (if function disabled)
    various registers destroyed
AL = other
    Return: CF set
    AX = 0000h
    BL = 01h


INT 21 AX=4403

21 - DOS 2+ - IOCTL - WRITE TO CHARACTER DEVICE CONTROL CHANNEL

AX = 4403h
BX = file handle referencing character device
CX = number of bytes to write
DS:DX -> data to write

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Notes

      	format of data is driver-specific (see below for some specific cases)
if the file handle refers to "4DOSSTAK", the 4DOS (v2.x-3.03)
  KEYSTACK.SYS driver will push the specified characters on the
  keyboard stack; similarly for "NDOSSTAK", the NDOS KEYSTACK.SYS
  driver will push the characters onto the keyboard stack

SeeAlso

    INT 21 AX=4400    INT 21 AX=4402    INT 21 AX=4405    INT 2F AX=122B    INT 2F AX=D44D

SeeAlso

    INT 2F AX=D44F


INT 21 AX=4403

21 - SMARTDRV.SYS - IOCTL - CACHE CONTROL

AX = 4403h
BX = handle for device "SMARTAAR"
CX = number of bytes to write
DS:DX -> SMARTDRV control block (see below)

Return

        CF clear if successful
    AX = number of bytes actually written
       = 0000h if control block too small for given command
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4402"SMARTDRV"    INT 2F AX=4A10

Table Formats

SMARTDRV control block:


INT 21 AX=4403

21 - CD-ROM device driver - IOCTL OUTPUT

AX = 4403h
BX = file handle referencing character device for CD-ROM driver
CX = number of bytes to write
DS:DX -> control block (see below)

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4402"CD-ROM"    INT 2F AX=0802

Table Formats

Control block:


INT 21 AX=4403

21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS

AX = 4403h
BX = handle for device "SCSITAPE"
CX = number of bytes to write
DS:DX -> SCSITAPE control block (see below)

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4405"ST-01"    INT 78 AH=10

Table Formats

SCSITAPE control block:


INT 21 AX=4403

21 U - AI Architects - OS/x86??? - API

AX = 4403h
BX = handle for device "AIA_OS"
CX = number of bytes to write (ignored)
DS:DX -> 12-byte buffer, first byte is command:
81h installation check
82h get API entry point
84h uninstall

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Ch,0Dh) (see AH=59h)

Notes

      	these functions are only available if the DOS extender was loaded as a
  device driver in CONFIG.SYS
called by TKERNEL (a licensed version of AI Architects/Ergo OS/x86)

SeeAlso

    INT 2F AX=FBA1    /BX=0081h    INT 2F AX=FBA1    /BX=0082

Table Formats

Buffer on return:


INT 21 AX=4403

21 U - Qualitas 386MAX v6.01 - SET STATE

AX = 4403h
BX = handle for device "386MAX$$"
CX = number of bytes to copy (up to 5Ah)
DS:DX -> 386MAX state buffer (see AX=4402h"386MAX")

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	the first byte of the buffer must be either 01h, 02h, or 03h
  (specifying the version of the state record) and the buffer must
  contain CX bytes AFTER the initial byte

SeeAlso

    INT 21 AX=4402"386MAX"


INT 21 AX=4403

21 - PGS1600.DEV - IOCTL - SET CONFIGURATION???

AX = 4403h
BX = file handle for device "PGS1600$"
CX = 0018h (size of buffer)
DS:DX -> configuration buffer (see AX=4402h"PGS1600")

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	PGS1600.DEV is a device driver for the Cornerstone Technology PG1600
  display adapter, which provides a 1600x1200 monochrome display as
  well as one of two emulations, MDA or CGA.

SeeAlso

    INT 21 AX=4402"PGS1600"


INT 21 AX=4403

21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER

AX = 4403h
BX = file handle referencing device "$IPCUST"
CX, DS:DX ignored

Return

        CF clear if successful
    AX destroyed
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	there are a total of 378h bytes of configuration data for IPCUST.SYS
  version 2.05.	 If less than the entire data is read or written,
  the next read/write continues where the previous one ended; this
  call and AX=4402h both reset the location at which the next
  operation starts to zero

SeeAlso

    INT 21 AH=3F"IPCUST"    INT 21 AH=40"IPCUST"    INT 21 AX=4402"IPCUST"


INT 21 AX=4404

21 - DOS 2+ - IOCTL - READ FROM BLOCK DEVICE CONTROL CHANNEL

AX = 4404h
BL = drive number (00h = default, 01h = A:, etc.)
CX = number of bytes to read
DS:DX -> buffer

Return

        CF clear if successful
    AX = number of bytes actually read
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	format of data is driver-specific

SeeAlso

    INT 21 AX=4402    INT 21 AX=4405    INT 2F AX=122B


INT 21 AX=4404

21 - Stacker - GET DEVICE DRIVER ADDRESS AND SET VOLUME NUMBER

AX = 4404h
CX = 0004h
BL = drive number (00h = default, 01h = A:, etc.)
DS:DX -> DWORD buffer to receive device driver address

Note

     	In addition to returning the address of the Stacker device driver,
  this call also sets the volume number at offset 3Eh in the device
  driver (see INT 25/AX=CDCDh)

SeeAlso

    INT 25 AX=CDCD


INT 21 AX=4404

21 - Stacker - GET STACVOL FILE SECTORS

AX = 4404h
BL = drive number (0 is current drive)
CX = byte count (i.e., 200h = 1 sector)
DS:DX -> buffer (see below)

Return

       	Data Buffer contains the number of sectors requested from the
  STACVOL physical file for the drive specified.

Table Formats

Stacker buffer:


INT 21 AX=4404

21 - DUBLDISK.SYS v2.6 - GET INFO

AX = 4404h
BL = drive number of DoubleDisk drive (00h = default, 01h = A:, etc.)
CX = number of bytes (000Ah-0014h, call ignored otherwise)
DS:DX -> data record (see below)

Return

        CF clear if successful
    AX = number of bytes read
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Program

         DUBLDISK.SYS is the device driver portion of DoubleDisk, a disk
  expander by Vertisoft Systems, Inc.

Note

     	the installation check consists of scanning memory for the signature
  "FAT 2.6  byte:", which is immediately followed by a data table

SeeAlso

    INT 21 AX=440D

Table Formats

Data record:
Signature data table:


INT 21 AX=4405

21 - DOS 2+ - IOCTL - WRITE TO BLOCK DEVICE CONTROL CHANNEL

AX = 4405h
BL = drive number (00h = default, 01h = A:, etc)
CX = number of bytes to write
DS:DX -> data to write

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	format of data is driver-specific

SeeAlso

    INT 21 AX=4403    INT 21 AX=4404    INT 2F AX=122B


INT 21 AX=4405

21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS

AX = 4405h
BX = drive number (00h = default, 01h = A:, etc)
CX = number of bytes to write
DS:DX -> SCSIDISK control block (see AX=4403h"ST-01")

Return

        CF clear if successful
    AX = number of bytes actually written
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

SeeAlso

    INT 21 AX=4403"ST-01"


INT 21 AX=4406

21 - DOS 2+ - IOCTL - GET INPUT STATUS

AX = 4406h
BX = file handle

Return

        CF clear if successful
    AL = input status
00h not ready (device) or at EOF (file)
FFh ready
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	files may not register as being at EOF if positioned there by AH=42h

SeeAlso

    INT 21 AX=4407    INT 2F AX=122B


INT 21 AX=4407

21 - DOS 2+ - IOCTL - GET OUTPUT STATUS

AX = 4407h
BX = file handle

Return

        CF clear if successful
    AL = input status
00h not ready
FFh ready
CF set on error
    AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note

     	for DOS 2+, files are always ready for output, even if the disk is
  full or no media is in the drive

SeeAlso

    INT 21 AX=4406    INT 2F AX=122B


INT 21 AX=4408

21 - DOS 3.0+ - IOCTL - CHECK IF BLOCK DEVICE REMOVABLE

AX = 4408h
BL = drive number (00h = default, 01h = A:, etc)

Return

        CF clear if successful
    AX = 0000h if removable
       = 0001h if fixed
CF set on error
    AX = error code (01h,0Fh) (see AH=59h)

SeeAlso

    INT 21 AX=4400    INT 21 AX=4409    INT 2F AX=122B


INT 21 AX=4409

21 - DOS 3.1+ - IOCTL - CHECK IF BLOCK DEVICE REMOTE

AX = 4409h
BL = drive number (00h = default, 01h = A:, etc)

Return

        CF clear if successful
    DX = device attribute word
bit 15: drive is SUBSTituted
bit 12: drive is remote
bit  9: direct I/O not allowed
CF set on error
    AX = error code (01h,0Fh) (see AH=59h)

Note

     	on local drives, DX bits not listed above are the attribute word from
  the device driver header (see AH=52h); for remote drives, the other
  bits appear to be undefined

SeeAlso

    INT 21 AX=4400    INT 21 AX=4408    INT 21 AX=440A    INT 2F AX=122B


INT 21 AX=440A

21 - DOS 3.1+ - IOCTL - CHECK IF HANDLE IS REMOTE

AX = 440Ah
BX = handle

Return

        CF clear if successful
    DX = attribute word (as stored in SFT)
bit 15: set if remote
bit 14: date/time not set on close
CF set on error
    AX = error code (01h,06h) (see AH=59h)

Note

     	if file is remote, Novell Advanced NetWare 2.0 returns the number of
  the file server on which the handle is located in CX

SeeAlso

    INT 21 AX=4400    INT 21 AX=4409    INT 21 AH=52    INT 2F AX=122B


INT 21 AX=440B

21 - DOS 3.1+ - IOCTL - SET SHARING RETRY COUNT

AX = 440Bh
CX = pause between retries (default 1)
DX = number of retries (default 3)

Return

        CF clear if successful
CF set on error
    AX = error code (01h) (see AH=59h)

Notes

      	delay is dependent on processor speed (value in CX specifies number of
  64K-iteration empty loops to execute)
if DX=0000h on entry, the retry count is left unchanged

SeeAlso

    INT 21 AH=52    INT 2F AX=1224    INT 2F AX=122B


INT 21 AX=440C

21 - DOS 3.2+ - IOCTL - GENERIC CHARACTER DEVICE REQUEST

AX = 440Ch
BX = device handle
CH = category code
    00h unknown (DOS 3.3+)
    01h COMn: (DOS 3.3+)
    03h CON (DOS 3.3+)
    05h LPTn:
    9Eh Media Access Control driver (STARLITE)
    00h-7Fh reserved for Microsoft
    80h-FFh reserved for OEM/user-defined
CL = function
    00h MAC driver Bind (STARLITE)
    45h set iteration count
    4Ah select code page
    4Ch start code-page preparation
    4Dh end code-page preparation
    5Fh set display information (DOS 4.0)
    65h get iteration count
    6Ah query selected code page
    6Bh query prepare list
    7Fh get display information (DOS 4.0)
DS:DX -> (DOS) parameter block (see below)
SI = parameter to pass to driver (European MSDOS 4.0, OS/2 comp box)
DI = parameter to pass to driver (European MSDOS 4.0, OS/2 comp box)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    DS:DX -> iteration count if CL=65h
    SI = returned value (European MSDOS 4.0, OS/2 comp box)
    DI = returned value (European MSDOS 4.0, OS/2 comp box)
DS:DX -> (OS/2 comp box) data block

Note

     	bit assignments for function code in CL:
bit 7: set to ignore if unsupported, clear to return error
bit 6: set if passed to driver, clear if intercepted by DOS
bit 5: set if queries data from device, clear if sends command
bits 4-0: subfunction

SeeAlso

    INT 21 AX=440D    INT 2F AX=0802    INT 2F AX=122B    INT 2F AX=1A01

Table Formats

Parameter block for function 00h:
Parameter block for function 45h:
Parameter block for functions 4Ah and 6Ah:
Parameter block for function 4Dh:
Parameter block for function 4Ch:
Parameter block for functions 5Fh and 7Fh:
Parameter block for function 6Bh:


INT 21 AX=440C

21 - Greg Shenaut ASPITAPE.SYS - INTERFACE

AX = 440Ch
BX = device handle
CH = category code
    07h tape (ASPITAPE.SYS)
CL = function
    01h "mtop" - perform tape operation
    02h "mtget" - get tape status
    03h ignore end-of-tape errors
    04h enable end-of-tape errors
DS:DX -> parameter block (see below)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    DS:DX -> data block

Notes

      	This device driver is a simple DOS interface to the Adaptec Advanced
  SCSI Programming Interface (ASPI).  It provides the following device
  names as access to the SCSI tape, 'RMTx' (rewind on close) and
  'NRMTx' (NO rewind on close) where x can go from 0 to 3.  There may
  also be the following names 'MTx' and 'NMTx' which default to 1024
  byte blocks.	The names may also have a '$' appended to try and make
  them unique from file names of 'RMT0' etc.
once opend these devices must be put into RAW mode

SeeAlso

    INT 21 AX=4402"ASPI"

Table Formats

Mtop parameter block:
Mtget parameter block:


INT 21 AX=440D

21 - DOS 3.2+ - IOCTL - GENERIC BLOCK DEVICE REQUEST

AX = 440Dh
BL = drive number (00h=default,01h=A:,etc)
CH = category code
    08h disk drive
    00h-7Fh reserved for Microsoft
    80h-FFh reserved for OEM/user-defined
CL = function
    40h set device parameters
    41h write logical device track
    42h format and verify logical device track
    46h (DOS 4+) set volume serial number (see also AH=69h)
    47h (DOS 4+) set access flag
    60h get device parameters
    61h read logical device track
    62h verify logical device track
    66h (DOS 4+) get volume serial number (see also AH=69h)
    67h (DOS 4+) get access flag
    68h (DOS 5+) sense media type
DS:DX -> (DOS) parameter block (see below)
SI:DI -> (OS/2 comp box) parameter block (see below)

Return

        CF set on error
    AX = error code (01h,02h) (see AH=59h)
CF clear if successful
    DS:DX -> data block if CL=60h or CL=61h

Notes

      	DOS 4.01 seems to ignore the high byte of the number of directory
  entries in the BPB for diskettes.
functions 46h and 66h undocumented in DOS 4.x, documented for DOS 5.0
the DUBLDISK.SYS v2.6 driver only supports minor codes 60h and 67h

SeeAlso

    INT 21 AX=440C    INT 21 AH=69    INT 2F AX=0802    INT 2F AX=122B

Table Formats

Parameter block for functions 40h, 60h:
Parameter block for functions 41h, 61h:
Parameter block for functions 42h, 62h:
Parameter block for functions 46h, 66h:
Parameter block for functions 47h, 67h:
Parameter block for function 68h:


INT 21 AX=440E

21 - DOS 3.2+ - IOCTL - GET LOGICAL DRIVE MAP

AX = 440Eh
BL = drive number (00h=default,01h=A:,etc)

Return

        CF set on error
    AX = error code (01h,0Fh) (see AH=59h)
CF clear if successful
    AL = 00h block device has only one logical drive assigned
 1..26 the last letter used to reference the drive (1=A:,etc)

SeeAlso

    INT 21 AX=440F    INT 2F AX=122B


INT 21 AX=440F

21 - DOS 3.2+ - IOCTL - SET LOGICAL DRIVE MAP

AX = 440Fh
BL = physical drive number (00h=default,01h=A:,etc))

Return

        CF set on error
    AX = error code (01h,0Fh) (see AH=59h)
CF clear if successful
    drive now responds to next logical drive number

Note

     	maps logical drives to physical drives, similar to DOS's treatment of
  a single physical floppy drive as both A: and B:

SeeAlso

    INT 21 AX=440E    INT 2F AX=122B


INT 21 AX=4410

21 - DOS 5.0 - IOCTL - QUERY GENERIC IOCTL CAPABILITY (HANDLE)

AX = 4410h
BX = handle for device
CH = category code (see AX=440Ch)
CL = function code

Return

        CF clear if successful
    AX = 0000h	specified IOCTL function is supported
CF set on error
    AL = 01h	IOCTL capability not available

Note

     	a program which wishes to use Generic IOCTL calls beyond those in the
  standard DOS 3.2 set may use this call first to see whether a
  particular call is supported

SeeAlso

    INT 21 AX=440C    INT 21 AX=440D    INT 21 AX=4411


INT 21 AX=4410

21 U - NewSpace - ENABLE DRIVER

AX = 4410h
BX = FFFFh

Notes

      	NewSpace is a TSR by Isogon Corporation which automatically compresses
  all files as they are written and decompresses them as they are read
compressed files are not accessible unless the driver is enabled

SeeAlso

    INT 21 AX=4411    /BX=FFFF


INT 21 AX=4411

21 - DOS 5.0 - IOCTL - QUERY GENERIC IOCTL CAPABILITY (DRIVE)

AX = 4411h
BL = drive number
CH = category code (see AX=440Dh)
CL = function code

Return

        CF clear if successful
    AX = 0000h	specified IOCTL function is supported
CF set on error
    AL = 01h	IOCTL capability not available

Note

     	a program which wishes to use Generic IOCTL calls beyond those in the
  standard DOS 3.2 set may use this call first to see whether a
  particular call is supported

SeeAlso

    INT 21 AX=440C    INT 21 AX=440D    INT 21 AX=4410


INT 21 AX=4411

21 U - NewSpace - DISABLE DRIVER

AX = 4411h
BX = FFFFh

Notes

      	NewSpace is a TSR by Isogon Corporation which automatically compresses
  all files as they are written and decompresses them as they are read
compressed files are not accessible unless the driver is enabled

SeeAlso

    INT 21 AX=4410    /BX=FFFF


INT 21 AX=4412

21 - DR-DOS 5+ - DETERMINE DOS TYPE

AX = 4412h
CF set

Return

        CF set if not DR-DOS
    AX = error code (see AH=59h)
CF clear if DR-DOS
    DX = AX = version code
1060h = ???
1063h = DR-DOS 3.41 ???
1065h = DR-DOS 5.0
1067h = DR-DOS 6.0

Note

     	this call is identical to AX=4452h

SeeAlso

    INT 21 AX=4452


INT 21 AX=4412

21 U - NewSpace - INSTALLATION CHECK???

AX = 4412h
BX = FFFFh

Return

        AX = PSP segment of NewRes (resident driver for NewSpace)
BX:DX -> ???
CX = ???

SeeAlso

    INT 21 AX=4411    /BX=FFFF


INT 21 AX=4413

21 U - NewSpace - GET ???

AX = 4413h
BX = FFFFh

Return

        AX = code segment of NewRes (resident driver for NewSpace)
BX = offset of ???

SeeAlso

    INT 21 AX=4412    /BX=FFFF


INT 21 AX=4414

21 U - DR-DOS 5.0 - SET GLOBAL PASSWORD

AX = 4414h
DS:DX -> password string (blank-padded to 8 characters)

Desc

     	Specify the master password for accessing files.

Note

     	this call is identical to AX=4454h

SeeAlso

    INT 21 AX=4454


INT 21 AX=4414

21 U - NewSpace - DEBUGGING DUMP

AX = 4414h
BX = FFFFh

Return

       	debugging dump written to X:\NEWSPACE.SMP

SeeAlso

    INT 21 AX=4413    /BX=FFFFh    INT 21 AX=44FF    /BX=FFFF


INT 21 AH=44

21 U - DR-DOS 5.0 - HISTORY BUFFER, SHARE, AND HILOAD CONTROL

AH = 44h
AL = 16h to 18h

Note

     	these subfunctions are identical to AX=4456h to 4458h

SeeAlso

    INT 21 AX=4456    INT 21 AX=4457    INT 21 AX=4458


INT 21 AX=4451

21 - Concurrent DOS v3.2+ - INSTALLATION CHECK

AX = 4451h

Return

        CF set if not Concurrent DOS
    AX = error code (see AH=59h)
CF clear if successful
    AH = single-tasking/multitasking nature
10h single-tasking
    AL = operating system version ID (see AX=4452h)
14h multitasking
    AL = operating system version ID
32h Concurrent PC DOS 3.2
41h Concurrent DOS 4.1
50h Concurrent DOS/XM 5.0 or Concurrent DOS/386 1.1
60h Concurrent DOS/XM 6.0 or Concurrent DOS/386 2.0
62h Concurrent DOS/XM 6.2 or Concurrent DOS/386 3.0
66h DR Multiuser DOS 5.1

Notes

      	as of Concurrent DOS/XM 5.0 (possibly earlier), the version is stored
  in the environment variable VER
use this function if you are looking for multitasking capabilities,
  AX=4452h for single-tasking
this function should never return the single-tasking values

SeeAlso

    INT 21 AX=4452    INT 21 AX=4459


INT 21 AX=4452

21 - DR-DOS 3.41+ - DETERMINE DOS TYPE/GET DR-DOS VERSION

AX = 4452h
CF set

Return

        CF set if not DR-DOS
    AX = error code (see AH=59h)
CF clear if DR-DOS
    DX = AX = version code
    AH = single-tasking/multitasking
10h single-tasking
    AL = operating system version ID
60h DOS Plus
63h DR-DOS 3.41
64h DR-DOS 3.42
65h DR-DOS 5.00
67h DR-DOS 6.00
14h multitasking
    AL = operating system version ID (see AX=4451h)

Notes

      	the DR-DOS version is stored in the environment variable VER
use this function if looking for single-tasking capabilities, AX=4451h
  if looking for multitasking; this call should never return multi-
  tasking values

SeeAlso

    INT 21 AX=4412    INT 21 AX=4451    INT 21 AX=4459


INT 21 AX=4454

21 U - DR-DOS 3.41+ - SET GLOBAL PASSWORD

AX = 4454h
DS:DX -> password string (blank-padded to 8 characters)

Desc

     	Specify the master password for accessing files.

SeeAlso

    INT 21 AX=4303    INT 21 AX=4414


INT 21 AX=4456

21 U - DR-DOS 5.0+ - HISTORY BUFFER CONTROL

AX = 4456h
DL = flag
    bit 0: 1 = command history buffers
   0 = set to application

Return

        AL = ??? (20h if DL bit 0 set, A0h if clear (DR-DOS 6.0))

Note

     	This was seen called by COMMAND.COM of DR-DOS 6.0


INT 21 AX=4457

21 U - DR-DOS 5.0+ - SHARE/HILOAD CONTROL

AX = 4457h
DH = subfunction
    00h enable/disable SHARE
DL = 00h disable
   = 01h enable
   else Return: AX = ???
    01h get HILOAD status
Return: AX = status
    0000h off
    0001h on
    02h set HILOAD status
DL = new state (00h off, 01h on)
Return: AX = ???
    other
Return: AX = ???

Note

     	This was seen called by COMMAND.COM of DR-DOS 6.0

SeeAlso

    INT 21 AX=4457    /DX=FFFF


INT 21 AX=4457

21 U - DR-DOS 6.0 - GET SHARE STATUS

AX = 4457h
DX = FFFFh

Return

        AX = SHARE status

SeeAlso

    INT 2F AX=1000


INT 21 AX=4458

21 U - DR-DOS 5.0+ internal - GET POINTER TO TABLE OF ???

AX = 4458h

Return

        ES:BX -> internal table (see below)
AX = ??? (0B50h for DR-DOS 5.0, 0A56h for DR-DOS 6.0)

SeeAlso

    INT 21 AX=4452

Table Formats

Internal table:
Jump table for DR-DOS 5.0-6.0:
HMA Memory Block (DR-DOS 6.0 kernel loaded in HMA):


INT 21 AX=4459

21 - DR MultiUser DOS 5.0 - API

AX = 4459h
CL = function (see INT E0"CP/M")
DS,DX = parameters

Notes

      	DR-DOS 5.0 returns CF set and AX=0001h
this API is also available on INT E0

SeeAlso

    INT 21 AX=4452    INT E0CP/M


INT 21 AX=44FF

21 U - NewSpace - ???

AX = 44FFh
BX = FFFFh
DX = ???

Note

     	NewSpace is a TSR by Isogon Corporation which automatically compresses
  all files as they are written and decompresses them as they are read

SeeAlso

    INT 21 AX=4414    /BX=FFFF


INT 21 AH=45

21 - DOS 2+ - "DUP" - DUPLICATE FILE HANDLE

AH = 45h
BX = file handle

Return

        CF clear if successful
    AX = new handle
CF set on error
    AX = error code (04h,06h) (see AH=59h)

Notes

      	moving file pointer for either handle will also move it for the other,
  because both will refer to the same system file table
for DOS versions prior to 3.3, file writes may be forced to disk by
  duplicating the file handle and closing the duplicate

SeeAlso

    INT 21 AH=3D    INT 21 AH=46


INT 21 AH=46

21 - DOS 2+ - "DUP2", "FORCEDUP" - FORCE DUPLICATE FILE HANDLE

AH = 46h
BX = file handle
CX = file handle to become duplicate of first handle

Return

        CF clear if successful
CF set on error
    AX = error code (04h,06h) (see AH=59h)

Notes

      	closes file with handle CX if it is still open
DOS 3.30 hangs if BX=CX on entry
moving file pointer for either handle will also move it for the other,
  because both will refer to the same system file table

SeeAlso

    INT 21 AH=3D    INT 21 AH=45


INT 21 AH=47

21 - DOS 2+ - "CWD" - GET CURRENT DIRECTORY

AH = 47h
DL = drive number (00h = default, 01h = A:, etc)
DS:SI -> 64-byte buffer for ASCIZ pathname

Return

        CF clear if successful
    AX = 0100h (undocumented)
CF set on error
    AX = error code (0Fh) (see AH=59h)

Notes

      	the returned path does not include a drive or the initial backslash
many Microsoft products for Windows rely on AX being 0100h on success
under the FlashTek X-32 DOS extender, the buffer pointer is in DS:ESI

SeeAlso

    INT 21 AH=19    INT 21 AH=3B    INT 15 AX=DE25


INT 21 AH=48

21 - DOS 2+ - ALLOCATE MEMORY

AH = 48h
BX = number of paragraphs to allocate

Return

        CF clear if successful
    AX = segment of allocated block
CF set on error
    AX = error code (07h,08h) (see AH=59h)
    BX = size of largest available block

Notes

      	DOS 2.1-5.0 coalesces free blocks while scanning for a block to
  allocate
.COM programs are initially allocated the largest available memory
  block, and should free some memory with AH=49h before attempting any
  allocations
under the FlashTek X-32 DOS extender, EBX contains a protected-mode
  near pointer to the allocated block on a successful return

SeeAlso

    INT 21 AH=49    INT 21 AH=4A    INT 21 AH=58    INT 21 AH=83


INT 21 AH=49

21 - DOS 2+ - FREE MEMORY

AH = 49h
ES = segment of block to free

Return

        CF clear if successful
CF set on error
    AX = error code (07h,09h) (see AH=59h)

Notes

      	apparently never returns an error 07h, despite official docs; DOS 3.30
  code contains only an error 09h exit
DOS 2.1-5.0 does not coalesce adjacent free blocks when a block is
  freed, only when a block is allocated or resized

SeeAlso

    INT 21 AH=48    INT 21 AH=4A


INT 21 AH=4A

21 - DOS 2+ - RESIZE MEMORY BLOCK

AH = 4Ah
BX = new size in paragraphs
ES = segment of block to resize

Return

        CF clear if successful
CF set on error
    AX = error code (07h,08h,09h) (see AH=59h)
    BX = maximum paragraphs available for specified memory block

Notes

      	under DOS 2.1-5.0, if there is insufficient memory to expand the block
  as much as requested, the block will be made as large as possible
DOS 2.1-5.0 coalesces any free blocks immediately following the block
  to be resized

SeeAlso

    INT 21 AH=48    INT 21 AH=49    INT 21 AH=83


INT 21 AH=4B

21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM

AH = 4Bh
AL = type of load
    00h load and execute
    01h load but do not execute
    03h load overlay
    04h load and execute in background (European MSDOS 4.0 only)
"Exec & Go" (see also AH=80h)
DS:DX -> ASCIZ program name (must include extension)
ES:BX -> parameter block (see below)
CX = mode (subfunction 04h only)
0000h child placed in zombie mode after termination
0001h child's return code discarded on termination

Return

        CF clear if successful
    BX,DX destroyed
    if subfunction 01h, process ID set to new program's PSP; get with
INT 21/AH=62h
CF set on error
    AX = error code (01h,02h,05h,08h,0Ah,0Bh) (see AH=59h)

Notes

      	DOS 2.x destroys all registers, including SS:SP
for functions 00h and 01h, the calling process must ensure that there
  is enough unallocated memory available; if necessary, by releasing
  memory with AH=49h or AH=4Ah
for function 01h, the AX value to be passed to the child program is put
  on top of the child's stack
for function 03h, DOS assumes that the overlay is being loaded into
  memory allocated by the caller
function 01h was undocumented prior to the release of DOS 5.0
some versions (such as DR-DOS 6.0) check the parameters and parameter
  block and return an error if an invalid value (such as an offset of
  FFFFh) is found
background programs under European MSDOS 4.0 must use the new
  executable format
new executables begin running with the following register values
AX = environment segment
BX = offset of command tail in environment segment
CX = size of automatic data segment (0000h = 64K)
ES,BP = 0000h
DS = automatic data segment
SS:SP = initial stack
  the command tail corresponds to an old executable's PSP:0081h and
  following, except that the 0Dh is turned into a NUL (00h); new
  format executables have no PSP
under the FlashTek X-32 DOS extender, only function 00h is supported
  and the pointers are passed in DS:EDX and ES:EBX

BUGS

     	DOS 2.00 assumes that DS points at the current program's PSP
Load Overlay (subfunction 03h) loads up to 512 bytes too many if the
  file contains additional data after the actual overlay

SeeAlso

    INT 21 AX=4B05    INT 21 AH=4C    INT 21 AH=4D    INT 21 AH=64"OS/2"    INT 21 AH=8A    INT 2E

Table Formats

EXEC parameter block for AL=00h,01h,04h:
EXEC parameter block for AL=03h:
EXEC parameter block for FlashTek X-32:
.EXE file header:
New executable header:
Codeview trailer (at end of executable):
New executable segment table record:
New executable entry table item (list):
New executable relocation data (immediately follows segment image):
New executable resource entry:
New executable module reference table [one bundle of entries]:
New executable resident/nonresident name table entry:
Linear Executable (enhanced mode executable) header:
Object table entry:
Object page map table entry:
Resident names table entry:
Linear executable entry table:
Linear executable fixup record:
Borland debugging information header (following load image):


INT 21 AH=4B

21 - ELRES v1.0 only - INSTALLATION CHECK

AH = 4Bh
DS:DX = 0000h:0000h

Return

        ES:BX -> ELRES history structure (see AH=2Bh/CX=454Ch)
DX = DABEh (signature, DAve BEnnett)

Note

     	ELRES is an MSDOS return code (errorlevel) recorder by David H. Bennett

SeeAlso

    INT 21 AH=2B    /CX=454C


INT 21 AX=4B04

21 - VIRUS - "MG", "699"/"Thirteen Minutes" - INSTALLATION CHECK

AX = 4B04h

Return

        CF clear if "MG" resident
AX = 044Bh if "699"/"Thirteen Minutes" resident

SeeAlso

    INT 21 AX=4243    INT 21 AX=4B25


INT 21 AX=4B05

21 - DOS 5.0 - SET EXECUTION STATE

AX = 4B05h
DS:DX -> execution state structure (see below)

Return

        CF clear if successful
    AX = 0000h
CF set on error
    AX = error code (see AH=59h)

Note

     	used by programs which intercept AX=4B00h to prepare new programs for
  execution (including setting the DOS version number).	 No DOS, BIOS
  or other software interrupt may be called after return from this call
  before commencement of the child process.  If DOS is running in the
  HMA, A20 is turned off on return from this call.

SeeAlso

    INT 21 AH=4B

Table Formats

Execution state structure:


INT 21 AX=4B25

21 - VIRUS - "1063"/"Mono" - INSTALLATION CHECK

AX = 4B25h

Return

        DI = 1234h if resident

SeeAlso

    INT 21 AX=4B04    INT 21 AX=4B40


INT 21 AX=4B40

21 - VIRUS - "Plastique"/"AntiCad" - INSTALLATION CHECK

AX = 4B40h

Return

        AX = 5678h if resident

SeeAlso

    INT 21 AX=4B25    INT 21 AX=4B41    INT 21 AX=4B4A


INT 21 AX=4B41

21 - VIRUS - "Plastique"/"AntiCad" - ???

AX = 4B41h
???

Return

        ???

SeeAlso

    INT 21 AX=4B40


INT 21 AX=4B4A

21 - VIRUS - "Jabberwocky" - INSTALLATION CHECK

AX = 4B4Ah

Return

        AL = 57h if resident

SeeAlso

    INT 21 AX=4B40    INT 21 AX=4B4B


INT 21 AX=4B4B

21 - VIRUS - "Horse-2" - INSTALLATION CHECK

AX = 4B4Bh

Return

        CF clear if resident

SeeAlso

    INT 21 AX=4B4A    INT 21 AX=4B4D


INT 21 AX=4B4D

21 - VIRUS - "Murphy-2", "Patricia"/"Smack" - INSTALLATION CHECK

AX = 4B4Dh

Return

        CF clear if resident

SeeAlso

    INT 21 AX=4B4A    INT 21 AX=4B50


INT 21 AX=4B50

21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - INSTALLATION CHECK

AX = 4B50h

Return

        AX = 1234h if resident

SeeAlso

    INT 21 AX=4B4D    INT 21 AX=4B53    INT 21 AX=4B60


INT 21 AX=4B53

21 - VIRUS - "Horse" - INSTALLATION CHECK

AX = 4B53h

Return

        CF clear if resident

SeeAlso

    INT 21 AX=4B50    INT 21 AX=4B55


INT 21 AX=4B55

21 - VIRUS - "Sparse" - INSTALLATION CHECK

AX = 4B55h

Return

        AX = 1231h if resident

SeeAlso

    INT 21 AX=4B53    INT 21 AX=4B59


INT 21 AX=4B59

21 - VIRUS - "Murphy-1", "Murphy-4" - INSTALLATION CHECK

AX = 4B59h

Return

        CF clear if resident

SeeAlso

    INT 21 AX=4B50    INT 21 AX=4B5E


INT 21 AX=4B5E

21 - VIRUS - "Brothers" - INSTALLATION CHECK

AX = 4B5Eh

Return

        CF clear if resident

SeeAlso

    INT 21 AX=4B59    INT 21 AX=4B87


INT 21 AX=4B60

21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - ???

AX = 4B60h
???

Return

        ???

SeeAlso

    INT 21 AX=4B50


INT 21 AX=4B87

21 - VIRUS - "Shirley" - INSTALLATION CHECK

AX = 4B87h

Return

        AX = 6663h if resident

SeeAlso

    INT 21 AX=4B5E    INT 21 AX=4B95


INT 21 AX=4B95

21 - VIRUS - "Zherkov-1882" - INSTALLATION CHECK

AX = 4B95h

Return

        AX = 1973h if resident

SeeAlso

    INT 21 AX=4B87    INT 21 AX=4BA7


INT 21 AX=4BA7

21 - VIRUS - "1876"/"Dash-em" - INSTALLATION CHECK

AX = 4BA7h

Return

        AX = B459h if resident

SeeAlso

    INT 21 AX=4B95    INT 21 AX=4BAA


INT 21 AX=4BAA

21 - VIRUS - "Nomenklatura" - INSTALLATION CHECK

AX = 4BAAh

Return

        CF clear if resident

SeeAlso

    INT 21 AX=4BA7    INT 21 AX=4BAF


INT 21 AX=4BAF

21 - VIRUS - "948"/"Screenplus1", "Magnitogorsk" - INSTALLATION CHECK

AX = 4BAFh

Return

        AL = AFh if "Magnitogorsk" resident
AL = FAh if "948"/"Screenplus1" resident

SeeAlso

    INT 21 AX=4BAA    INT 21 AX=4BDD


INT 21 AX=4BDD

21 - VIRUS - "Lozinsky"/"Zherkov" - INSTALLATION CHECK

AX = 4BDDh

Return

        AX = 1234h

SeeAlso

    INT 21 AX=4BAF    INT 21 AX=4BFE


INT 21 AX=4BEE

21 - F-DRIVER.SYS v1.14+ - GRAB INT 21

AX = 4BEEh

Return

        AX = 1234h if grab successful
   = 2345h if failed (INT 21 grabbed previously)

Notes

      	F-DRIVER.SYS is part of the F-PROT virus/trojan protection package by
  Fridrik Skulason
when called the first time, this function moves the INT 21 monitoring
  code from its original location in the INT 21 chain to be the first
  thing called by INT 21.  This is the mechanism used by F-NET.

SeeAlso

    INT 2F AX=4653


INT 21 AX=4BF0

21 - DIET v1.10+ (Overlay Mode) - INSTALLATION CHECK

AX = 4BF0h

Return

        CF clear if installed
    AX = 899Dh

Note

     	DIET is an executable-compression program

SeeAlso

    INT 21 AX=4BF1


INT 21 AX=4BF1

21 - DIET v1.10+ (Overlay Mode) - EXPAND PROGRAM???

AX = 4BF1h

Return

        ???

SeeAlso

    INT 21 AX=4BF0


INT 21 AX=4BFE

21 - VIRUS - "Hitchcock", "Dark Avenger-1028", "1193" - INSTALLATION CHECK

AX = 4BFEh

Return

        AX = 1234h if "Hitchcock" resident
AX = ABCDh if "1193"/"Copyright" resident
DI = 55BBh if "Dark Avenger-1028" resident

SeeAlso

    INT 21 AX=4BDD    INT 21 AX=4BFF"Justice"


INT 21 AX=4BFF

21 - VIRUS - "USSR-707", "Justice", "Europe 92" - INSTALLATION CHECK

AX = 4BFFh

Return

        BL = FFh if "USSR-707" resident
DI = 55AAh if "Justice" resident
CF clear if "Europe 92" resident

SeeAlso

    INT 21 AX=4BFE    INT 21 AX=4BFF"Cascade"    INT 21 AX=5252


INT 21 AX=4BFF

21 - VIRUS - "Cascade" - INSTALLATION CHECK

AX = 4BFFh
SI = 0000h
DI = 0000h

Return

        DI = 55AAh if installed

SeeAlso

    INT 21 AX=4BFF"Justice"    INT 21 AX=5252


INT 21 AH=4C

21 - DOS 2+ - "EXIT" - TERMINATE WITH RETURN CODE

AH = 4Ch
AL = return code

Return

        never returns

Notes

      	unless the process is its own parent (see AH=26h, offset 16h in PSP),
  all open files are closed and all memory belonging to the process
  is freed
all network file locks should be removed before calling this function

SeeAlso

    INT 21 AH=00    INT 21 AH=26    INT 21 AH=4B    INT 21 AH=4D    INT 15 AH=12    /BH=02h    INT 20INT 2

SeeAlso

    INT 60DI=0601


INT 21 AH=4D

21 - DOS 2+ - GET RETURN CODE

AH = 4Dh

Return

        AH = termination type
    00h normal (INT 20,INT 21/AH=00h, or INT 21/AH=4Ch)
    01h control-C abort
    02h critical error abort
    03h terminate and stay resident (INT 21/AH=31h or INT 27)
AL = return code

Notes

      	the word in which DOS stores the return code is cleared after being
  read by this function, so the return code can only be retrieved once
this call should not be used if the child was started with AX=4B04h;
  use AH=8Ah instead
the following sequence will close a Virtual DOS Machine under OS/2 2.0:
  MOV	AH,4Dh
  INT	21h
  HLT
  DB	02h,0FDh
  This sequence is the only way to close a specific VDM which was
  booted from floppy or a disk image.

SeeAlso

    INT 21 AH=4B    INT 21 AH=4C    INT 21 AH=8A


INT 21 AH=4E

21 - DOS 2+ - "FINDFIRST" - FIND FIRST MATCHING FILE

AH = 4Eh
AL = special flag for use by APPEND (see note below)
CX = file attribute mask (see AX=4301h) (bits 0 and 5 ignored)
DS:DX -> ASCIZ file specification (may include path and wildcards)

Return

        CF clear if successful
    [DTA] = FindFirst data block (see below)
CF set on error
    AX = error code (02h,03h,12h) (see AH=59h)

Notes

      	for search attributes other than 08h, all files with at MOST the
  specified combination of hidden, system, and directory attributes
  will be returned.  Under DOS 2.x, searching for attribute 08h
  (volume label) will also return normal files, while under DOS 3+
  only the volume label (if any) will be returned.
this call also returns successfully if given the name of a character
  device without wildcards.  DOS 2.x returns attribute 00h, size 0,
  and the current date and time.  DOS 3+ returns attribute 40h and the
  current date and time.
immediately after an INT 2F/AX=B711h (APPEND return found name), the
  name at DS:DX will be overwritten; if AL=00h on entry, the actual
  found pathname will be stored, otherwise, the actual found path
  will be prepended to the original filespec without a path.
under LANtastic, this call may be used to obtain a list of a server's
  shared resources by searching for "\\SERVER\*.*"; a list of printer
  resources may be obtained by searching for "\\SERVER\@*.*"
under the FlashTek X-32 DOS extender, the filespec pointer is in DS:EDX

BUG

    	under DOS 3.x and 4.x, the second and subsequent calls to this function
  with a character device name (no wildcards) and search attributes
  which include the volume-label bit (08h) will fail unless there is
  an intervening DOS call which implicitly or explicity performs a
  directory search without the volume-label bit.  Such implicit
  searches are performed by CREATE (AH=3Ch), OPEN (AH=3Dh), UNLINK
  (AH=41h), and RENAME (AH=56h)

SeeAlso

    INT 21 AH=11    INT 21 AH=4F    INT 21 AX=4301    INT 2F AX=111B    INT 2F AX=B711

Table Formats

FindFirst data block:


INT 21 AH=4E

21 - WILDUNIX.COM internal - INSTALLATION CHECK

AH = 4Eh
DS:DX = 0000h:0000h

Return

       	AH = 99h if installed

Note

     	WILDUNIX.COM is a resident Unix-style wildcard expander by Steve
  Hosgood and Terry Barnaby


INT 21 AH=4F

21 - DOS 2+ - "FINDNEXT" - FIND NEXT MATCHING FILE

AH = 4Fh
[DTA] = data block from previous FindFirst or FindNext call

Return

        CF clear if successful
CF set on error
    AX = error code (12h) (see AH=59h)

SeeAlso

    INT 21 AH=12    INT 21 AH=4E


INT 21 AH=50

21 - DOS 2+ internal - SET CURRENT PROCESS ID (SET PSP ADDRESS)

AH = 50h
BX = segment of PSP for new process

Notes

      	DOS uses the current PSP address to determine which processes own files
  and memory; it corresponds to process identifiers used by other OSs
under DOS 2.x, this function cannot be invoked inside an INT 28h
  handler without setting the Critical Error flag
under DOS 3+, this function does not use any of the DOS-internal stacks
  and may thus be called at any time, even during another INT 21h call
some Microsoft applications use segments of 0000h and FFFFh; although
  one should only call this function with valid PSP addresses, any
  program hooking it should be prepared to handle invalid addresses
supported by OS/2 compatibility box
this call was undocumented prior to the release of DOS 5.0

SeeAlso

    INT 21 AH=26    INT 21 AH=51    INT 21 AH=62


INT 21 AH=51

21 - DOS 2+ internal - GET CURRENT PROCESS ID (GET PSP ADDRESS)

AH = 51h

Return

        BX = segment of PSP for current process

Notes

      	DOS uses the current PSP address to determine which processes own files
  and memory; it corresponds to process identifiers used by other OSs
under DOS 2.x, this function cannot be invoked inside an INT 28h
  handler without setting the Critical Error flag
under DOS 3+, this function does not use any of the DOS-internal stacks
  and may thus be called at any time, even during another INT 21h call
supported by OS/2 compatibility box
identical to the documented AH=62h
undocumented for DOS 2.x-4.x, but newly documented for 5.0.

SeeAlso

    INT 21 AH=26    INT 21 AH=50    INT 21 AH=62


INT 21 AH=52

21 U - DOS 2+ internal - "SYSVARS" - GET LIST OF LISTS

AH = 52h

Return

        ES:BX -> DOS list of lists

Note

     	partially supported by OS/2 v1.1 compatibility box (however, most
  pointers are FFFFh:FFFFh, LASTDRIVE is FFh, and the NUL header "next"
  pointer is FFFFh:FFFFh).

Table Formats

List of Lists:
Memory control block (see also below):
MSDOS 5.0 UMB control block:
STARLITE (General Software's Embedded DOS) memory control block:
DOS 4.x data segment subsegment control blocks:
Data at start of STACKS code segment (if present):
Array elements in STACKS data segment:
SHARE.EXE hooks (DOS 3.1-5.00):
(offsets from first system file table--pointed at by ListOfLists+04h)
Offset	Size	Description
-3Ch	DWORD	pointer to FAR routine for ???
Note: not called by MSDOS 3.3, set to 0000h:0000h by SHARE 3.3
-38h	DWORD	pointer to FAR routine called on opening file
on call, internal DOS location points at filename(see AX=5D06h)
Return: CF clear if successful
CF set on error
    AX = DOS error code (24h) (see AH=59h)
Note: SHARE assumes DS=SS=DOS DS, direct-accesses DOS internals
to get name of file just opened
-34h	DWORD	pointer to FAR routine called on closing file
ES:DI -> system file table
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
does something to every lock record for file
-30h	DWORD	pointer to FAR routine to close all files for given computer
(called by AX=5D03h)
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
-2Ch	DWORD	pointer to FAR routine to close all files for given process
(called by AX=5D04h)
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
-28h	DWORD	pointer to FAR routine to close file by name
(called by AX=5D02h)
DS:SI -> DOS parameter list (see AX=5D00h)
   DPL's DS:DX -> name of file to close
Return: CF clear if successful
CF set on error
    AX = DOS error code (03h) (see AH=59h)
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
-24h	DWORD	pointer to FAR routine to lock region of file
call with BX = file handle
  CX:DX = starting offset
  SI:AX = size
Return: CF set on error
    AL = DOS error code (21h) (see AH=59h)
Note: not called if file is marked as remote
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
-20h	DWORD	pointer to FAR routine to unlock region of file
call with BX = file handle
  CX:DX = starting offset
  SI:AX = size
Return: CF set on error
    AL = DOS error code (21h) (see AH=59h)
Note: not called if file is marked as remote
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
-1Ch	DWORD	pointer to FAR routine to check if file region is locked
call with ES:DI -> system file table entry for file
CX = length of region from current position in file
Return: CF set if any portion of region locked
    AX = 0021h
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
-18h	DWORD	pointer to FAR routine to get open file list entry
(called by AX=5D05h)
call with DS:SI -> DOS parameter list (see AX=5D00h)
DPL's BX = index of sharing record
DPL's CX = index of SFT in SFT chain of sharing rec
Return: CF set on error or not loaded
    AX = DOS error code (12h) (see AH=59h)
CF clear if successful
    ES:DI -> filename
    CX = number of locks owned by specified SFT
    BX = network machine number
    DX destroyed
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
-14h	DWORD	pointer to FAR routine for updating FCB from SFT???
call with DS:SI -> unopened FCB
  ES:DI -> system file table entry
Return: BL = C0h???
Note: copies following fields from SFT to FCB:
   starting cluster of file	  0Bh	 1Ah
   sharing record offset	  33h	 1Ch
   file attribute	  04h	 1Eh
-10h	DWORD	pointer to FAR routine to get first cluster of FCB file ???
call with ES:DI -> system file table entry
  DS:SI -> FCB
Return: CF set if SFT closed or sharing record offsets
mismatched
CF clear if successful
    BX = starting cluster number from FCB
-0Ch	DWORD	pointer to FAR routine to close file if duplicate for process
DS:SI -> system file table
Return: AX = number of handle in JFT which already uses SFT
Note: called during open/create of a file
Note: SHARE assumes SS=DOS DS, directly accesses DOS internals
Note: if SFT was opened with inheritance enabled and sharing
mode 111, does something to all other SFTs owned by
same process which have the same file open mode and
sharing record
-08h	DWORD	pointer to FAR routine for ???
Note: SHARE assumes SS=DS=DOS DS, direct-accesses DOS internals
Note: closes various handles referring to file most-recently
opened
-04h	DWORD	pointer to FAR routine to update directory info in related SFT
  entries
call with ES:DI -> system file table entry for file (see below)
  AX = subfunction (apply to each related SFT)
00h: update time stamp (offset 0Dh) and date
     stamp (offset 0Fh)
01h: update file size (offset 11h) and starting
     cluster (offset 0Bh).  Sets last-accessed
     cluster fields to start of file if file
     never accessed
02h: as function 01h, but last-accessed fields
     always changed
03h: do both functions 00h and 02h
Note: follows ptr at offset 2Bh in system file table entries
Note: NOP if opened with no-inherit or via FCB

Sharing record:
SHARE.EXE lock record:
DOS 2.x system file tables:
DOS 3.0 system file tables and FCB tables:
DOS 3.1-3.3x system file tables and FCB tables:
DOS 4.0-5.0 system file tables and FCB tables:
Current directory structure (CDS) (array, LASTDRIVE entries):
DR-DOS 5.0-6.0 current directory structure entry (array):
Device driver header:
CLOCK$ transfer record:
DOS 2.x disk buffer:
DOS 3.x disk buffer:
DOS 4.00 (pre UR 25066) disk buffer info:
DOS 4.01 (from UR 25066 Corrctive Services Disk on) disk buffer info:
DOS 4.x disk buffer hash chain head (array, one entry per chain):
DOS 4.0-5.0 disk buffer:
DOS 5.0 disk buffer info:
IFS driver list:
Call IFS utility function entry point with:
AH = 20h miscellaneous functions
    AL = 00h get date
Return: CX = year
DH = month
DL = day
    AL = 01h get process ID and computer ID
Return: BX = current PSP segment
DX = active network machine number
    AL = 05h get file system info
ES:DI -> 16-byte info buffer
Return: buffer filled
Offset	Size	Description
 00h  2 BYTEs	unused
 02h	WORD	number of SFTs (actually counts only
the first two file table arrays)
 04h	WORD	number of FCB table entries
 06h	WORD	number of proctected FCBs
 08h  6 BYTEs	unused
 0Eh	WORD	largest sector size supported
    AL = 06h get machine name
ES:DI -> 18-byte buffer for name
Return: buffer filled with name starting at offset 02h
    AL = 08h get sharing retry count
Return: BX = sharing retry count
    AL = other
Return: CF set
AH = 21h get redirection state
BH = type (03h disk, 04h printer)
Return: BH = state (00h off, 01h on)
AH = 22h ??? some sort of time calculation
AL = 00h ???
    nonzero ???
AH = 23h ??? some sort of time calculation
AH = 24h compare filenames
    DS:SI -> first ASCIZ filename
    ES:DI -> second ASCIZ filename
    Return: ZF set if files are same ignoring case and / vs \
AH = 25h normalize filename
    DS:SI -> ASCIZ filename
    ES:DI -> buffer for result
    Return: filename uppercased, forward slashes changed to backslashes
AH = 26h get DOS stack
    Return: DS:SI -> top of stack
    CX = size of stack in bytes
AH = 27h increment InDOS flag
AH = 28h decrement InDOS flag

Note

     	IFS drivers which do not wish to implement functions 20h or 24h-28h may
  pass them on to the default handler pointed at by [LoL+37h]

IFS request block:
IFS open file structure:
One item in DOS 4+ list of special program names:


INT 21 AX=5252

21 - VIRUS - "516"/"Leapfrog" - INSTALLATION CHECK

AX = 5252h

Return

        BX = FFEEh if resident

SeeAlso

    INT 21 AX=4BFF"Cascade"    INT 21 AX=58CC


INT 21 AH=53

21 - DOS 2+ internal - TRANSLATE BIOS PARAMETER BLOCK TO DRIVE PARAM BLOCK

AH = 53h
DS:SI -> BIOS Parameter Block (see below)
ES:BP -> buffer for Drive Parameter Block (see AH=32h for format)

Return

        ES:BP buffer filled

Note

     	for DOS 3+, the cluster at which to start searching is set to 0000h
  and the number of free clusters is set to FFFFh (unknown)

Table Formats

BIOS Parameter Block:


INT 21 AH=54

21 - DOS 2+ - GET VERIFY FLAG

AH = 54h

Return

        AL = verify flag
    00h off
    01h on (all disk writes verified after writing)

SeeAlso

    INT 21 AH=2E


INT 21 AH=55

21 - DOS 2+ internal - CREATE CHILD PSP

AH = 55h
DX = segment at which to create new PSP
SI = (DOS 3+) value to place in memory size field at DX:[0002h]

Return

        CF clear if successful

Notes

      	creates a "child" PSP rather than making an exact copy of the current
  PSP; the new PSP's parent pointer is set to the current PSP and the
  reference count for each inherited file is incremented
(DOS 2+) sets current PSP to DX
(DOS 3+) marks "no inherit" file handles as closed in child PSP

SeeAlso

    INT 21 AH=26    INT 21 AH=50


INT 21 AH=56

21 - DOS 2+ - "RENAME" - RENAME FILE

AH = 56h
DS:DX -> ASCIZ filename of existing file (no wildcards, but see below)
ES:DI -> ASCIZ new filename (no wildcards)
CL = attribute mask (server call only, see below)

Return

        CF clear if successful
CF set on error
    AX = error code (02h,03h,05h,11h) (see AH=59h)

Notes

      	allows move between directories on same logical volume
does not set the archive attribute (see AX=4300h), which results in
  incremental backups not backing up the file under its new name
open files should not be renamed
(DOS 3+) allows renaming of directories
(DOS 3.1+) wildcards are allowed if invoked via AX=5D00h, in which case
  error 12h (no more files) is returned on success, and both source and
  destination specs must be canonical (as returned by AH=60h).
  Wildcards in the destination are replaced by the corresponding char
  of each source file being renamed.  Under DOS 3.x, the call will fail
  if the destination wildcard is *.* or equivalent.  When invoked via
  AX=5D00h, only those files matching the attribute mask in CL are
  renamed.
under the FlashTek X-32 DOS extender, the old-name pointer is in DS:EDX
  and the new-name pointer is in ES:EDI (DS must equal ES)

SeeAlso

    INT 21 AH=17    INT 21 AX=4301    INT 21 AH=60    INT 21 AX=5D00


INT 21 AX=5700

21 - DOS 2+ - GET FILE'S DATE AND TIME

AX = 5700h
BX = file handle

Return

        CF clear if successful
    CX = file's time
bits 15-11: hours (0-23)
     10-5:  minutes
      4-0:  seconds/2
    DX = file's date
bits 15-9: year - 1980
      8-5: month
      4-0: day
CF set on error
    AX = error code (01h,06h) (see AH=59h)

SeeAlso

    INT 21 AX=5701


INT 21 AX=5701

21 - DOS 2+ - SET FILE'S DATE AND TIME

AX = 5701h
BX = file handle
CX = new time (see AX=5700h)
DX = new date (see AX=5700h)

Return

        CF clear if successful
CF set on error
    AX = error code (01h,06h) (see AH=59h)

SeeAlso

    INT 21 AX=5700


INT 21 AX=5702

21 - DOS 4.x only - GET ???

AX = 5702h
BX = ??? (0000h through 0004h)
DS:SI -> ???
ES:DI -> result buffer
CX = size of result buffer

Return

        CX = size of returned data

SeeAlso

    INT 21 AX=5703    INT 21 AX=5704


INT 21 AX=5703

21 - DOS 4.x only - GET ???

AX = 5703h
BX = file handle (only 0000h through 0004h valid)
DS:SI -> ??? passed through to INT 2F/AX=112Dh
ES:DI -> result buffer
CX = size of result buffer

Return

        CX = size of returned data
ES:DI -> zero word (DOS 4.0) if CX >= 2 on entry

SeeAlso

    INT 21 AX=5702    INT 21 AX=5704    INT 2F AX=112D


INT 21 AX=5704

21 - DOS 4.x only - TRUNCATE OPEN FILE TO ZERO LENGTH

AX = 5704h
BX = file handle (only 0000h through 0004h valid)
DS:SI -> ??? passed through to INT 2F/AX=112Dh
ES:DI -> result buffer
CX = size of result buffer

Return

        CX = size of returned data
ES:DI -> zero word (DOS 4.0) if CX >= 2 on entry

SeeAlso

    INT 21 AX=5702    INT 21 AX=5703    INT 2F AX=112D


INT 21 AH=58

21 - DOS 3+ - GET OR SET MEMORY ALLOCATION STRATEGY

AH = 58h
AL = subfunction
    00h get allocation strategy
Return: AX = current strategy
    00h low memory first fit
    01h low memory best fit
    02h low memory last fit
 ---DOS 5.0---
    40h high memory first fit
    41h high memory best fit
    42h high memory last fit
    80h first fit, try high then low memory
    81h best fit, try high then low memory
    82h last fit, try high then low memory
    01h set allocation strategy
BL = new allocation strategy (see above)
BH = 00h (DOS 5.0)

Return

        CF clear if successful
CF set on error
    AX = error code (01h) (see AH=59h)

Notes

      	the Set subfunction accepts any value in BL for DOS 3.x and 4.x;
  2 or greater means last fit
the Get subfunction returns the last value set
a program which changes the allocation strategy should restore it
  before terminating
Toshiba MSDOS 2.11 supports subfunctions 00h and 01h
DR-DOS 3.41 reportedly reverses subfunctions 00h and 01h

SeeAlso

    INT 21 AH=48    INT 21 AH=49    INT 21 AH=4A    INT 2F AX=4310    INT 67 AH=3F


INT 21 AH=58

21 - DOS 5.0 - GET OR SET UMB LINK STATE

AH = 58h
AL = subfunction
    02h get UMB link state
Return: AL = 00h UMBs not part of DOS memory chain
   = 01h UMBs in DOS memory chain
    03h set UMB link state
BX = 0000h remove UMBs from DOS memory chain
   = 0001h add UMBs to DOS memory chain

Return

        CF clear if successful
CF set on error
    AX = error code (01h) (see AH=59h)

Note

     	a program which changes the UMB link state should restore it before
  terminating


INT 21 AX=58CC

21 - VIRUS - "1067"/"Headcrash" - INSTALLATION CHECK

AX = 58CCh

Return

        CF clear if resident

SeeAlso

    INT 21 AX=5252    INT 21 AX=6969


INT 21 AH=59

21 - DOS 3+ - GET EXTENDED ERROR INFORMATION

AH = 59h
BX = 0000h

Return

        AX = extended error code (see below)
BH = error class (see below)
BL = recommended action (see below)
CH = error locus (see below)
ES:DI may be pointer (see error code list below)
CL, DX, SI, BP, and DS destroyed

Notes

      	functions available under DOS 2.x map the true DOS 3+ error code into
  one supported under DOS 2.x
you should call this function to retrieve the true error code when an
  FCB or DOS 2.x call returns an error

SeeAlso

    INT 21 AX=5D0A    INT 2F AX=122D

Values for extended error code:
00h no error
01h function number invalid
02h file not found
03h path not found
04h too many open files (no handles available)
05h access denied
06h invalid handle
07h memory control block destroyed
08h insufficient memory
09h memory block address invalid
0Ah environment invalid (usually >32K in length)
0Bh format invalid
0Ch access code invalid
0Dh data invalid
0Eh reserved
0Fh invalid drive
10h attempted to remove current directory
11h not same device
12h no more files
---DOS 3+---
13h disk write-protected
14h unknown unit
15h drive not ready
16h unknown command
17h data error (CRC)
18h bad request structure length
19h seek error
1Ah unknown media type (non-DOS disk)
1Bh sector not found
1Ch printer out of paper
1Dh write fault
1Eh read fault
1Fh general failure
20h sharing violation
21h lock violation
22h disk change invalid
    ES:DI -> ASCIZ volume label of required disk
23h FCB unavailable
24h sharing buffer overflow
25h (DOS 4+) code page mismatch
26h (DOS 4+) cannot complete file operation (out of input)
27h (DOS 4+) insufficient disk space
28h-31h reserved
32h network request not supported
33h remote computer not listening
34h duplicate name on network
35h network name not found
36h network busy
37h network device no longer exists
38h network BIOS command limit exceeded
39h network adapter hardware error
3Ah incorrect response from network
3Bh unexpected network error
3Ch incompatible remote adapter
3Dh print queue full
3Eh queue not full
3Fh not enough space to print file
40h network name was deleted
41h network: Access denied
42h network device type incorrect
43h network name not found
44h network name limit exceeded
45h network BIOS session limit exceeded
46h temporarily paused
47h network request not accepted
48h network print/disk redirection paused
49h (LANtastic) invalid network version
4Ah (LANtastic) account expired
4Bh (LANtastic) password expired
4Ch (LANtastic) login attempt invalid at this time
4Dh (LANtastic v3+) disk limit exceeded on network node
4Eh (LANtastic v3+) not logged in to network node
4Fh reserved
50h file exists
51h reserved
52h cannot make directory
53h fail on INT 24h
54h (DOS 3.3+) too many redirections
55h (DOS 3.3+) duplicate redirection
56h (DOS 3.3+) invalid password
57h (DOS 3.3+) invalid parameter
58h (DOS 3.3+) network write fault
59h (DOS 4+) function not supported on network
5Ah (DOS 4+) required system component not installed

Values for Error Class:
01h out of resource (storage space or I/O channels)
02h temporary situation (file or record lock)
03h authorization (denied access)
04h internal (system software bug)
05h hardware failure
06h system failure (configuration file missing or incorrect)
07h application program error
08h not found
09h bad format
0Ah locked
0Bh media error
0Ch already exists
0Dh unknown

Values for Suggested Action:
01h retry
02h delayed retry
03h prompt user to reenter input
04h abort after cleanup
05h immediate abort
06h ignore
07h retry after user intervention

Values for Error Locus:
01h unknown or not appropriate
02h block device (disk error)
03h network related
04h serial device (timeout)
05h memory related


INT 21 AH=59

21 - European MSDOS 4.0 - GET HARD ERROR INFORMATION

AH = 59h
BX = 0001h

Return

        ES:DI -> hard error information packet (see below) for most recent
hard (critical) error

SeeAlso

    INT 21 AH=95    INT 24

Table Formats

Hard error information packet:


INT 21 AH=5A

21 - DOS 3+ - CREATE TEMPORARY FILE

AH = 5Ah
CX = file attribute (see AX=4301h)
DS:DX -> ASCIZ path ending with a '\' + 13 zero bytes to receive the
generated filename

Return

        CF clear if successful
    AX = file handle opened for read/write in compatibility mode
    DS:DX pathname extended with generated name for temporary file
CF set on error
    AX = error code (03h,04h,05h) (see AH=59h)

Notes

      	creates a file with a unique name which must be explicitly deleted
COMPAQ DOS 3.31 hangs if the pathname is at XXXXh:0000h; it apparently
  wraps around to the end of the segment
under the FlashTek X-32 DOS extender, the path pointer is in DS:EDX

SeeAlso

    INT 21 AH=3C    INT 21 AH=5B


INT 21 AH=5B

21 - DOS 3+ - CREATE NEW FILE

AH = 5Bh
CX = file attribute (see AX=4301h)
DS:DX -> ASCIZ filename

Return

        CF clear if successful
    AX = file handle opened for read/write in compatibility mode
CF set on error
    AX = error code (03h,04h,05h,50h) (see AH=59h)

Notes

      	unlike AH=3Ch, this function will fail if the specified file exists
  rather than truncating it; this permits its use in creating semaphore
  files because it is an atomic "test and set" operation
under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX

SeeAlso

    INT 21 AH=3C    INT 21 AH=5A


INT 21 AH=5C

21 - DOS 3+ - "FLOCK" - RECORD LOCKING

AH = 5Ch
AL = subfunction
    00h lock region of file
    01h unlock region of file
BX = file handle
CX:DX = start offset of region within file
SI:DI = length of region in bytes

Return

        CF clear if successful
CF set on error
    AX = error code (01h,06h,21h,24h) (see AH=59h)

Notes

      	error returned unless SHARE or network installed
an unlock call must specify the same region as some prior lock call
locked regions become entirely inaccessible to other processes
duplicate handles created with AH=45h or AH=46h inherit locks, but
  handles inherited by child processes (see AH=4Bh) do not

SeeAlso

    INT 21 AX=440B    INT 21 AH=BC    INT 21 AH=BE    INT 2F AX=110A    INT 2F AX=110B


INT 21 AX=5D00

21 U - DOS 3.1+ internal - SERVER FUNCTION CALL

AX = 5D00h
DS:DX -> DOS parameter list (see below)
DPL contains all register values for a call to INT 21h

Return

        as appropriate for function being called

Notes

      	does not check AH.  Out of range values will crash the system
executes using specified computer ID and process ID
sharing delay loops skipped
a special sharing mode is enabled
wildcards are enabled for DELETE (AH=41h) and RENAME (AH=56h)
an extra file attribute parameter is enabled for OPEN (AH=3Dh),
  DELETE (AH=41h), and RENAME (AH=56h)
functions which take filenames require canonical names (as returned
  by AH=60h); this is apparently to prevent multi-hop file forwarding

SeeAlso

    INT 21 AH=3D    INT 21 AH=41    INT 21 AH=56    INT 21 AH=60

Table Formats

DOS parameter list:


INT 21 AX=5D01

21 U - DOS 3.1+ internal - COMMIT ALL FILES FOR SPECIFIED COMPUTER/PROCESS

AX = 5D01h
DS:DX -> DOS parameter list (see AX=5D00h), only computer ID and
process ID fields used

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Notes

      	flushes buffers and updates directory entries for each file which has
  been written to; if remote file, calls INT 2F/AX=1107h
the computer ID and process ID are stored but ignored under DOS 3.3

SeeAlso

    INT 21 AH=0D    INT 21 AH=68    INT 2F AX=1107


INT 21 AX=5D02

21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE FILE BY NAME

AX = 5D02h
DS:DX -> DOS parameter list (see AX=5D00h), only fields DX, DS,
computer ID, and process ID used
DPL's DS:DX -> ASCIZ name of file to close

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Notes

      	error unless SHARE is loaded (calls [SysFileTable-28h]) (see AH=52h)
name must be canonical fully-qualified, such as returned by AH=60h

SeeAlso

    INT 21 AX=5D03    INT 21 AX=5D04    INT 21 AH=3E    INT 21 AH=60


INT 21 AX=5D03

21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN COMPUTER

AX = 5D03h
DS:DX -> DOS parameter list (see AX=5D00h), only computer ID used

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Note

     	error unless SHARE is loaded (calls [SysFileTable-30h]) (see AH=52h)

SeeAlso

    INT 21 AX=5D02    INT 21 AX=5D04


INT 21 AX=5D04

21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN PROCESS

AX = 5D04h
DS:DX -> DOS parameter list (see AX=5D00h), only computer ID and
process ID fields used

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Note

     	error unless SHARE is loaded (calls [SysFileTable-2Ch]) (see AH=52h)

SeeAlso

    INT 21 AX=5D02    INT 21 AX=5D03    INT 2F AX=111D


INT 21 AX=5D05

21 U - DOS 3.1+ internal - SHARE.EXE - GET OPEN FILE LIST ENTRY

AX = 5D05h
DS:DX -> DOS parameter list (see AX=5D00h)
DPL's BX = index of sharing record (see AH=52h)
DPL's CX = index of SFT in sharing record's SFT list

Return

        CF clear if successful
    ES:DI -> ASCIZ filename
    BX = network machine number of SFT's owner
    CX = number of locks held by SFT's owner
CF set if either index out of range
    AX = 0012h (no more files)

Notes

      	error unless SHARE is loaded (calls [SysFileTable-18h]) (see AH=52h)
names are always canonical fully-qualified, such as returned by AH=60h

SeeAlso

    INT 21 AH=5C    INT 21 AH=60


INT 21 AX=5D06

21 U - DOS 3.0+ internal - GET ADDRESS OF DOS SWAPPABLE DATA AREA

AX = 5D06h

Return

        CF set on error
   AX = error code (see AH=59h)
CF clear if successful
    DS:SI -> nonreentrant data area (includes all three DOS stacks)
(critical error flag is first byte)
    CX = size in bytes of area which must be swapped while in DOS
    DX = size in bytes of area which must always be swapped

Notes

      	the Critical Error flag is used in conjunction with the InDOS flag
  (see AH=34h) to determine when it is safe to enter DOS from a TSR
setting CritErr flag allows use of functions 50h/51h from INT 28h under
  DOS 2.x by forcing use of correct stack
swapping the data area allows reentering DOS unless DOS is in a
  critical section delimited by INT 2A/AH=80h and INT 2A/AH=81h,82h
under DOS 4.0, AX=5D0Bh should be used instead of this function

SeeAlso

    INT 21 AX=5D0B    INT 2A AH=80    INT 2A AH=81    INT 2A AH=82

Table Formats

DOS 3.10-3.30 Swappable Data Area:


INT 21 AX=5D07

21 U - DOS 3.1+ network - GET REDIRECTED PRINTER MODE

AX = 5D07h

Return

        DL = mode
    00h redirected output is combined
    01h redirected output in separate print jobs

SeeAlso

    INT 21 AX=5D08    INT 21 AX=5D09    INT 2F AX=1125


INT 21 AX=5D08

21 U - DOS 3.1+ network - SET REDIRECTED PRINTER MODE

AX = 5D08h
DL = mode
    00h redirected output is combined
    01h redirected output placed in separate jobs, start new print job
now

SeeAlso

    INT 21 AX=5D07    INT 21 AX=5D09    INT 2F AX=1125


INT 21 AX=5D09

21 U - DOS 3.1+ network - FLUSH REDIRECTED PRINTER OUTPUT

AX = 5D09h

Note

     	forces redirected printer output to be printed, and starts a new print
  job

SeeAlso

    INT 21 AX=5D07    INT 21 AX=5D08    INT 2F AX=1125


INT 21 AX=5D0A

21 - DOS 3.1+ - SET EXTENDED ERROR INFORMATION

AX = 5D0Ah
DS:DX -> 11-word DOS parameter list (see AX=5D00h)

Return

        nothing.  next call to AH=59h will return values from fields AX,BX,CX,
  DX,DI, and ES in corresponding registers

Note

     	documented for DOS 5+, but undocumented in earlier versions

SeeAlso

    INT 21 AH=59


INT 21 AX=5D0B

21 U - DOS 4.x only internal - GET DOS SWAPPABLE DATA AREAS

AX = 5D0Bh

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    DS:SI -> swappable data area list (see below)

Note

     	copying and restoring the swappable data areas allows DOS to be
  reentered unless it is in a critical section delimited by calls to
  INT 2A/AH=80h and INT 2A/AH=81h,82h

SeeAlso

    INT 21 AX=5D06    INT 2A AH=80    INT 2A AH=81    INT 2A AH=82

Table Formats

DOS 4.x swappable data area list:
DOS 4.0-5.0 swappable data area:


INT 21 AX=5E00

21 - DOS 3.1+ network - GET MACHINE NAME

AX = 5E00h
DS:DX -> 16-byte buffer for ASCIZ machine name

Return

        CF clear if successful
    CH = validity
00h name invalid
nonzero valid
    CL = NetBIOS number for machine name
    DS:DX buffer filled with blank-paded name
CF set on error
    AX = error code (01h) (see AH=59h)

Note

     	supported by OS/2 v1.3+ compatibility box, PC-NFS

SeeAlso

    INT 21 AX=5E01


INT 21 AX=5E01

21 - DOS 3.1+ network - SET MACHINE NAME

AX = 5E01h
CH = 00h undefine name (make it invalid)
   <> 0	 define name
CL = name number
DS:DX -> 15-character blank-padded ASCIZ name

SeeAlso

    INT 21 AX=5E00


INT 21 AX=5E02

21 - DOS 3.1+ network - SET NETWORK PRINTER SETUP STRING

AX = 5E02h
BX = redirection list index (see AX=5F02h)
CX = length of setup string
DS:SI -> setup string

Return

        CF clear if successful
CF set on error
    AX = error code (01h) (see AH=59h)

SeeAlso

    INT 21 AX=5E03    INT 2F AX=111F


INT 21 AX=5E03

21 - DOS 3.1+ network - GET NETWORK PRINTER SETUP STRING

AX = 5E03h
BX = redirection list index (see AX=5F02h)
ES:DI -> 64-byte buffer for setup string

Return

        CF clear if successful
    CX = length of setup string
    ES:DI buffer filled
CF set on error
    AX = error code (01h) (see AH=59h)

SeeAlso

    INT 21 AX=5E02    INT 2F AX=111F


INT 21 AX=5E04

21 - DOS 3.1+ network - SET PRINTER MODE

AX = 5E04h
BX = redirection list index (see AX=5F02h)
DX = mode
    bit 0: set if binary, clear if text (tabs expanded to blanks)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Note

     	calls INT 2F/AX=111Fh with 5E04h on stack

SeeAlso

    INT 21 AX=5E05    INT 2F AX=111F


INT 21 AX=5E05

21 - DOS 3.1+ network - GET PRINTER MODE

AX = 5E05h
BX = redirection list index (see AX=5F02h)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    DX = printer mode (see AX=5E04h)

Note

     	calls INT 2F/AX=111Fh with 5E05h on stack

SeeAlso

    INT 21 AX=5E04    INT 2F AX=111F


INT 21 AX=5F00

21 - DOS 3.1+ network - GET REDIRECTION MODE

AX = 5F00h
BL = redirection type
    03h printer
    04h disk drive

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    BH = redirection state
00h off
01h on

Note

     	calls INT 2F/AX=111Eh with AX on top of the stack

SeeAlso

    INT 21 AX=5F01    INT 2F AX=111E


INT 21 AX=5F01

21 - DOS 3.1+ network - SET REDIRECTION MODE

AX = 5F01h
BL = redirection type
    03h printer
    04h disk drive
BH = redirection state
    00h off
    01h on

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Notes

      	when redirection is off, the local device (if any) rather than the
  remote device is used
calls INT 2F/AX=111Eh with AX on top of the stack

SeeAlso

    INT 21 AX=5F00    INT 2F AX=111E


INT 21 AX=5F02

21 - DOS 3.1+ network, Banyan VINES, PC-NFS - GET REDIRECTION LIST ENTRY

AX = 5F02h
BX = redirection list index
CX = 0000h (LANtastic)
DS:SI -> 16-byte buffer for ASCIZ device name
ES:DI -> 128-byte buffer for ASCIZ network name

Return

        CF clear if successful
    BH = device status
00h valid
01h invalid
    BL = device type
03h printer
04h disk drive
    CX = user data previously set with AX=5F03h
    DS:SI and ES:DI buffers filled
    DX,BP destroyed
CF set on error
    AX = error code (01h,12h) (see AH=59h)

Notes

      	this function is passed through to INT 2F/AX=111Eh
error code 12h is returned if BX is greater than the size of the list
also supported by Banyan VINES, PC-NFS, and LANtastic

SeeAlso

    INT 21 AX=5F03    INT 2F AX=111E


INT 21 AX=5F03

21 - DOS 3.1+ network, Banyan VINES, LANtastic - REDIRECT DEVICE

AX = 5F03h
BL = device type
    03h printer
    04h disk drive
CX = user data to save
0000h for LANtastic
DS:SI -> ASCIZ local device name (16 bytes max)
ES:DI -> ASCIZ network name + ASCIZ password (128 bytes max total)

Return

        CF clear if successful
CF set on error
    AX = error code (01h,03h,05h,08h,0Fh,12h) (see AH=59h)

Notes

      	if device type is disk drive, DS:SI must point at either a null string
  or a string consisting the drive letter followed by a colon; if a
  null string, the network attempts to access the destination without
  redirecting a local drive
calls INT 2F/AX=111Eh with AX on top of the stack

SeeAlso

    INT 21 AX=5F02    INT 21 AX=5F04    INT 2F AX=111E


INT 21 AX=5F04

21 - DOS 3.1+ network, Banyan VINES, LANtastic - CANCEL REDIRECTION

AX = 5F04h
DS:SI -> ASCIZ device name or path

Return

        CF clear if successful
CF set on error
    AX = error code (01h,03h,05h,08h,0Fh,12h) (see AH=59h)

Notes

      	the DS:SI string must be either a local device name, a drive letter
  followed by a colon, or a network directory beginning with two
  backslashes
calls INT 2F/AX=111Eh with AX on top of the stack

SeeAlso

    INT 21 AX=5F03    INT 2F AX=111E


INT 21 AX=5F05

21 - DOS 4.x + Microsoft Networks - GET REDIRECTION LIST EXTENDED ENTRY

AX = 5F05h
BX = redirection list index
DS:SI -> buffer for ASCIZ source device name
ES:DI -> buffer for destination ASCIZ network path

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    BH = device status flag (bit 0 clear if valid)
    BL = device type (03h if printer, 04h if drive)
    CX = stored parameter value (user data)
    BP = NETBIOS local session number
    DS:SI buffer filled
    ES:DI buffer filled

Notes

      	the local session number allows sharing the redirector's session number
if an error is caused on the NETBIOS LSN, the redirector may be unable
  to correctly recover from errors
calls INT 2F/AX=111Eh with AX on top of the stack

SeeAlso

    INT 21 AX=5F06"Network"    INT 2F AX=111E


INT 21 AX=5F05

21 - STARLITE architecture - MAP LOCAL DRIVE LETTER TO REMOTE FILE SYSTEM

AX = 5F05h
DL = drive number (0=A:)
DS:SI -> ASCIZ name of the object to map the drive to

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

SeeAlso

    INT 21 AX=5F06"STARLITE"


INT 21 AX=5F06

21 U - Network - GET REDIRECTION LIST???

AX = 5F06h
???

Return

        ???

Notes

      	appears to be similar to AX=5F02h and AX=5F05h
calls INT 2F/AX=111Eh with AX on top of the stack

SeeAlso

    INT 21 AX=5F05"DOS"    INT 2F AX=111E


INT 21 AX=5F06

21 - STARLITE architecture - UNMAP DRIVE LETTER

AX = 5F06h
DL = drive to be unmapped (0=A:)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

SeeAlso

    INT 21 AX=5F05"STARLITE"


INT 21 AX=5F07

21 - DOS 5.0 - ENABLE DRIVE

AX = 5F07h
DL = drive number (0=A:)

Return

        CF clear if successful
CF set on error
    AX = error code (0Fh) (see AH=59h)

Note

     	simply sets the "valid" bit in the drive's CDS

SeeAlso

    INT 21 AH=52    INT 21 AX=5F08"DOS"


INT 21 AX=5F07

21 - STARLITE architecture - MAKE NAMED OBJECT AVAILABLE ON NETWORK

AX = 5F07h
DS:SI -> ASCIZ name of object to offer to network
ES:DI -> ASCIZ name under which object will be known on the network
MUST begin with three slashes

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

SeeAlso

    INT 21 AX=5F08"STARLITE"


INT 21 AX=5F08

21 - DOS 5.0 - DISABLE DRIVE

AX = 5F08h
DL = drive number (0=A:)

Return

        CF clear if successful
CF set on error
    AX = error code (0Fh) (see AH=59h)

Note

     	simply clears the "valid" bit in the drive's CDS

SeeAlso

    INT 21 AH=52    INT 21 AX=5F07"DOS"


INT 21 AX=5F08

21 - STARLITE architecture - REMOVE GLOBAL NETWORK NAME OF OBJECT

AX = 5F08h
DS:SI -> ASCIZ network name (not local name) of object to unshare

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

SeeAlso

    INT 21 AX=5F07"STARLITE"


INT 21 AX=5F09

21 - STARLITE architecture - BIND TO NETWORK DEVICE

AX = 5F09h
DS:DX -> ASCIZ name of the device driver to attach to

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Note

     	the STARLITE distributed file system can attach to multiple networks
  simultaneously

SeeAlso

    INT 21 AX=5F0A


INT 21 AX=5F0A

21 - STARLITE architecture - DETACH FROM NETWORK DEVICE

AX = 5F0Ah
DS:DX -> ASCIZ name of device driver to detach from

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

SeeAlso

    INT 21 AX=5F09


INT 21 AX=5F32

21 - LAN Manager Enhanced DOS API local interface - DosQNmPipeInfo

AX = 5F32h
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F33    INT 21 AX=5F34


INT 21 AX=5F33

21 - LAN Manager Enhanced DOS API local interface - DosQNmPHandState

AX = 5F33h
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F32    INT 21 AX=5F34


INT 21 AX=5F34

21 - LAN Manager Enhanced DOS API local interface - DosSetNmPHandState

AX = 5F34h
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F32    INT 21 AX=5F33    INT 21 AX=5F36


INT 21 AX=5F35

21 - LAN Manager Enhanced DOS API local interface - DosPeekNmPipe

AX = 5F35h
???

Note

     	supported by Novell DOS Named Pipe Extender

Return

        ???

SeeAlso

    INT 21 AX=5F38    INT 21 AX=5F39    INT 21 AX=5F51


INT 21 AX=5F36

21 - LAN Manager Enhanced DOS API local interface - DosTransactNmPipe

AX = 5F36h
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F34    INT 21 AX=5F37


INT 21 AX=5F37

21 - LAN Manager Enhanced DOS API local interface - DosCallNmPipe

AX = 5F37h
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F36    INT 21 AX=5F38


INT 21 AX=5F38

21 - LAN Manager Enhanced DOS API local interface - DosWaitNmPipe

AX = 5F38h
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F37    INT 21 AX=5F39


INT 21 AX=5F39

21 - LAN Manager Enhanced DOS API local interface - DosRawReadNmPipe

AX = 5F39h
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F35    INT 21 AX=5F3A    INT 2F AX=1186


INT 21 AX=5F3A

21 - LAN Manager Enhanced DOS API local interface - DosRawWriteNmPipe

AX = 5F3Ah
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F3B    INT 2F AX=118F


INT 21 AX=5F3B

21 - LAN Manager Enhanced DOS API local interface - NetHandleSetInfo

AX = 5F3Bh
???

Return

        ???

SeeAlso

    INT 21 AX=5F3C


INT 21 AX=5F3C

21 - LAN Manager Enhanced DOS API local interface - NetHandleGetInfo

AX = 5F3Ch
???

Return

        ???

SeeAlso

    INT 21 AX=5F3B


INT 21 AX=5F40

21 - LAN Manager Enhanced DOS API local interface - NetMessageBufferSend

AX = 5F40h
???

Return

        ???


INT 21 AX=5F42

21 - LAN Manager Enhanced DOS API local interface - NetServiceControl

AX = 5F42h
???

Return

        ???


INT 21 AX=5F44

21 - LAN Manager Enhanced DOS API local interface - NetWkstaGetInfo

AX = 5F44h
???

Return

        ???

SeeAlso

    INT 21 AX=5F45    INT 21 AX=5F49


INT 21 AX=5F45

21 - LAN Manager Enhanced DOS API local interface - NetWkstaSetInfo

AX = 5F45h
???

Return

        ???

SeeAlso

    INT 21 AX=5F44


INT 21 AX=5F46

21 - LAN Manager Enhanced DOS API local interface - NetUseEnum

AX = 5F46h
???

Return

        ???

SeeAlso

    INT 21 AX=5F47    INT 21 AX=5F48    INT 21 AX=5F4C


INT 21 AX=5F47

21 - LAN Manager Enhanced DOS API local interface - NetUseAdd

AX = 5F47h
???

Return

        ???

SeeAlso

    INT 21 AX=5F46    INT 21 AX=5F48


INT 21 AX=5F48

21 - LAN Manager Enhanced DOS API local interface - NetUseDel

AX = 5F48h
???

Return

        ???

SeeAlso

    INT 21 AX=5F46    INT 21 AX=5F48    INT 21 AX=5F49


INT 21 AX=5F49

21 - LAN Manager Enhanced DOS API local interface - NetUseGetInfo

AX = 5F49h
???

Return

        ???

SeeAlso

    INT 21 AX=5F44    INT 21 AX=5F47


INT 21 AX=5F4A

21 - LAN Manager Enhanced DOS API local interface - NetRemoteCopy

AX = 5F4Ah
???

Return

        ???

SeeAlso

    INT 21 AX=5F4B


INT 21 AX=5F4B

21 - LAN Manager Enhanced DOS API local interface - NetRemoteMove

AX = 5F4Bh
???

Return

        ???

SeeAlso

    INT 21 AX=5F4A


INT 21 AX=5F4C

21 - LAN Manager Enhanced DOS API local interface - NetServerEnum

AX = 5F4Ch
???

Return

        ???

Note

     	supported by Novell DOS Named Pipe Extender

SeeAlso

    INT 21 AX=5F53


INT 21 AX=5F4D

21 - LAN Manager Enhanced DOS API local interface - DosMakeMailslot

AX = 5F4Dh
???

Return

        ???

SeeAlso

    INT 21 AX=5F4E    INT 21 AX=5F4F    INT 21 AX=5F50    INT 21 AX=5F51


INT 21 AX=5F4E

21 - LAN Manager Enhanced DOS API local interface - DosDeleteMailslot

AX = 5F4Eh
???

Return

        ???

SeeAlso

    INT 21 AX=5F4D    INT 21 AX=5F4F


INT 21 AX=5F4F

21 - LAN Manager Enhanced DOS API local interface - DosMailslotInfo

AX = 5F4Fh
???

Return

        ???

SeeAlso

    INT 21 AX=5F4D    INT 21 AX=5F4E    INT 21 AX=5F50


INT 21 AX=5F50

21 - LAN Manager Enhanced DOS API local interface - DosReadMailslot

AX = 5F50h
???

Return

        ???

SeeAlso

    INT 21 AX=5F4D    INT 21 AX=5F4F    INT 21 AX=5F51    INT 21 AX=5F52


INT 21 AX=5F51

21 - LAN Manager Enhanced DOS API local interface - DosPeekMailslot

AX = 5F51h
???

Return

        ???

SeeAlso

    INT 21 AX=5F35    INT 21 AX=5F4F    INT 21 AX=5F50    INT 21 AX=5F52


INT 21 AX=5F52

21 - LAN Manager Enhanced DOS API local interface - DosWriteMailslot

AX = 5F52h
???

Return

        ???

SeeAlso

    INT 21 AX=5F4F    INT 21 AX=5F50    INT 21 AX=5F51


INT 21 AX=5F53

21 - LAN Manager Enhanced DOS API local interface - NetServerEnum2

AX = 5F53h
???

Return

        ???

SeeAlso

    INT 21 AX=5F4C


INT 21 AX=5F80

21 - LANtastic - GET LOGIN ENTRY

AX = 5F80h
BX = login entry index (0-based)
ES:DI -> 16-byte buffer for machine name

Return

        CF clear if successful
    buffer filled with machine name ("\\" prefix removed)
    DL = adapter number (v3+)
CF set on error
    AX = error code

Note

     	the login entry index corresponds to the value BX used in AX=5F83h

SeeAlso

    INT 21 AX=5F83


INT 21 AX=5F81

21 - LANtastic - LOGIN TO SERVER

AX = 5F81h
ES:DI -> ASCIZ login path followed immediately by ASCIZ password
BL = adapter number
    FFh try all valid adapters
    00h-07h try only specified adapter

Return

        CF clear if successful
CF set on error
    AX = error code

Notes

      	login path is of form "\\machine\username"
if no password is used, the string at ES:DI must be terminated with
  three NULs for compatibility with LANtastic v3.0.

SeeAlso

    INT 21 AX=5F82    INT 21 AX=5F84


INT 21 AX=5F82

21 - LANtastic - LOGOUT FROM SERVER

AX = 5F82h
ES:DI -> ASCIZ server name (in form "\\machine")

Return

        CF clear if successful
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5F81    INT 21 AX=5F88    INT 21 AX=5FCB


INT 21 AX=5F83

21 - LANtastic - GET USERNAME ENTRY

AX = 5F83h
BX = login entry index (0-based)
ES:DI -> 16-byte buffer for username currently logged into

Return

        CF clear if successful
    DL = adapter number (v3+)
CF set on error
    AX = error code

Note

     	the login entry index corresponds to the value BX used in AX=5F80h

SeeAlso

    INT 21 AX=5F80


INT 21 AX=5F84

21 - LANtastic - GET INACTIVE SERVER ENTRY

AX = 5F84h
BX = server index not currently logged into
ES:DI -> 16-byte buffer for server name which is available for logging
in to ("\\" prefix omitted)

Return

        CF clear if successful
    DL = adapter number to non-logged in server is on
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5F81


INT 21 AX=5F85

21 - LANtastic - CHANGE PASSWORD

AX = 5F85h
ES:DI -> buffer containing "\\machine\oldpassword" 00h "newpassword"00h

Return

        CF clear if successful
CF set on error
    AX = error code

Notes

      	must be logged into the named machine
this function is illegal for group accounts


INT 21 AX=5F86

21 - LANtastic - DISABLE ACCOUNT

AX = 5F86h
ES:DI -> ASCIZ machine name and password in form "\\machine\password"

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	must be logged into the named machine and concurrent logins set to 1
  by NET_MGR.  Requires system manager to re-enable account.


INT 21 AX=5F87

21 - LANtastic v3+ - GET ACCOUNT

AX = 5F87h
DS:SI -> 128-byte buffer for account information (see below)
ES:DI -> ASCIZ machine name in form "\\machine"

Return

       	CF clear if successful
CF set on error
    AX = error code
BX destroyed

Note

     	must be logged into the specified machine

Table Formats

User account structure:


INT 21 AX=5F88

21 - LANtastic v4.0+ - LOGOUT FROM ALL SERVERS

AX = 5F88h

Return

       	CF clear if successful
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5F82


INT 21 AX=5F97

21 - LANtastic - COPY FILE

AX = 5F97h
CX:DX = number of bytes to copy (FFFFFFFFh = entire file)
SI = source file handle
DI = destination file handle

Return

        CF clear if successful
    DX:AX = number of bytes copied
CF set on error
    AX = error code

Note

     	copy is performed by server


INT 21 AX=5F98

21 - LANtastic - SEND UNSOLICITED MESSAGE

AX = 5F98h
DS:SI -> message buffer (see below)

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	v4.1- return no errors

SeeAlso

    INT 21 AX=5F99

Table Formats

Message buffer:


INT 21 AX=5F99

21 - LANtastic - GET LAST RECEIVED UNSOLICITED MESSAGE

AX = 5F99h
ES:DI -> messsage buffer (see AX=5F98h for format)

Return

        CF clear if successful
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5F98


INT 21 AX=5F9A

21 - LANtastic - GET MESSAGE PROCESSING FLAGS

AX = 5F9Ah

Return

        CF clear if successful
    DL = bits describing processing for received unsolicited messages
bit 0: beep before message is delivered
    1: deliver message to message service
    2: pop up message automatically (v3+)
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5F9B    INT 21 AX=5F9C    INT 21 AX=5F9D


INT 21 AX=5F9B

21 - LANtastic - SET MESSAGE PROCESSING FLAG

AX = 5F9Bh
DL = bits describing processing for received unsolicited messages
     (see AX=5F9Ah)

Return

        CF clear if successful
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5F9A    INT 21 AX=5F9E


INT 21 AX=5F9C

21 - LANtastic v3+ - POP UP LAST RECEIVED MESSAGE

AX = 5F9Ch
CX = time to leave on screen in clock ticks
DH = 0-based screen line on which to place message

Return

       	CF clear if successful
CF set on error
    AX = error code (0Bh)

Notes

      	the original screen contents are restored when the message is removed
the message will not appear, and an error will be returned, if the
  screen is in a graphics mode

SeeAlso

    INT 21 AX=5F9A


INT 21 AX=5F9D

21 - LANtastic v4.1+ - GET REDIRECTOR CONTROL BITS

AX = 5F9Dh

Return

       	DL = redirector control bits
bit 7: set to notify on print job completion

SeeAlso

    INT 21 AX=5F9A    INT 21 AX=5F9E


INT 21 AX=5F9E

21 - LANtastic v4.1+ - SET REDIRECTOR CONTROL BITS

AX = 5F9Eh
DL = redirector control bits (see AH = 5F9Dh)

Return

        nothing

SeeAlso

    INT 21 AX=5F9B    INT 21 AX=5F9D


INT 21 AX=5FA0

21 - LANtastic - GET QUEUE ENTRY

AX = 5FA0h
BX = queue entry index (0000h is first entry)
DS:SI -> buffer for queue entry (see below)
ES:DI -> ASCIZ server name in form "\\name"

Return

        CF clear if successful
CF set on error
    AX = error code
BX = entry index for next queue entry (BX-1 is current index)

SeeAlso

    INT 21 AX=5FA1    INT 21 AX=5FA2

Table Formats

Queue entry:


INT 21 AX=5FA1

21 - LANtastic - SET QUEUE ENTRY

AX = 5FA1h
BX = handle of opened queue entry
DS:SI -> queue entry (see AX=5FA0h)

Return

        CF clear if successful
CF set on error
    AX = error code

Notes

      	the only queue entry fields which may be changed are output control,
  number of copies, destination device, and comment
the handle in BX is that from a create or open (INT 21/AH=3Ch,3Dh)
  call on the file "\\server\\@MAIL" or "\\server\@name" (for
  printer queue entries)

SeeAlso

    INT 21 AX=5FA0    INT 21 AX=5FA2    INT 21 AX=5FA9


INT 21 AX=5FA2

21 - LANtastic - CONTROL QUEUE

AX = 5FA2h
BL = control command
    00h start despooling (privileged)
    01h halt despooling (privileged)
    02h halt despooling at end of job (privileged)
    03h pause despooler at end of job (privileged)
    04h print single job (privileged)
    05h restart current job (privileged)
    06h cancel the current job
    07h hold queue entry
    08h release a held queue entry
    09h make queue entry a rushed job (privileged)
CX:DX = sequence number to control (commands 06h-09h)
DX = physical printer number (commands 00h-05h)
    00h-02h LPT1-LPT3
    03h,04h COM1,COM2
    other	all printers
ES:DI -> ASCIZ server name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code


INT 21 AX=5FA3

21 - LANtastic v3+ - GET PRINTER STATUS

AX = 5FA3h
BX = physical printer number (00h-02h = LPT1-LPT3, 03h-04h = COM1-COM2)
DS:SI -> buffer for printer status (see below)
ES:DI -> ASCIZ server name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code
BX = next physical printer number

Note

     	you must be logged in to the specified server

Table Formats

Printer status:


INT 21 AX=5FA4

21 - LANtastic v3+ - GET STREAM INFO

AX = 5FA4h
BX = 0-based stream index number
DS:SI -> buffer for stream information (see below)
ES:DI -> ASCIZ machine name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code
BX = next stream number

SeeAlso

    INT 21 AX=5FA5

Table Formats

Stream information:


INT 21 AX=5FA5

21 - LANtastic v3+ - SET STREAM INFO

AX = 5FA5h
BX = 0-based stream index number
DS:SI -> buffer containing stream information (see AX=5FA4h)
ES:DI -> ASCIZ machine name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5FA4


INT 21 AX=5FA7

21 - LANtastic - CREATE USER AUDIT ENTRY

AX = 5FA7h
DS:DX -> ASCIZ reason code (max 8 bytes)
DS:SI -> ASCIZ variable reason string (max 128 bytes)
ES:DI -> ASCIZ machine name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	you must be logged in to the specified server and have the "U"
  privilege to execute this call


INT 21 AX=5FA9

21 - LANtastic v4.1+ - SET EXTENDED QUEUE ENTRY

AX = 5FA9h
BX = handle of opened queue entry
DS:SI -> queue entry (see AX=5FA0h)

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	functions exactly the same as AX=5FA1h except the spooled filename is
  also set.  This call supports	direct despooling.

SeeAlso

    INT 21 AX=5FA1


INT 21 AX=5FB0

21 - LANtastic - GET ACTIVE USER INFORMATION

AX = 5FB0h
BX = server login entry index
DS:SI -> buffer for active user entry (see below)
ES:DI -> ASCIZ machine name in form "\\server"

Return

        CF clear if successful
CF set on error
    AX = error code
BX = next login index

Table Formats

Active user entry:
Values for last command:
 00h	login
 01h	process termination
 02h	open file
 03h	close file
 04h	create file
 05h	create new file
 06h	create unique file
 07h	commit data to disk
 08h	read file
 09h	write file
 0Ah	delete file
 0Bh	set file attributes
 0Ch	lock byte range
 0Dh	unlock byte range
 0Eh	create subdirectory
 0Fh	remove subdirectory
 10h	rename file
 11h	find first matching file
 12h	find next matching file
 13h	get disk free space
 14h	get a queue entry
 15h	set a queue entry
 16h	control the queue
 17h	return login information
 18h	return link description
 19h	seek on file
 1Ah	get server's time
 1Bh	create audit entry
 1Ch	open file in multitude of modes
 1Dh	change password
 1Eh	disable account
 1Fh	local server file copy
---v3+---
 20h	get username from account file
 21h	translate server's logical path
 22h	make indirect file
 23h	get indirect file contents
 24h	get physical printer status
 25h	get logical print stream info
 26h	set logical print stream info
 27h	get user's account record
---v4+---
 28h	request server shutdown
 29h	cancel server shutdown
 2Ah	stuff server's keyboard
 2Bh	write then commit data to disk
 2Ch	set extended queue entry
 2Dh	terminate user from server
 2Eh	enable/disable logins
 2Fh	flush server caches
 30h	change username
 31h	get extended queue entry
(same as get queue, but can return named fields blanked)


INT 21 AX=5FB1

21 - LANtastic - GET SHARED DIRECTORY INFORMATION

AX = 5FB1h
DS:SI -> 64-byte buffer for link description
ES:DI -> ASCIZ machine and shared directory name in form
 "\\machine\shared-resource"

Return

        CF clear if successful
    CX = access control list privilege bits for requesting user
bit 4: (I) allow expansion of indirect files
    5: (A) allow attribute changing
    6: (P) allow physical access to device
    7: (E) allow program execution
    8: (N) allow file renaming
    9: (K) allow directory deletion
   10: (D) allow file deletion
   11: (L) allow file/directory lookups
   12: (M) allow directory creation
   13: (C) allow file creation
   14: (W) allow open for write and writing
   15: (R) allow open for read and reading
CF set on error
    AX = error code


INT 21 AX=5FB2

21 - LANtastic v3+ - GET USERNAME FROM ACCOUNT FILE

AX = 5FB2h
BX = username entry index (0 for first)
DS:SI -> 16-byte buffer for username
ES:DI -> ASCIZ server name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code
BX = next queue entry index


INT 21 AX=5FB3

21 - LANtastic v3+ - TRANSLATE PATH

AX = 5FB3h
DS:SI -> 128-byte buffer for ASCIZ result
ES:DI -> full ASCIZ path, including server name
DX = types of translation to be performed
    bit 0: expand last component as indirect file
1: return actual path relative to server's physical disk

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	always expands any indirect files along the path
SeeALso: AX=5FB4h


INT 21 AX=5FB4

21 - LANtastic v3+ - CREATE INDIRECT FILE

AX = 5FB4h
DS:SI -> 128-byte buffer containing ASCIZ contents of indirect file
ES:DI -> full ASCIZ path of indirect file to create, incl machine name

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	the contents of the indirect file may be any valid server-relative path


INT 21 AX=5FB5

21 - LANtastic v3+ - GET INDIRECT FILE CONTENTS

AX = 5FB5h
DS:SI -> 128-byte buffer for ASCIZ indirect file contents
ES:DI -> full ASCIZ path of indirect file

Return

        CF clear if successful
CF set on error
    AX = error code


INT 21 AX=5FB6

21 - LANtastic v4.1+ - SET AUTO-LOGIN DEFAULTS

AX = 5FB6h
ES:DI -> pointer to ASCIZ default user name, immediately followed by
ASCIZ password
BL = adapter number to use for default login attempt
    FFh try all valid adapters
    00h-05h try adapter 0-5 explicitly

Return

        CF clear if successful
CF set on error
    AX = error code

Notes

      	call with ES:DI -> two nulls to disable auto-login

SeeAlso

    INT 21 AX=5FB7


INT 21 AX=5FB7

21 - LANtastic v4.1+ - GET AUTO-LOGIN DEFAULTS

AX = 5FB7h
ES:DI -> pointer to 16-byte buffer to store ASCIZ auto-login user name

Return

        CF clear if successful
    DL = adapter number used for default login attempt
FFh all valid adapters will be tried
00h-05h specified adapter will be tried explicitly
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5F81    INT 21 AX=5FB6


INT 21 AX=5FC0

21 - LANtastic - GET TIME FROM SERVER

AX = 5FC0h
DS:SI -> time block (see below)
ES:DI -> ASCIZ server name to get time from

Return

        CF clear if successful
CF set on error
    AX = error code

Table Formats

Time block:


INT 21 AX=5FC8

21 - LANtastic v4.0+ - SCHEDULE SERVER SHUTDOWN

AX = 5FC8h
ES:DI -> ASCIZ server name in form "\\machine"
DS:SI -> ASCIZ reason string (80 characters)
CX = number of minutes until shutdown (0 = immediate)
DX = option flags (see below)
    bit 0: auto reboot
1: do not notify users
2: halt after shutdown
3: shutdown due to power fail (used by UPS)
    bits 4-7: reserved
    bits 8-14: user definable
    bit 15: reserved

Return

        CF clear if successful
CF set on error
    AX = error code

SeeAlso

    INT 21 AH=5F    9


INT 21 AX=5FC9

21 - LANtastic v4.0+ - CANCEL SERVER SHUTDOWN

AX = 5FC9h
ES:DI -> ASCIZ server name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	you must have the "S" privilege to use this call

SeeAlso

    INT 21 AH=5F    8


INT 21 AX=5FCA

21 - LANtastic v4.0+ - STUFF SERVER KEYBOARD BUFFER

AX = 5FCAh
ES:DI -> ASCIZ server name in form "\\machine"
DS:SI -> ASCIZ string to stuff (128 bytes)

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	you must have the "S" privilege to use this call
maximum number of characters that can be stuffed is determined by the
  server's RUN BUFFER SIZE.


INT 21 AX=5FCB

21 - LANtastic v4.1+ - TERMINATE USER

AX = 5FCBh
ES:DI -> ASCIZ server name in form "\\machine"
DS:SI -> blank-padded username.	 A null char = wildcard.
DS:DX -> blank-padded machine name.  A null char = wildcard.
CX = minutes until termination (0 = immediate)

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	you must have the "S" privilege to use this call
you cannot log yourself out using this call

SeeAlso

    INT 21 AX=5F82


INT 21 AX=5FCC

21 - LANtastic v4.1+ - GET/SET SERVER CONTROL BITS

AX = 5FCCh
ES:DI -> ASCIZ server name in form "\\machine"
CX = bit values (value of bits you want to set)	 See below.
DX = bit mask (bits you are interested in, 0 = get only)  See
below.

Return

        CF clear if successful
    CX = control bits after call
bit 0: disable logins
CF set on error
    AX = error code

Note

     	you must have the "S" privilege to SET, anyone can GET.


INT 21 AX=5FCD

21 - LANtastic v4.1+ - FLUSH SERVER CACHES

AX = 5FCDh
ES:DI -> ASCIZ server name in form "\\machine"

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	you must have the "S" privilege to use this call.


INT 21 AX=5FD0

21 - LANtastic - GET REDIRECTED PRINTER TIMEOUT

AX = 5FD0h

Return

        CF clear if successful
    CX = redirected printer timeout in clock ticks of 55ms
0000h if timeout disabled
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5FD1


INT 21 AX=5FD1

21 - LANtastic - SET REDIRECTED PRINTER TIMEOUT

AX = 5FD1h
CX = printer timeout in clock ticks of 55ms, 0000h to disable timeouts

Return

        CF clear if successful
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5FD0


INT 21 AX=5FE0

21 C - LANtastic - GET DOS SERVICE VECTOR

AX = 5FE0h

Return

        CF clear if successful
    ES:BX -> current FAR service routine
CF set on error
    AX = error code

Note

     	the service routine is called by the LANtastic redirector whenever DOS
  may safely be called, permitting external TSRs and drivers to hook
  into LANtastic's DOS busy flag checking

SeeAlso

    INT 21 AX=5FE1    INT 28INT 2A/AH=84


INT 21 AX=5FE1

21 - LANtastic - SET DOS SERVICE VECTOR

AX = 5FE1h
ES:BX -> FAR routine to call when DOS services are available

Return

        CF clear if successful
CF set on error
    AX = error code

Note

     	new handler must chain to previous handler as its first action

SeeAlso

    INT 21 AX=5FE0


INT 21 AX=5FE2

21 - LANtastic - GET MESSAGE SERVICE VECTOR

AX = 5FE2h

Return

        CF clear if successful
    ES:BX -> current FAR message service routine
CF set on error
    AX = error code

SeeAlso

    INT 21 AX=5FE3


INT 21 AX=5FE3

21 - LANtastic - SET MESSAGE SERVICE VECTOR

AX = 5FE3h
ES:BX -> FAR routine for processing network messages

Return

        CF clear if successful
CF set on error
    AX = error code

Notes

      	handler must chain to previous handler as its first action
on invocation, ES:BX -> just-received message

SeeAlso

    INT 21 AX=5FE2


INT 21 AH=60

21 - DOS 3.0+ - CANONICALIZE FILENAME OR PATH

AH = 60h
DS:SI -> ASCIZ filename or path
ES:DI -> 128-byte buffer for canonicalized name

Return

        CF set on error
    AX = error code
02h invalid component in directory path or drive letter only
03h malformed path or invalid drive letter
    ES:DI buffer unchanged
CF clear if successful
    AH = 00h
    AL = destroyed (00h or 5Ch or last char of current dir on drive)
    buffer filled with qualified name of form D:\PATH\FILE.EXT or
      \\MACHINE\PATH\FILE.EXT

Notes

      	the input path need not actually exist
letters are uppercased, forward slashes converted to backslashes,
  asterisks converted to appropriate number of question marks, and
  file and directory names are truncated to 8.3 if necessary.
'.' and '..' in the path are resolved
filespecs on local drives always start with "d:", those on network
  drives always start with "\\"
if path string is on a JOINed drive, the returned name is the one that
  would be needed if the drive were not JOINed; similarly for a
  SUBSTed, ASSIGNed, or network drive letter.	Because of this, it is
  possible to get a qualified name that is not legal under the current
  combination of SUBSTs, ASSIGNs, JOINs, and network redirections
under DOS 3.3 through 5.00, a device name is translated differently if
  the device name does not have an explicit directory or the directory
  is \DEV (relative directory DEV from the root directory works
  correctly).  In these cases, the returned string consists of the
  unchanged device name and extension appended to the string X:/
  (forward slash instead of backward slash as in all other cases) where
  X is the default or explicit drive letter.
functions which take pathnames require canonical paths if invoked via
  INT 21/AX=5D00h
supported by OS/2 v1.1 compatibility box
NetWare 2.1x does not support characters with the high bit set; early
  versions of NetWare 386 support such characters except in this call.
  In addition, NetWare returns error code 3 for the path "X:\"; one
  should use "X:\." instead.
for DOS 3.3-5.0, the input and output buffers may be the same, as the
  canonicalized name is built in an internal buffer and copied to the
  specified output buffer as the very last step
for DR DOS 6.0, this function is not automatically called when on a
  network.  Device drivers reportedly cannot make this call from their
  INIT function.  Using the same pointer for both input and output
  buffers is not supported in the April 1992 and earlier versions of
  DR DOS

SeeAlso

    INT 2F AX=1123    INT 2F AX=1221


INT 21 AH=61

21 - DOS 3+ - UNUSED

AH = 61h

Return

        AL = 00h

Note

     	this function does nothing and returns immediately


INT 21 AH=62

21 - DOS 3+ - GET CURRENT PSP ADDRESS

AH = 62h

Return

        BX = segment of PSP for current process

Notes

      	under DOS 3+, this function does not use any of the DOS-internal stacks
  and may thus be called at any time, even during another INT 21h call
the current PSP is not necessarily the caller's PSP
identical to the undocumented AH=51h

SeeAlso

    INT 21 AH=50    INT 21 AH=51


INT 21 AX=6300

21 - DOS 2.25 only - GET LEAD BYTE TABLE ADDRESS

AX = 6300h

Return

        CF clear if successful
    DS:SI -> lead byte table (see below)
CF set on error
    AX = error code (01h) (see AH=59h)

Notes

      	does not preserve any registers other than SS:SP
the US version of MSDOS 3.30 treats this as an unused function,
  setting AL=00h and returning immediately

SeeAlso

    INT 21 AX=6301    INT 21 AH=07    INT 21 AH=08    INT 21 AH=0B

Table Formats

Lead byte table entry:


INT 21 AX=6300

21 - Far East DOS 3.2+ - GET DOUBLE BYTE CHARACTER SET LEAD TABLE

AX = 6300h

Return

        AL = error code
    00h successful
DS:SI -> DBCS table (see below)
all other registers except CS:IP and SS:SP destroyed
    FFh not supported

Notes

      	probably identical to AH=63h/AL=00h for DOS 2.25
the US version of MSDOS 3.30 treats this as an unused function,
  setting AL=00h and returning immediately
the US version of DOS 4.0+ accepts this function, but returns an empty
  list

SeeAlso

    INT 21 AX=6300"DOS 2.25"

Table Formats

DBCS table:


INT 21 AX=6301

21 - DOS 2.25, Far East DOS 3.2+ - SET KOREAN (HANGUL) INPUT MODE

AX = 6301h
DL = new mode
    00h return only full characters on DOS keyboard input functions
    01h	return partially-formed characters also

Return

        AL = status
    00h successful
    FFh invalid mode

SeeAlso

    INT 21 AH=07    INT 21 AH=08    INT 21 AH=0B    INT 21 AH=63    INT 21 AX=6302


INT 21 AX=6302

21 - DOS 2.25, Far East DOS 3.2+ - GET KOREAN (HANGUL) INPUT MODE

AX = 6302h

Return

        AL = status
    00h successful
DL = current input mode
    00h return only full characters
    01h return partial characters
    FFh not supported

SeeAlso

    INT 21 AH=07    INT 21 AH=08    INT 21 AH=0B    INT 21 AH=63    INT 21 AX=6301


INT 21 AH=64

21 - DOS 3.2+ internal - SET DEVICE DRIVER LOOKAHEAD FLAG

AH = 64h
AL = flag
00h (default) call device driver function 5 (non-dest read)
before INT 21/AH=01h,08h,0Ah
    nonzero don't call driver function 5

Return

        nothing

Notes

      	called by DOS 3.3+ PRINT.COM
does not use any of the DOS-internal stacks and is thus fully
  reentrant

SeeAlso

    INT 21 AH=01    INT 21 AH=08    INT 21 AH=0A    INT 21 AX=5D06


INT 21 AH=64

21 - OS/2 v2.0 Virtual DOS Machine - GET/SET TASK TITLE

AH = 64h
BX = 0000h
CX = 636Ch
DX = function
    0000h enable automatic title switch on INT 21/AH=4Bh
    0001h set session title
ES:DI -> new ASCIZ title or "" to restore original title
    0002h get session title
ES:DI -> buffer for current title
Return: buffer filled (single 00h if title never changed)

SeeAlso

    INT 15 AH=12    /BH=05h    INT 21 AH=4B


INT 21 AH=65

21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION

AH = 65h
AL = info ID
    01h get general internationalization info
    02h get pointer to uppercase table
    04h get pointer to filename uppercase table
    05h get pointer to filename terminator table
    06h get pointer to collating sequence table
    07h (DOS 4+) get pointer to Double-Byte Character Set table
BX = code page (-1=global code page)
DX = country ID (-1=current country)
ES:DI -> country information buffer (see below)
CX = size of buffer (>= 5)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if succesful
    CX = size of country information returned
    ES:DI -> country information

Notes

      	AL=05h appears to return same info for all countries and codepages; it
  has been documented for DOS 5.0, but was undocumented in ealier
  versions
NLSFUNC must be installed to get info for countries other than the
  default
subfunctions 02h and 04h are identical under OS/2

SeeAlso

    INT 21 AH=38    INT 2F AX=1401    INT 2F AX=1402

Table Formats

Country information:
Uppercase table:
Collating table:
Filename terminator table:
Filename uppercase table:
DBCS lead byte table:


INT 21 AH=65

21 - DOS 4+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION

AH = 65h
AL = function
    20h capitalize character
DL = character to capitalize
Return: DL = capitalized character
    21h capitalize string
DS:DX -> string to capitalize
CX = length of string
    22h capitalize ASCIZ string
DS:DX -> ASCIZ string to capitalize

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Note

     	these calls have been documented for DOS 5+, but were undocumented in
  DOS 4.x.


INT 21 AX=6523

21 U - DOS 4+ internal - DETERMINE IF CHARACTER REPRESENTS YES/NO RESPONSE

AX = 6523h
DL = character
DH = second character of double-byte character (if applicable)

Return

        CF set on error
CF clear if successful
    AX = type
00h no
01h yes
02h neither yes nor no


INT 21 AH=65

21 U - DOS 4+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION

AH = 65h
AL = function
    A0h capitalize filename character
DL = character to capitalize
Return: DL = capitalized character
    A1h capitalize counted filename string
DS:DX -> filename string to capitalize
CX = length of string
    A2h capitalize ASCIZ filename
DS:DX -> ASCIZ filename to capitalize

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

Note

     	nonfunctional in DOS 4.00 through 5.00 due to a bug (the code sets a
  pointer depending on the high bit of AL, but doesn't clear the
  bit before branching by function number).


INT 21 AX=6601

21 - DOS 3.3+ - GET GLOBAL CODE PAGE TABLE

AX = 6601h

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    BX = active code page (see AX=6602h)
    DX = system code page

SeeAlso

    INT 21 AX=6602


INT 21 AX=6602

21 - DOS 3.3+ - SET GLOBAL CODE PAGE TABLE

AX = 6602h
BX = active code page
    437 US
    850 Multilingual
    852 Slavic/Latin II (DOS 5+)
    857 Turkish
    860 Portugal
    861	Iceland
    863 Canada (French)
    865 Norway/Denmark
DX = system code page (active page at boot time)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful

SeeAlso

    INT 21 AX=6601


INT 21 AH=67

21 - DOS 3.3+ - SET HANDLE COUNT

AH = 67h
BX = size of new file handle table for process

Return

        CF clear if successful
CF set on error
    AX = error code (see AH=59h)

Desc

     	adjust the size of the per-process open file table, thus raising or
  lowering the limit on the number of files the caller can open
  simultaneously

Notes

      	if BX <= 20, no action is taken if the handle limit has not yet been
  increased, and the table is copied back into the PSP if the limit
  is currently > 20 handles
for file handle tables of > 20 handles, DOS 3.30 never reuses the
  same memory block, even if the limit is being reduced; this can lead
  to memory fragmentation as a new block is allocated and the existing
  one freed
only the first 20 handles are copied to child processes in DOS 3.3

BUG

    	the original release of DOS 3.30 allocates a full 64K for the handle
  table on requests for an even number of handles

SeeAlso

    INT 21 AH=26    INT 21 AH=86


INT 21 AH=68

21 - DOS 3.3+ - "FFLUSH" - COMMIT FILE

AH = 68h
BX = file handle

Return

        CF clear if successful
    all data still in DOS disk buffers is written to disk immediately,
      and the file's directory entry is updated
CF set on error
    AX = error code (see AH=59h)

SeeAlso

    INT 21 AX=5D01    INT 21 AH=6A    INT 2F AX=1107


INT 21 AH=69

21 U - DOS 4+ internal - GET/SET DISK SERIAL NUMBER

AH = 69h
AL = subfunction
    00h	get serial number
    01h set serial number
BL = drive (0=default, 1=A, 2=B, etc)
DS:DX -> disk info (see below)

Return

        CF set on error
    AX = error code (see AH=59h)
CF clear if successful
    AX destroyed
    (AL = 00h) buffer filled with appropriate values from extended BPB
    (AL = 01h) extended BPB on disk set to values from buffer

Notes

      	does not generate a critical error; all errors are returned in AX
error 0005h given if no extended BPB on disk
does not work on network drives (error 0001h)
buffer after first two bytes is exact copy of bytes 27h thru 3Dh of
  extended BPB on disk
this function is supported under Novell NetWare versions 2.0A through
  3.11; the returned serial number is the one a DIR would display,
  the volume label is the NetWare volume label, and the file system
  is set to "FAT16".
the serial number is computed from the current date and time when the
  disk is created; the first part is the sum of the seconds/hundredths
  and month/day, the second part is the sum of the hours/minutes and
  year
the volume label which is read or set is the one stored in the extended
  BPB on disks formatted with DOS 4.0+, rather than the special root
  directory entry used by the DIR command in COMMAND.COM (use AH=11h
  to find that volume label)

SeeAlso

    INT 21 AX=440D

Table Formats

Disk info:


INT 21 AH=69

21 - DR-DOS 5.0 - NULL FUNCTION

AH = 69h

Return

        AL = 00h

SeeAlso

    INT 21 AH=18


INT 21 AX=6969

21 - VIRUS - "Rape-747" - INSTALLATION CHECK

AX = 6969h

Return

        AX = 0666h if resident

SeeAlso

    INT 21 AX=58CC    INT 21 AH=76"VIRUS"


INT 21 AH=6A

21 U - DOS 4+ - COMMIT FILE

AH = 6Ah
BX = file handle

Return

        CF clear if successful
    AH = 68h
CF set on error
    AX = error code (06h) (see AH=59h)

Note

     	identical to AH=68h in DOS 5.0; not known whether this is the case in
  DOS 4.x

SeeAlso

    INT 21 AH=68


INT 21 AH=6B

21 U - DOS 4.0 internal - ???

AH = 6Bh
AL = subfunction
    00h ???
DS:SI -> Current Directory Structure???
CL = drive (1=A:)
    01h ???
DS:SI -> ???
CL = file handle???
    02h ???
DS:SI -> Current Directory Structure???
DI = ???
CX = drive (1=A:)

Return

        CF set on error
    AX = error code (see INT 21/AH=59h)
CF clear if successful

Note

     	passed through to INT 2F/AX=112Fh with AX on top of stack

SeeAlso

    INT 21 AH=6B"DOS 5"    INT 2F AX=112F


INT 21 AH=6B

21 U - DOS 5.0 - NULL FUNCTION

AH = 6Bh

Return

        AL = 00h

Note

     	this function does nothing and returns immediately

SeeAlso

    INT 21 AH=6B"DOS 4"


INT 21 AX=6C00

21 - DOS 4+ - EXTENDED OPEN/CREATE

AX = 6C00h
BL = open mode as in AL for normal open (INT 21/AH=3Dh)
    bit 7: inheritance
    bits 4-6: sharing mode
    bit 3 reserved
    bits 0-2: access mode
BH = flags
    bit 6 = auto commit on every write
    bit 5 = return error rather than doing INT 24h
CX = create attribute
    bits 6-15 reserved
    bit 5: archive
    bit 4: reserved
    bit 3: volume label
    bit 2: system
    bit 1: hidden
    bit 0: readonly
DL = action if file exists/does not exists
    bits 7-4 action if file does not exist
    0000 fail
    0001 create
    bits 3-0 action if file exists
    0000 fail
    0001 open
    0010 replace/open
DH = 00h (reserved)
DS:SI -> ASCIZ file name

Return

        CF set on error
   AX = error code (see AH=59h)
CF clear if successful
   AX = file handle
   CX = 1 file opened
2 file created
3 file replaced

Note

     	the PC LAN Program only supports DL=01h, DL=10h/sharing=compatibility,
  and DL=12h

SeeAlso

    INT 21 AH=3C    INT 21 AH=3D


INT 21 AX=7070

21 - PCW Weather Card interface - GET DATA SEGMENT

AX = 7070h
BX = 6060h
CX = 7070h
DX = 7070h
SX = 7070h
DX = 7070h

Return

        AX = segment of data structure

Notes

      	the data structure is at offset 516 from this segment.
the update byte is at offset 514 from this segment.  Updates are
  once per second while this byte is nonzero and it is decremented
  once per second.  While this byte is 0 updates are once per minute.

SeeAlso

    INT 21 AX=7070    /BX=7070

Table Formats

Data structure:


INT 21 AX=7070

21 - PCW Weather Card interface - INSTALLATION CHECK

AX = 7070h
BX = 7070h
CX = 7070h
DX = 7070h
SX = 7070h
DX = 7070h

Return

        AX = 0070h
BX = 0070h
CX = 0070h
DX = 0070h
SX = 0070h
DX = 0070h

SeeAlso

    INT 21 AX=7070    /BX=6060h    INT 21 AX=8080


INT 21 AH=76

21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK

AH = 76h

Return

        AL = 48h if resident

SeeAlso

    INT 21 AX=6969    INT 21 AX=7700"VIRUS"


INT 21 AX=7761

21 - WATCH.COM v3.2+ - INSTALLATION CHECK

AX = 7761h ('wa')

Return

        AX = 6177h

Note

     	WATCH.COM is part of the "TSR" package by TurboPower Software

SeeAlso

    INT 16 AX=7761


INT 21 AX=7700

21 - VIRUS - "Growing Block" - INSTALLATION CHECK

AX = 7700h

Return

        AX = 0920h if resident

SeeAlso

    INT 21 AH=76    INT 21 AH=7F


INT 21 AH=7F

21 - VIRUS - "Squeaker" - INSTALLATION CHECK

AH = 7Fh

Return

        AH = 80h if resident

SeeAlso

    INT 21 AX=7700    INT 21 AH=83"VIRUS"


INT 21 AH=80

21 - European MSDOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND

AH = 80h
CX = mode
    0000h place child in zombie mode on exit to preserve exit code
    0001h discard child process and exit code on termination
DS:DX -> ASCIZ full program name
ES:BX -> parameter block (as for AX=4B00h)

Return

        CF clear if successful
    AX = Command Subgroup ID (CSID)
CF set on error
    AX = error code (see AH=59h)

Desc

     	asynchronously execute a program, creating a new process for it

Notes

      	this function is called by the DETACH command
there is a system-wide limit of 32 processes
the CSID is used to identify all processes that have been spawned by
  a given process, whether directly or indirectly
programs to be run in the background must use the new executable format
  (see AH=4Bh)
background processes may only perform asynchronous (background) EXECs,
  either this function or AX=4B04h
background processes may execute INT 11, INT 12, INT 21, INT 2A, and
  INT 2F at any time; they may execute INT 10 and INT 16 only while
  they have opened a popup screen via INT 2F/AX=1401h; no other
  interrupts may be executed from the background
background processes may not use drive B: or overlay their code
  segments

SeeAlso

    INT 21 AH=4B    INT 21 AX=8700    INT 2F AX=1400"POPUP"


INT 21 AX=8080

21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY

AX = 8080h

Return

        ???

SeeAlso

    INT 21 AX=7070    /BX=7070


INT 21 AH=81

21 - European MSDOS 4.0 - "FREEZE" - STOP A PROCESS

AH = 81h
BX = flag (00h freeze command subtree, 01h only specified process)
CX = Process ID of head of command subtree

Return

        CF clear if successful
CF set on error
    AX = error code (no such process)

Desc

     	temporarily suspend a process or a process and all of its children

Note

     	if BX=0001h, this call will not return until the process is actually
  frozen, which may not be until after it unblocks from an I/O
  operation

SeeAlso

    INT 21 AH=82    INT 21 AH=89    INT 21 AX=8E00    INT 15 AX=101D


INT 21 AH=82

21 - European MSDOS 4.0 - "RESUME" - RESTART A PROCESS

AH = 82h
BX = flag (00h resume command subtree, 01h only specified process)
CX = Process ID of head of command subtree

Return

        CF clear if successful
CF set on error
    AX = error code (no such process)

Desc

     	restart a previously-suspended process or a process and all of its
  children

SeeAlso

    INT 21 AX=81    INT 15 AX=101E


INT 21 AH=83

21 - European MSDOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE

AH = 83h
AL = function
    00h get size
    01h set new size
BX = new size in paragraphs

Return

        CF clear if successful
    BX = current size (function 00h) or old size (function 01h)
CF set on error
    AX = error code (01h,07h,0Dh)(see AH=59h)

Desc

     	specify or determine how much memory may be allocated by the foreground
  process

Note

     	if the partition size is set to 0000h, no partition management is done
  and all memory allocation is compatible with DOS 3.2.
the partition size can be changed regardless of what use is being made
  of the changed memory; subsequent allocations will follow the
  partition rules (foreground processes may allocate only foreground
  memory; background processes allocate background memory first, then
  foreground memory)

SeeAlso

    INT 21 AH=48    INT 21 AH=4A


INT 21 AH=83

21 - VIRUS - "SVC" - INSTALLATION CHECK

AH = 83h

Return

        DX = 1990h if resident

SeeAlso

    INT 21 AH=76    INT 21 AH=84"VIRUS"


INT 21 AH=84

21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK

AH = 84h

Return

        DX = 1990h if resident
    BH = version number (major in high nybble, minor in low)

SeeAlso

    INT 21 AH=83"VIRUS"    INT 21 AH=89"VIRUS"


INT 21 AX=8400

21 - European MSDOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA

AX = 8400h
BX = size in bytes (0000h = 65536)
CX = flags
    bit 6: zero-initialize segment
DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")

Return

        CF clear if successful
    AX = segment address of shared memory global object
CF set on error
    AX = error code (06h,08h) (see AH=59h)

Desc

     	create an area of memory which may be accessed by multiple processes

Notes

      	shared memory objects are created as special files (thus the
  restriction on the name)
on successful creation, the reference count is set to 1

SeeAlso

    INT 21 AX=8401    INT 21 AX=8402    INT 15 AX=DE19


INT 21 AX=8401

21 - European MSDOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA

AX = 8401h
CX = flags
    bit 7: writable segment (ignored by MSDOS 4.0)
DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")

Return

        CF clear if successful
    AX = segment address of shared memory global object
    CX = size in bytes
CF set on error
    AX = error code (invalid name)

Desc

     	get address of a previously-created area of memory which may be
  accessed by multiple processes

Note

     	this call increments the reference count for the shared memory area

SeeAlso

    INT 21 AX=8400    INT 21 AX=8402


INT 21 AX=8402

21 - European MSDOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA

AX = 8402h
BX = handle (segment address of shared memory object)

Return

        CF clear if successful
CF set on error
    AX = error code (no such name)

Desc

     	indicate that the specified area of shared memory will no longer be
  used by the caller

Note

     	the reference count is decremented and the shared memory area is
  deallocated if the new reference count is zero

SeeAlso

    INT 21 AX=8400    INT 21 AX=8401    INT 15 AX=DE19


INT 21 AH=85

21 U - European MSDOS 4.0 - ???

AH = 85h
???

Return

        ???


INT 21 AH=86

21 - European MSDOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE

AH = 86h
BX = total number of file handles in new table

Return

        CF clear if successful
CF set on error
    AX = error code (06h,08h) (see AH=59h)

Desc

     	adjust the size of the per-process open file table, thus raising or
  lowering the limit on the number of files the caller can open
  simultaneously

Notes

      	any currently-open files are copied to the new table
if the table is increased beyond the default 20 handles, only the
  first 20 will be inherited by child processes
error 06h is returned if the requested number of handles exceeds
  system limits or would require closing currently-open files

SeeAlso

    INT 21 AH=26    INT 21 AH=67


INT 21 AH=87

21 - European MSDOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER

AH = 87h

Return

        AX = PID
BX = parent process's PID
CX = Command Subgroup ID (CSID)

Desc

     	determine an identifier by which to access the calling process

Notes

      	called by MS C v5.1 getpid() function
this function apparently must return AX=0001h for INT 21/AH=80h to
  succeed
one possible check for European MSDOS 4.0 is to issue this call with
  AL=00h and check whether AL is nonzero on return

SeeAlso

    INT 21 AH=30    INT 21 AH=62    INT 21 AH=80


INT 21 AH=88

21 U - European MSDOS 4.0 - ???

AH = 88h
???

Return

        ???


INT 21 AH=89

21 - European MSDOS 4.0 - SLEEP

AH = 89h
CX = time in milliseconds or 0000h to give up time slice

Return

        CF clear if successful
    CX = 0000h
CF set on error
    AX = error code (interrupted system call)
    CX = sleep time remaining

Desc

     	suspend the calling process for the specified duration

Notes

      	the sleep interval is rounded up to the next higher increment of the
  scheduler clock, and may be extended further if other processes are
  running
this call may be interrupted by signals (see AH=8Dh)
reportedly called by Microsoft C 4.0 startup code
background processes have higher priority than the foreground process,
  and should thus periodically yield the CPU

SeeAlso

    INT 21 AH=81    INT 15 AX=1000    INT 2F AX=1680    INT 7ABX=000A


INT 21 AH=89

21 - VIRUS - "Vriest" - INSTALLATION CHECK

AH = 89h

Return

        AX = 0123h if resident

SeeAlso

    INT 21 AH=84"VIRUS"    INT 21 AH=90"VIRUS"


INT 21 AH=8A

21 - European MSDOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE

AH = 8Ah
BL = range (00h command subtree, 01h any child)
BH = suspend flag
    00h suspend if children exist but none are dead
    01h return if no dead children
CX = Process ID of head of command subtree

Return

        CF clear if successful
    AH = termination type
00h normal termination
01h aborted by Control-C
02h aborted by I/O error
03h terminate and stay resident
04h aborted by signal
05h aborted by program error
    AL = return code from child or aborting signal
    BX = PID of child (0000h if no dead children)
CF set on error
    AX = error code (no child,interrupted system call)

Desc

     	get return code from an asynchronously-executed child program,
  optionally waiting if no return code is available

SeeAlso

    INT 21 AH=4B    INT 21 AH=4D    INT 21 AH=80    INT 21 AH=8D


INT 21 AH=8B

21 U - European MSDOS 4.0 - ???

AH = 8Bh
???

Return

        ???


INT 21 AH=8C

21 - European MSDOS 4.0 - SET SIGNAL HANDLER

AH = 8Ch
AL = signal number (see below)
BL = action (see below)
DS:DX -> signal handler

Return

        CF clear if successful
    AL = previous action
    ES:BX -> previous signal handler
CF set on error
    AX = error code (01h,invalid SigNumber or Action) (see AH=59h)

Desc

     	set the routine which will be invoked on a number of exceptional
  conditions

Note

     	all signals will be sent to the most recently installed handler

SeeAlso

    INT 21 AH=8D

Values for signal number:
 01h	SIGINTR	Control-C or user defined interrupt key
 08h	SIGTERM	program termination
 09h	SIGPIPE	broken pipe
 0Dh	SIGUSER1	reserved for user definition
 0Eh	SIGUSER2	reserved for user definition

Values for signal action:
 00h	SIG_DFL	terminate process on receipt
 01h	SIG_IGN	ignore signal
 02h	SIG_GET	signal is accepted
 03h	SIG_ERR	sender gets error
 04h	SIG_ACK	acknowledge received signal and clear it, but don't
change current setting

Signal handler is called with:
AL = signal number
AH = signal argument

Return

        RETF, CF set: terminate process
RETF, CF clear, ZF set: abort any interrupted system call with an error
RETF, CF clear, ZF clear: restart any interrupted system call
IRET: restart any interrupted system call

Note

     	the signal handler may also perform a nonlocal GOTO by resetting the
  stack pointer and jumping; before doing so, it should dismiss the
  signal by calling this function with BL=04h


INT 21 AH=8D

21 - European MSDOS 4.0 - SEND SIGNAL

AH = 8Dh
AL = signal number (see AH=8Ch)
BH = signal argument
BL = action
    00h send to entire command subtree
    01h send only to specified process
DX = Process ID

Return

        CF clear if successful
CF set on error
    AX = error code (01h,06h)(see AH=59h)

Desc

     	invoke the exceptional-condition handler for the specified process

Note

     	error 06h may be returned if one or more of the affected processes
  have an error handler for the signal

SeeAlso

    INT 21 AH=8C


INT 21 AX=8E00

21 - European MSDOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY

AX = 8E00h
BH = 00h
BL = action
    00h set priority for command subtree
    01h set priority for specified process only
CX = Process ID
DH = 00h
DL = change in priority (00h to get priority)

Return

        CF clear if successful
    DL = process priority
    DH destroyed
CF set on error
    AX = error code (01h,no such process)(see AH=59h)

Desc

     	specify or determine the execution priority of the specified process
  or the process and all of its children

SeeAlso

    INT 21 AH=81


INT 21 AH=8F

21 U - European MSDOS 4.0 - ???

AH = 8Fh
???

Return

        ???


INT 21 AH=90

21 U - European MSDOS 4.0 - ???

AH = 90h
???

Return

        ???


INT 21 AH=90

21 - VIRUS - "Carioca" - INSTALLATION CHECK

AH = 90h

Return

        AH = 01h if resident

SeeAlso

    INT 21 AH=89"VIRUS"    INT 21 AX=9753"VIRUS"


INT 21 AH=91

21 U - European MSDOS 4.0 - ???

AH = 91h
???

Return

        ???


INT 21 AH=92

21 U - European MSDOS 4.0 - ???

AH = 92h
???

Return

        ???


INT 21 AH=93

21 - European MSDOS 4.0 - "PIPE" - CREATE A NEW PIPE

AH = 93h
CX = size in bytes

Return

        CF clear if successful
    AX = read handle
    BX = write handle
CF set on error
    AX = error code (08h) (see AH=59h)

Desc

     	create a communications channel which may be used for interprocess
  data and command exchanges

SeeAlso

    INT 21 AH=3C    INT 21 AH=3F    INT 21 AH=40    INT 21 AH=84


INT 21 AH=94

21 U - European MSDOS 4.0 - ???

AH = 94h
???

Return

        ???


INT 21 AH=95

21 - European MSDOS 4.0 - HARD ERROR PROCESSING

AH = 95h
AL = new state
   00h enabled
   01h disabled, automatically fail hard errors

Return

        AX = previous setting

Desc

     	specify whether hard (critical) errors should automatically fail the
  system call or invoke an INT 24

SeeAlso

    INT 24


INT 21 AH=96

21 U - European MSDOS 4.0 - ???

AH = 96h
???

Return

        ???


INT 21 AH=97

21 U - European MSDOS 4.0 - ???

AH = 97h
???

Return

        ???


INT 21 AX=9753

21 - VIRUS - "Nina" - INSTALLATION CHECK

AX = 9753h

Return

        never (executes original program) if virus resident

SeeAlso

    INT 21 AH=90"VIRUS"    INT 21 AX=A1D5"VIRUS"


INT 21 AH=98

21 U - European MSDOS 4.0 - ???

AH = 98h
???

Return

        ???


INT 21 AH=99

21 u - European MSDOS 4.0 - "PBLOCK" - BLOCK A PROCESS

AH = 99h
DS:BX -> memory location to block on
CX = timeout in milliseconds
DH = nonzero if interruptible

Return

        CF clear if awakened by event
    AX = 0000h
CF set if unusual wakeup
    ZF set if timeout, clear if interrupted by signal
    AX = nonzero

Desc

     	suspend calling process until another process sends a "restart" signal
  or a timeout occurs

SeeAlso

    INT 21 AH=9A    INT 2F AX=0802


INT 21 AH=9A

21 u - European MSDOS 4.0 - "PRUN" - UNBLOCK A PROCESS

AH = 9Ah
DS:BX -> memory location processes may have blocked on

Return

        AX = number of processes awakened
ZF set if no processes awakened

Desc

     	restart all processes waiting for the specified "restart" signal

SeeAlso

    INT 21 AH=99    INT 2F AX=0802


INT 21 AH=A0

21 - Attachmate Extra - GET 3270 DISPLAY STATE

AH = A0h

Return

        AL = display status
    bit	 7  : 0=windowed, 1=enlarged
    bits 6-3: current screen profile number 0-9
    bits 2-0: active window number
0=PC, 1-4=host B-E, 5-6=notepad F-G
BX = host window status
    bit 15:  reserved
    bit 14:  0=host E window installed, 1=not
    bit 13:  0=host E terminal on, 1=off
    bit 12:  0=host E window displayed, 1=not
    bit 11:  reserved
    bit 10:  0=host D window installed, 1=not
    bit	 9:  0=host D terminal on, 1=off
    bit	 8:  0=host D window displayed, 1=not
    bit	 7:  reserved
    bit	 6:  0=host C window installed, 1=not
    bit	 5:  0=host C terminal on, 1=off
    bit	 4:  0=host C window displayed, 1=not
    bit	 3:  reserved
    bit	 2:  0=host B window installed, 1=not
    bit	 1:  0=host B terminal on, 1=off
    bit	 0:  0=host B window displayed, 1=not

Note

     	Attachmate Extra is a 3270 emulator by Attachmate Corporation

SeeAlso

    INT 21 AH=A1


INT 21 AH=A1

21 - Attachmate Extra - SET 3270 DISPLAY STATE

AH = A1h
AL = set status byte
    bit	 7  : 0=windowed, 1=enlarged
    bits 6-3: current screen profile number 0-9
    bits 2-0: active window number
0=PC, 1-4=host B-E, 5-6=notepad F-G

SeeAlso

    INT 21 AH=A0    INT 21 AH=A2


INT 21 AX=A1D5

21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK

AX = A1D5h

Return

        AX = 900Dh if resident

SeeAlso

    INT 21 AX=9753    INT 21 AX=A55A


INT 21 AH=A2

21 - Attachmate Extra - SET HOST WINDOW STATE

AH = A2h
AL = set status byte
    bit	 7  : 0=power off, 1=power on
    bit	 6  : 0=not installed, 1=installed
    bits 5-3: reserved
    bits 2-0: window number 1-4=host B-E

SeeAlso

    INT 21 AH=A1


INT 21 AH=A3

21 - Attachmate Extra - SEND KEYSTROKES TO HOST WINDOW

AH = A3h
AL = window number (1-4=host B-E)
CX = 0001h
DS:BX -> keystroke buffer
DL = zero if keystroke buffer contains host function code,
     non-zero if keystroke buffer contains ASCII character

Return

        CX = zero if character sent, non-zero if not
BX incremented if CX=0

Values for host function code:
00h=reserved	10h=PF16	20h=Clear	30h=SysRq
01h=PF1	11h=PF17	21h=Print	31h=ErInp
02h=PF2	12h=PF18	22h=Left	32h=ErEof
03h=PF3	13h=PF19	23h=Right	33h=Ident
04h=PF4	14h=PF20	24h=Up	34h=Test
05h=PF5	15h=PF21	25h=Down	35h=Reset
06h=PF6	16h=PF22	26h=Home	36h=DevCncl
07h=PF7	17h=PF23	27h=Fast Left	37h=Dup
08h=PF8	18h=PF24	28h=Fast Right	38h=FldMark
09h=PF9	19h=Alt on	29h=Bksp	39h=Enter
0Ah=PF10	1Ah=Alt off	2Ah=Insert	3Ah=CrSel
0Bh=PF11	1Bh=Shift on	2Bh=Delete
0Ch=PF12	1Ch=Shift off	2Ch=Backtab
0Dh=PF13	1Dh=PA1	2Dh=Tab
0Eh=PF14	1Eh=PA2	2Eh=Newline
0Fh=PF15	1Fh=PA3	2Fh=Attn


INT 21 AH=A4

21 - Attachmate Extra - GET HOST WINDOW BUFFER ADDRESS

AH = A4h
AL = window number (1-4=host B-E)

Return

        DS:BX -> 3270 display buffer

SeeAlso

    INT 21 AH=A5    INT 21 AH=B8


INT 21 AH=A5

21 - Attachmate Extra - GET HOST WINDOW CURSOR POSITION

AH = A5h
AL = window number (1-4=host B-E)

Return

        BX = cursor position (80 * row + column, where 0:0 is upper left)

Note

     	if the host window is configured with the Extended Attribute (EAB)
  feature, multiply the cursor position by 2 to obtain the byte offset
  into the display buffer

SeeAlso

    INT 21 AH=A4


INT 21 AX=A55A

21 - VIRUS - "Eddie-2" - INSTALLATION CHECK

AX = A55Ah

Return

        AX = 5AA5h if resident

SeeAlso

    INT 21 AX=A1D5    INT 21 AX=AA00


INT 21 AX=AA00

21 - VIRUS - "Blinker" - INSTALLATION CHECK

AX = AA00h

Return

        AX = 00AAh if resident

SeeAlso

    INT 21 AX=A55A    INT 21 AX=AA03


INT 21 AX=AA03

21 - VIRUS - "Backtime" - INSTALLATION CHECK

AX = AA03h

Return

        AX = 03AAh if resident

SeeAlso

    INT 21 AX=AA00    INT 21 AH=AB


INT 21 AH=AB

21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK

AH = ABh

Return

        AX = 5555h if resident

SeeAlso

    INT 21 AX=AA03    INT 21 AX=BBBB"VIRUS"


INT 21 AH=AF

21 - Attachmate Extra - GET TRANSLATE TABLE ADDRESS

AH = AFh

Return

        DS:BX -> translate tables (see below)

Table Formats

Translate tables:


INT 21 AH=B5

21 - Novell NetWare shell 3.01 - TASK MODE CONTROL

AH = B5h
AL = subfunction
    03h get task mode
Return: AH = 00h
AL = current task mode byte
    04h get task mode pointer
Return: ES:BX -> task mode byte

Notes

      	the task mode byte specifies how task cleanup should be performed, but
  is declared to be version-dependent
allows a program to disable the automatic cleanup for programs managing
  task swapping, etc.

Values for task mode byte in version 3.01:
 00h-03h reserved
 04h	 no task cleanup


INT 21 AH=B6

21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES

AH = B6h
AL = subfunction
    00h get extended file attributes
    01h set extended file attributes
CL = extended file attributes (see below)
DS:DX -> ASCIZ pathname (max 255 bytes)

Return

        CF set on error
    AL = error code
8Ch caller lacks privileges
FEh not permitted to search directory
FFh file not found
CF clear if successful
    AL = 00h (success)
    CL = current extended file attributes (see below)

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AX=4300    INT 21 AH=E3    /SF=0F

Bitmask of extended file attributes:
 bits 2-0: search mode (executables only)
000 none (use shell's default search)
001 search on all opens without path
010 do not search
011 search on read-only opens without path
100 reserved
101 search on all opens
110 reserved
111 search on all read-only opens
 bit 3: reserved
 bit 4: transactions on file tracked
 bit 5: file's FAT indexed
 bit 6: read audit (to be implemented)
 bit 7: write audit (to be implemented)


INT 21 AH=B8

21 - Attachmate Extra - DISABLE HOST BUFFER UPDATES

AH = B8h
AL = window number (1-4=host B-E)
DL = 01h

Notes

      	only valid in CUT mode
next AID keystroke (eg Enter) enables host buffer updates

SeeAlso

    INT 21 AH=A4


INT 21 AX=B800

21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS

AX = B800h
CX = size of reply buffer (01h-3Fh)
ES:BX -> reply buffer for capture flags table (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 2.0+

SeeAlso

    INT 21 AX=B801    INT 21 AX=B802    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=04

Table Formats

Capture flags table:


INT 21 AX=B801

21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS

AX = B801h
CX = size of buffer (01h-3Fh)
ES:BX -> buffer containing capture flags table (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 2.0+

SeeAlso

    INT 21 AX=B800    INT 21 AX=B803    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=04


INT 21 AX=B802

21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS

AX = B802h
CX = size of reply buffer (01h-3Fh)
DH = LPT port (00h-02h)
ES:BX -> reply buffer for capture flags table (see AX=B800h)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AX=B800    INT 21 AX=B803    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=04


INT 21 AX=B803

21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS

AX = B803h
CX = size of buffer (01h-3Fh)
DH = LPT port (00h-02h)
ES:BX -> buffer containing capture flags table (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AX=B800    INT 21 AX=B803    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=04


INT 21 AX=B804

21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER

AX = B804h

Return

        DH = default LPT port (00h-02h)

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AX=B800    INT 21 AX=B805    INT 21 AH=DF    /DL=00


INT 21 AX=B805

21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER

AX = B805h
DH = new default LPT port (00h-02h)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AX=B800    INT 21 AX=B804    INT 21 AH=DF    /DL=00


INT 21 AX=B806

21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE

AX = B806h
DH = LPT port (00h-02h)
BX:CX = print queue's object ID

Return

        AL = status
    00h successful
    FFh job already set

Desc

     	specify the print queue on which a print job is to be placed the next
  time a capture is started on the given printer port

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AX=B801    INT 21 AX=B807    INT 21 AX=E009


INT 21 AX=B807

21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB

AX = B807h
DH = LPT port (00h-02h)
BX = job number (see AH=E3h/SF=68h)
SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h)

Return

        AL = status
    00h successful
    FFh job already queued

Desc

     	specify the capture file and print job to be used for subsequent
  output to the given printer port

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AX=B801    INT 21 AX=B806    INT 21 AX=E009    INT 21 AH=E3    /SF=68


INT 21 AX=B808

21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME

AX = B808h
ES:BX -> 12-byte buffer for user name

Return

        AL = status
    00h successful

Desc

     	get the user name which is printed on the banner page

Notes

      	this function is supported by Advanced NetWare 2.1+
the default name is the login name of the user

SeeAlso

    INT 21 AX=B809


INT 21 AX=B809

21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME

AX = B809h
ES:BX -> 12-byte buffer containing user name

Return

        AL = status
    00h successful

Desc

     	specify the user name which is printed on the banner page

Notes

      	this function is supported by Advanced NetWare 2.1+
the default name is the login name of the user

SeeAlso

    INT 21 AX=B808


INT 21 AH=BB

21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS

AH = BBh
AL = new EOJ flag
    00h disable EOJs
    01h enable EOJs

Return

        AL = old EOJ flag

Desc

     	specify whether the network shell should automatically generate an
  End of Job call when the root command processor regains control

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=D6


INT 21 AX=BBBB

21 - VIRUS - "Hey You" - INSTALLATION CHECK

AX = BBBBh

Return

        AX = 6969h

SeeAlso

    INT 21 AH=AB"VIRUS"    INT 21 AH=BE"VIRUS"


INT 21 AH=BC

21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD

AH = BCh
AL = flags
    bit 0: lock as well as log record
1: non-exclusive lock
BX = file handle
CX:DX = starting offset in file
SI:DI = length of region to lock
BP = timeout in timer ticks (1/18 sec)
0000h = don't wait if already locked

Return

        AL = status
    00h successful
    96h no dynamic memory for file
    FEh timed out
    FFh failed

Desc

     	add the specified physical record to the log table, optionally locking
  it

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=5C    INT 21 AH=BD    INT 21 AH=BE    INT 21 AH=BF    INT 21 AH=C2    INT 21 AH=D0


INT 21 AH=BD

21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD

AH = BDh
BX = file handle
CX:DX = starting offset in file
SI:DI = length of record

Return

        AL = status
    00h successful
    FFh record not locked

Desc

     	unlock the specified physical record but do not remove it from log
  table

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=BC    INT 21 AH=BE"NetWare"    INT 21 AH=C0    INT 21 AH=C3    INT 21 AH=D2


INT 21 AH=BE

21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD

AH = BEh
BX = file handle
CX:DX = starting offset within file
SI:DI = record length in bytes

Return

        AL = status
    00h successful
    FFh specified record not locked

Desc

     	unlock the physical record and remove it from the log table

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=5C    INT 21 AH=BC    INT 21 AH=BD    INT 21 AH=C1    INT 21 AH=C4    INT 21 AH=D4


INT 21 AH=BE

21 - VIRUS - "Datalock" - INSTALLATION CHECK

AH = BEh

Return

        AX = 1234h if resident

SeeAlso

    INT 21 AX=BBBB    INT 21 AX=BE00


INT 21 AX=BE00

21 - VIRUS - "USSR-1049" - INSTALLATION CHECK

AX = BE00h
CF set

Return

        CF clear if resident

SeeAlso

    INT 21 AH=BE"VIRUS"    INT 21 AH=C0"VIRUS"


INT 21 AH=BF

21 - Novell NetWare 4.6, Alloy NTNX - LOG/LOCK RECORD (FCB)

AH = BFh
AL = flags
    bit 0: lock as well as log record
1: non-exclusive lock
DS:DX -> opened FCB (see AH=0Fh)
BX:CX = offset
BP = lock timeout in timer ticks (1/18 sec)
SI:DI = length

Return

        AL = error code (see AH=BCh)

SeeAlso

    INT 21 AH=BC    INT 21 AH=C0"NetWare"    INT 21 AH=C2"NetWare"


INT 21 AH=C0

21 - Novell NetWare 4.6, Alloy NTNX - RELEASE RECORD (FCB)

AH = C0h
DS:DX -> FCB (see AH=0Fh)
BX:CX = offset

Return

        AL = error code (see AH=BCh)

Note

     	unlocks record but does not remove it from log table

SeeAlso

    INT 21 AH=BD    INT 21 AH=BF    INT 21 AH=C1"NetWare"    INT 21 AH=C3


INT 21 AH=C0

21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK

AH = C0h

Return

        AX = 0300h if "Slow"/"Zerotime" resident
AX = 1234h if "Solano" resident

SeeAlso

    INT 21 AX=BE00    INT 21 AH=C1"VIRUS"    INT 21 AX=C301"VIRUS"


INT 21 AH=C1

21 - Novell NetWare 4.6, Alloy NTNX - CLEAR RECORD (FCB)

AH = C1h
DS:DX -> opened FCB (see AH=0Fh)
BX:CX = offset

Return

        AL = error code (see AH=BCh)

Note

     	unlocks record and removes it from log table

SeeAlso

    INT 21 AH=BE    INT 21 AH=C0"NetWare"    INT 21 AH=C4


INT 21 AH=C1

21 - VIRUS - "Solano" - ???

AH = C1h
???

Return

        ???

SeeAlso

    INT 21 AH=C0"VIRUS"


INT 21 AH=C2

21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET

AH = C2h
AL = flags
    bit 1: non-exclusive lock
BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait

Return

        AL = status
    00h successful
    FEh timed out
    FFh failed

Desc

     	attempt to lock all physical records listed in the log table

Notes

      	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX
status FFh will be retuend if one or more physical records have been
  exclusively locked by another process

SeeAlso

    INT 21 AH=BF    INT 21 AH=C3    INT 21 AH=D1


INT 21 AH=C2

21 - VIRUS - "Scott's Valley" - ???

AH = C2h
???

Return

        ???

SeeAlso

    INT 21 AH=C0"VIRUS"


INT 21 AH=C3

21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECRD SET

AH = C3h

Desc

     	unlock all currently-locked physical records in the log table, but do
  not remove them from the table

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=BD    INT 21 AH=C0    INT 21 AH=C2"NetWare"    INT 21 AH=C4    INT 21 AH=D3


INT 21 AX=C301

21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK

AX = C301h
DX = F1F1h

Return

        DX = 0E0Eh if resident

SeeAlso

    INT 21 AH=C0"VIRUS"    INT 21 AX=C500"VIRUS"


INT 21 AH=C4

21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET

AH = C4h

Desc

     	unlock all physical records in the log table and remove them from the
  log table

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=BE    INT 21 AH=C1    INT 21 AH=D5


INT 21 AX=C500

21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE

AX = C500h
DS:DX -> semaphore name (counted string, max 127 bytes)
CL = initial value for semaphore

Return

        AL = status
    00h successful
BL = number of processes having semaphore open
CX:DX = semaphore handle
    FEh invalid name length
    FFh invalid semaphore value

Notes

      	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX
the semaphore's value is incremented by AX=C503h and decremented by
  AX=C502h

SeeAlso

    INT 21 AX=C501    INT 21 AX=C502    INT 21 AX=C503    INT 21 AX=C504


INT 21 AX=C500

21 - VIRUS - "Sverdlov" - INSTALLATION CHECK

AX = C500h

Return

        AX = 6731h if resident

SeeAlso

    INT 21 AX=C301"VIRUS"    INT 21 AH=C6"VIRUS"


INT 21 AX=C501

21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE

AX = C501h
CX:DX = semaphore handle

Return

        AL = status
    00h successful
CX = semaphore value (-127 to 127)
DL = count of processes which have the semaphore open
    FFh invalid handle

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AX=C500"NetWare"    INT 21 AX=C502    INT 21 AX=C504


INT 21 AX=C502

21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE

AX = C502h
CX:DX = semaphore handle
BP = timeout limit in timer ticks (1/18 sec)
0000h return immediately if semaphore already zero or negative

Return

        AL = status
    00h successful
    FEh timeout
    FFh invalid handle

Desc

     	decrement the semaphore's value, optionally waiting until its value
  becomes positive before decrementing

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AX=C500"NetWare"    INT 21 AX=C501    INT 21 AX=C503


INT 21 AX=C503

21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE

AX = C503h
CX:DX = semaphore handle

Return

        AL = status
    00h successful
    01h semaphore value overflowed
    FFh invalid handle

Desc

     	increment the semaphore's value and signal the first process (if any)
  in the queue waiting on the semaphore

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AX=C500"NetWare"    INT 21 AX=C502


INT 21 AX=C504

21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE

AX = C504h
CX:DX = semaphore handle

Return

        AL = status
    00h successful
    FFh invalid handle

Desc

     	decrement the semaphore's open count, and delete the semaphore if the
  count reaches zero

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AX=C500"NetWare"    INT 21 AX=C501


INT 21 AH=C6

21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE

AH = C6h
AL = subfunction
    00h set old "compatibility" mode (default)
    01h set new extended locks mode
    02h get lock mode

Return

        AL = current lock mode

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX
the locking mode should be 01h for NetWare 4.61+ and Advanced
  NetWare 1.0+ locking calls, and 00h for all older calls

SeeAlso

    INT 21 AH=BC    INT 21 AH=C4    INT 21 AH=D0


INT 21 AH=C6

21 - VIRUS - "Socha" - INSTALLATION CHECK

AH = C6h

Return

        AL = 55h if resident

SeeAlso

    INT 21 AX=C500"VIRUS"    INT 21 AX=C603


INT 21 AX=C603

21 - VIRUS - "Yankee" or "MLTI" - INSTALLATION CHECK

AX = C603h
CF set

Return

        CF clear if resident

SeeAlso

    INT 21 AX=C500"VIRUS"    INT 21 AX=C700"VIRUS"


INT 21 AX=C700

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION

AX = C700h

Return

        CF clear if successful
    AL = 00h
CF set on error
    AL = error code
96h out of memory
FEh implicit transaction already active, converted to explicit
FFh explicit transaction already active

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AX=C701    INT 21 AX=C702    INT 21 AX=C703


INT 21 AX=C700

21 - VIRUS - "MH-757" - INSTALLATION CHECK

AX = C700h

Return

        AL = 07h if resident

SeeAlso

    INT 21 AX=C603"VIRUS"    INT 21 AH=CB"VIRUS"


INT 21 AX=C701

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION

AX = C701h

Return

        AL = status
    00h successful
CX:DX = transaction number
    FDh transaction tracking disabled
    FEh transaction ended records locked
    FFh no explicit transaction active
CF clear except when AL=FFh

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AX=C700"NetWare"    INT 21 AX=C703


INT 21 AX=C702

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK

AX = C702h

Return

        AL = status
    00h not available
    01h available
    FDh available but disabled

Desc

     	determine whether the default file server supports TTS

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+


INT 21 AX=C703

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION

AX = C703h

Return

        CF clear if successful
    AL = 00h
CF set on error
    AL = error code
FDh transaction tracking disabled, no backout
FEh transaction ended records locked
FFh no explicit transaction active

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AX=C700"NetWare"    INT 21 AX=C701    INT 21 AX=C704


INT 21 AX=C704

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS

AX = C704h
CX:DX = transaction number (see AX=C701h)

Return

        AL = status
    00h successful
    FFh not yet written to disk

Desc

     	verify that a transaction has actually been written to disk

Notes

      	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
transactions are written to disk in the order in which they are ended,
  but it may take as much as five seconds for the data to be written

SeeAlso

    INT 21 AX=C700"NetWare"    INT 21 AX=C701    INT 21 AX=C703


INT 21 AX=C705

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS

AX = C705h

Return

        AL = status
    00h successful
CL = maximum logical record locks (default 0)
CH = maximum physical record locks (default 0)

Desc

     	get the per-application limits on record locks allowed before an
  implicit transaction is begun

Notes

      	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
if either limit is FFh, implicit transactions are disabled for the
  corresponding lock type

SeeAlso

    INT 21 AX=C706    INT 21 AX=C707


INT 21 AX=C706

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS

AX = C706h
CL = maximum logical record locks (default 0)
CH = maximum physical record locks (default 0)

Return

        AL = status
    00h successful

Desc

     	specify the per-application limits on record locks allowed before an
  implicit transaction is begun

Notes

      	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
if either limit is set to FFh, implicit transactions are disabled for
  the corresponding lock type

SeeAlso

    INT 21 AX=C705    INT 21 AX=C708


INT 21 AX=C707

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS

AX = C707h

Return

        AL = status
    00h successful
CL = maximum logical record locks (default 0)
CH = maximum physical record locks (default 0)

Desc

     	get the per-workstation limits on record locks allowed before an
  implicit transaction is begun

Notes

      	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
if either limit is FFh, implicit transactions are disabled for the
  corresponding lock type

SeeAlso

    INT 21 AX=C705    INT 21 AX=C708


INT 21 AX=C708

21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS

AX = C708h
CL = maximum logical record locks (default 0)
CH = maximum physical record locks (default 0)

Return

        AL = status
    00h successful

Desc

     	specify the per-workstation limits on record locks allowed before an
  implicit transaction is begun

Notes

      	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
if either limit is set to FFh, implicit transactions are disabled for
  the corresponding lock type

SeeAlso

    INT 21 AX=C706    INT 21 AX=C707


INT 21 AH=C8

21 - Novell NetWare 4.0 - BEGIN LOGICAL FILE LOCKING

AH = C8h
if function C6h lock mode 00h:
    DL = mode
00h no wait
01h wait
if function C6h lock mode 01h:
    BP = timeout in timer ticks (1/18 sec)

Return

        AL = error code

SeeAlso

    INT 21 AH=C9


INT 21 AH=C9

21 - Novell NetWare 4.0 - END LOGICAL FILE LOCKING

AH = C9h

Return

        AL = error code

SeeAlso

    INT 21 AH=C8


INT 21 AH=CA

21 - Novell NetWare 4.0, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)

AH = CAh
DS:DX -> FCB (see AH=0Fh)
if function C6h lock mode 01h:
    AL = log and lock flag
00h log file only
01h lock as well as log file
    BP = lock timeout in timer ticks (1/18 sec)

Return

        AL = error code
    00h successful
    96h no dynamic memory for file
    FEh timeout
    FFh failed

SeeAlso

    INT 21 AH=CB


INT 21 AX=CA15

21 - VIRUS - "Piter" - ???

AX = CA15h
???

Return

        ???

SeeAlso

    INT 21 AH=CC"VIRUS"


INT 21 AH=CB

21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET

AH = CBh
if function C6h lock mode 00h:
    DL = mode
00h no wait
01h wait
if function C6h lock mode 01h:
    BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait

Return

        AL = status
    00h successful
    FEh timed out
    FFh failed

Desc

     	attempt to lock all files listed in the log table

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
status FFh will be returned if one or more of the files have already
  been exclusively locked by another process

SeeAlso

    INT 21 AH=CA    INT 21 AH=CD    INT 21 AH=D1    INT 21 AH=EB


INT 21 AH=CB

21 - VIRUS - "Milous" - INSTALLATION CHECK

AH = CBh

Return

        AL = 07h if resident

SeeAlso

    INT 21 AX=C700"VIRUS"    INT 21 AX=CB02


INT 21 AX=CB02

21 - VIRUS - "Witcode" - INSTALLATION CHECK

AX = CB02h

Return

        AX = 02CBh if resident

SeeAlso

    INT 21 AH=CB"VIRUS"    INT 21 AH=CC"VIRUS"


INT 21 AH=CC

21 - Novell NetWare 4.0, Alloy NTNX - RELEASE FILE (FCB)

AH = CCh
DS:DX -> FCB (see AH=0Fh)

Return

        none

Note

     	unlocks file, but does not remove it from the log table or close it

SeeAlso

    INT 21 AH=CA    INT 21 AH=CD


INT 21 AH=CC

21 - VIRUS - "Westwood" - INSTALLATION CHECK

AH = CCh

Return

        AX = 0700h if resident

SeeAlso

    INT 21 AX=CB02    INT 21 AH=CD"VIRUS"    INT 21 AX=D000"VIRUS"


INT 21 AH=CD

21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET

AH = CDh

Return

        none

Desc

     	unlock all files listed in the log table, but don't remove them from
  the table

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=CB    INT 21 AH=CC    INT 21 AH=CF    INT 21 AH=D3


INT 21 AH=CD

21 - VIRUS - "Westwood" - ???

AH = CDh
???

Return

        ???

SeeAlso

    INT 21 AH=CC"VIRUS"


INT 21 AH=CE

21 - Novell NetWare 4.0, Alloy NTNX - CLEAR FILE (FCB)

AH = CEh
DS:DX -> FCB (see AH=0Fh)

Return

        AL = error code

Note

     	unlocks file and removes it from log table, then closes all opened and
  logged occurrences

SeeAlso

    INT 21 AH=CA    INT 21 AH=CF    INT 21 AH=ED"NetWare"


INT 21 AH=CF

21 - LANstep - ???

AH = CFh
???

Return

        ???

Note

     	LANstep is a redesign of the Waterloo Microsystems PORT network


INT 21 AH=CF

21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET

AH = CFh

Return

        AL = 00h

Desc

     	unlock and remove all files from log table

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=CA    INT 21 AH=CE    INT 21 AH=EB"NetWare"


INT 21 AH=D0

21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD

AH = D0h
DS:DX -> record string (counted string, max 99 data bytes)
if function C6h lock mode 01h: (Novell, NTNX only)
    AL = flags
bit 0: lock as well as log the record
bit 1: non-exclusive lock
    BP = lock timeout in timer ticks (1/18 sec)

Return

        AL = status
    00h successful
    96h no dynamic memory for file
    FEh timed out
    FFh unsuccessful

Desc

     	add the specified logical record name to the log table, and optionally
  lock the record

Notes

      	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  Banyan VINES, and Alloy NTNX
locks on logical record names are advisory and may be ignored by other
  applications

SeeAlso

    INT 21 AH=BC    INT 21 AH=D1    INT 21 AH=D2    INT 21 AH=D4    INT 21 AH=EB


INT 21 AX=D000

21 - VIRUS - "Fellowship" - INSTALLATION CHECK

AX = D000h

Return

        BX = 1234h if resident

SeeAlso

    INT 21 AH=CC"VIRUS"    INT 21 AH=D5"VIRUS"    INT 21 AX=D5AA


INT 21 AH=D1

21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET

AH = D1h
AL = lock type (00h exclusive, 01h shareable)
if function C6h lock mode 00h:
    DL = mode
00h no wait
01h wait
if function C6h lock mode 01h: (Novell only)
   BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
0000h no wait

Return

        AL = status (see AH=CBh)

Desc

     	attempt to lock all logical record names listed in the log table

Notes

      	this function is supported by NetWare 4.6+, Advanced Netware 1.0+,
  Banyan VINES, and Alloy NTNX
status FFh will be returned if one or more logical records have been
  exclusively locked by another process
locks on logical record names are advisory and may be ignored by other
  applications

SeeAlso

    INT 21 AH=C2    INT 21 AH=CB    INT 21 AH=D0    INT 21 AH=D3    INT 21 AH=D5


INT 21 AH=D2

21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD

AH = D2h
DS:DX -> semaphore identifier (counted string up to 99 chars long)

Return

        AL = status
    00h successful
    FFh no such record

Desc

     	unlock the logical record name but do not remove it from the log table

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  Banyan VINES, and Alloy NTNX
locks on logical record names are advisory and may be ignored by other
  applications

SeeAlso

    INT 21 AH=BD    INT 21 AH=D0    INT 21 AH=D3    INT 21 AH=D4


INT 21 AH=D3

21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET

AH = D3h

Desc

     	unlock all currently-locked logical record names in the log table, but
  do not remove them from the table

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  Banyan VINES, and Alloy NTNX
locks on logical record names are advisory and may be ignored by other
  applications

SeeAlso

    INT 21 AH=C3    INT 21 AH=CD    INT 21 AH=D1    INT 21 AH=D2    INT 21 AH=D5


INT 21 AH=D4

21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD

AH = D4h
DS:DX -> logical record name (counted string up to 99 chars long)

Return

        AL = status
    00h successful
    FFh no such record name

Desc

     	unlock and remove the logical record name from the log table

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  Banyan VINES, and Alloy NTNX
locks on logical record names are advisory and may be ignored by other
  applications

SeeAlso

    INT 21 AH=BE    INT 21 AH=D0    INT 21 AH=D2    INT 21 AH=D5


INT 21 AH=D5

21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET

AH = D5h

Return

        AL = error code (see AH=D4h)

Desc

     	unlock and remove all logical record name from the log table

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  Banyan VINES, and Alloy NTNX
locks on logical record names are advisory and may be ignored by other
  applications

SeeAlso

    INT 21 AH=D1    INT 21 AH=D3    INT 21 AH=D4


INT 21 AH=D5

21 - VIRUS - "Carfield" - ???

AH = D5h
???

Return

        ???

SeeAlso

    INT 21 AX=D5AA    INT 21 AH=F3"Carfield"


INT 21 AX=D5AA

21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK

AX = D5AAh

Return

        AX = 2A55h if "Diamond-A" resident
AX = 2A03h if "Diamond-B"-family virus resident

SeeAlso

    INT 21 AX=D000    INT 21 AH=D5"VIRUS"    INT 21 AX=D5AA    /BP=DEAA


INT 21 AX=D5AA

21 - VIRUS - "Dir" - INSTALLATION CHECK

AX = D5AAh
BP = DEAAh

Return

        SI = 4321h if resident

SeeAlso

    INT 21 AX=D5AA    INT 21 AX=DADA"VIRUS"


INT 21 AH=D6

21 - Novell NetWare - WORKSTATION - END OF JOB

AH = D6h
BX = job flag (0000h current job, FFFFh all processes on workstation)

Return

        AL = error code

Desc

     	unlocks and clears all locked or logged files and records held by the
  process(es), closes all files, resets error and lock modes, and
  releases all network resources

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=BB    INT 21 AH=D7


INT 21 AH=D7

21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT

AH = D7h

Return

        AL = error code

Desc

     	this function closes the caller's open files, logs it out from all
  file servers, detaches the workstation from all non-default file
  servers, and maps a drive to the default server's SYS:LOGIN directory

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=D6    INT 21 AH=E3    /SF=14h    INT 21 AH=F1


INT 21 AH=D8

21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE

AH = D8h
DL = resource number

Return

        AL = status
    00h successful
    FFh unsucessful

SeeAlso

    INT 21 AH=D9


INT 21 AH=D9

21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE

AH = D9h
DL = resource number

Return

       	AL = status (see AH=D8h)

SeeAlso

    INT 21 AH=D8


INT 21 AH=DA

21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER

AH = DAh
DL = volume number
ES:DI -> reply buffer (see below)

Return

        AL = 00h

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=36    INT 21 AH=E2    /SF=15h    INT 21 AH=E3    /SF=E9

Table Formats

Reply buffer:


INT 21 AX=DADA

21 - VIRUS - "Gotcha" - INSTALLATION CHECK

AX = DADAh

Return

        AH = A5h

SeeAlso

    INT 21 AX=D5AA    INT 21 AH=DA    Eh"VIRUS


INT 21 AX=DAFE

21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK

AX = DAFEh

Return

        AX = 1234h if resident

SeeAlso

    INT 21 AX=DADA    INT 21 AH=DD"VIRUS"    INT 21 AH=DE"VIRUS"


INT 21 AH=DB

21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES

AH = DBh

Return

        AL = number of local disks as set by LASTDRIVE in CONFIG.SYS

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=0E


INT 21 AH=DC

21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER

AH = DCh

Return

        AL = logical connection number
    00h if NetWare not loaded or this machine is a non-dedicated server
CX = station number in ASCII (CL = first digit)

Notes

      	this function is supported by NetWare 4.0+, Banyan VINES, and Alloy
  NTNX
station number only unique for those PCs connected to same semaphore
  service


INT 21 AH=DC

21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF

AH = DCh
DX = state
    0000h turn on
    0001h turn off

SeeAlso

    INT 21 AX=FEDC


INT 21 AH=DD

21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE

AH = DDh
DL = error mode
    00h invoke INT 24 on critical I/O errors (default)
    01h return NetWare extended error code in AL
    02h return error code in AL, mapped to standard DOS error codes

Return

        AL = previous error mode

Note

     	this function is supported by Advanced NetWare 2.0+

SeeAlso

    INT 24


INT 21 AH=DD

21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???

AH = DDh
CX = number of bytes to copy
DS:SI -> source of copy
ES:DI -> destination of copy

Return

        does not return normally; return address is caller's CS:0100h with
  AX = ???

SeeAlso

    INT 21 AH=E0"VIRUS"    INT 21 AH=EE"VIRUS"


INT 21 AH=DE

21 - VIRUS - "Durban" - INSTALLATION CHECK

AH = DEh

Return

        AH = DFh if resident

SeeAlso

    INT 21 AX=DAFE    INT 21 AX=DEDE"VIRUS"


INT 21 AH=DE

21 - VIRUS - "April 1st EXE" - ???

AH = DEh
???

Return

        ???


INT 21 AH=DE

21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE

AH = DEh
DL = broadcast mode
    00h receive server and workstation broadcasts (default)
    01h receive server broadcasts, discard user messages
    02h store server broadcasts for retrieval
    03h store all broadcasts for retrieval

Return

        AL = new broadcast mode

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+


INT 21 AH=DE

21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE

AH = DEh
DL = 04h

Return

        AL = current broadcast mode
    00h receive server and workstation broadcasts (default)
    01h receive server broadcasts, discard user message
    02h store server broadcasts for retrieval
    03h store all broadcasts for retrieval

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+


INT 21 AH=DE

21 - Novell NetWare 4.0 - SHELL TIMER INTERRUPT CHECKS

AH = DEh
DL = function
    05h disable shell timer interrupt checks
    06h enable shell timer interrupt checks

Return

        ???


INT 21 AX=DEDE

21 - VIRUS - "Brothers" - INSTALLATION CHECK

AX = DEDEh

Return

        AH = 41h if resident

SeeAlso

    INT 21 AH=DE"VIRUS"    INT 21 AH=E0"VIRUS"


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE

AH = DFh
DL = 00h

Return

        AL = status
    00h successful

Desc

     	this function redirects the default LPT to a capture file on the file
  server

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
a print job is queued when the first character of output is captured

SeeAlso

    INT 21 AX=B800    INT 21 AX=B804    INT 21 AH=DF    /DL=01h    INT 21 AH=DF    /DL=02h    INT 21 AH=DF    /DL=03

SeeAlso

    INT 21 AH=DF    /DL=04h    INT 21 AX=F003


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE

AH = DFh
DL = 01h

Return

        AL = status
    00h successful

Desc

     	stop redirecting the default LPT, close the capture file, and release
  the job in the print queue for printing

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
after this call, the default LPT defaults to local printing

SeeAlso

    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=02h    INT 21 AH=DF    /DL=03h    INT 21 AH=DF    /DL=05


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE

AH = DFh
DL = 02h

Return

        AL = status
    00h successful

Desc

     	this function ends the capture of the default LPT, removes the job from
  the print queue, and deletes the capture file unless it is a
  permanent capture file

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
after this call, the default LPT defaults to local printing

SeeAlso

    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=06


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE

AH = DFh
DL = 03h

Return

        AL = status
    00h successful

Desc

     	this function closes the current capture file for the default LPT
  and starts printing it if it is not a permanent capture file

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
if more data is sent to the LPT port after this call, a new capture
  file will be opeend

SeeAlso

    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=01h    INT 21 AH=DF    /DL=02h    INT 21 AH=DF    /DL=07


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE

AH = DFh
DL = 04h
DH = LPT port (00h-02h)

Return

        AL = status
    00h successful

Desc

     	this function redirects the specified LPT to a capture file on the file
  server

Notes

      	this function is supported by Advanced NetWare 2.1+
a print job is queued when the first character of output is captured

SeeAlso

    INT 21 AX=B800    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=05h    INT 21 AH=DF    /DL=06h    INT 21 AH=DF    /DL=07

SeeAlso

    INT 21 AX=F003


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE

AH = DFh
DL = 05h
DH = LPT port (00h-02h)

Return

        AL = status
    00h successful

Desc

     	stop redirecting the specified LPT, close the capture file, and release
  the job in the print queue for printing

Notes

      	this function is supported by Advanced NetWare 2.1+
after this call, the specified LPT defaults to local printing

SeeAlso

    INT 21 AH=DF    /DL=01h    INT 21 AH=DF    /DL=04h    INT 21 AH=DF    /DL=06h    INT 21 AH=DF    /DL=07


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE

AH = DFh
DL = 06h
DH = LPT port (00h-02h)

Return

        AL = status
    00h successful

Desc

     	this function ends the capture of the specified LPT, removes the job
  from the print queue, and deletes the capture file unless it is a
  permanent capture file

Notes

      	this function is supported by Advanced NetWare 2.1+
after this call, the specified LPT defaults to local printing

SeeAlso

    INT 21 AH=DF    /DL=02h    INT 21 AH=DF    /DL=04h    INT 21 AH=DF    /DL=05h    INT 21 AH=DF    /DL=07


INT 21 AH=DF

21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE

AH = DFh
DL = 07h
DH = LPT port (00h-02h)

Return

        AL = status
    00h successful

Desc

     	this function closes the current capture file for the specified LPT
  and starts printing it if it is not a permanent capture file

Notes

      	this function is supported by Advanced NetWare 2.1+
if more data is sent to the LPT port after this call, a new capture
  file will be opeend

SeeAlso

    INT 21 AH=DF    /DL=03h    INT 21 AH=DF    /DL=04h    INT 21 AH=DF    /DL=05h    INT 21 AH=DF    /DL=06


INT 21 AH=E0

21 - Digital Research DOS Plus - CALL BDOS

AH = E0h
CL = BDOS function number (see INT E0"CP/M")
other registers as appropriate for function

Return

        as appropriate for function

SeeAlso

    INT 21 AX=4459    INT E0CP/M


INT 21 AH=E0

21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE

AH = E0h
???

Return

        ???

SeeAlso

    INT 21 AH=E1"OS/286"


INT 21 AH=E0

21 - DoubleDOS - MENU CONTROL

AH = E0h
AL = subfunction
    01h exchange tasks
    73h resume invisible job if suspended
    74h kill other job
    75h suspend invisible job

Note

     	identical to AH=F0h

SeeAlso

    INT 21 AH=F0"DoubleDOS"


INT 21 AH=E0

21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK

AH = E0h

Return

        AX = 0300h if "Jerusalem" resident
AX = DADAh if "Armagedon" resident

SeeAlso

    INT 21 AH=DE"VIRUS"    INT 21 AX=DEDE"VIRUS"    INT 21 AX=E00F


INT 21 AH=E0

21 - Novell NetWare 4.0, Alloy NTNX - PRINT SPOOLING

AH = E0h
DS:SI -> request buffer
ES:DI -> reply buffer
subfunction in third byte of request buffer
    00h spool data to a capture file
    01h close and queue capture file
    02h set spool flags
    03h spool existing file
    04h get spool queue entry
    05h remove entry from spool queue

Return

        AL = status


INT 21 AH=E0

21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS

AH = E0h subfn 06h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FFh no such printer

Desc

     	get current state of specified printer attached to the server

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E0

21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE

AH = E0h subfn 09h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    9Ch invalid path

Desc

     	create a permanent capture file for the next print capture to be
  started

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
the caller must have read, write, and create rights for the directory
  containing the capture file

Table Formats

Request buffer:
Reply buffer:


INT 21 AX=E00F

21 - VIRUS - "8-tunes" - INSTALLATION CHECK

AX = E00Fh

Return

        AX = 4C31h if resident

SeeAlso

    INT 21 AH=E0"VIRUS"    INT 21 AH=E1"VIRUS"


INT 21 AH=E1

21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL

AH = E1h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AH=E0"OS/286"    INT 21 AH=E2"OS/286"    INT 21 AH=E3"OS/286"    INT 21 AX=250E    INT 31 AX=0301


INT 21 AH=E1

21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB

AH = E1h

SeeAlso

    INT 21 AH=E2"DoubleDOS"    INT 21 AH=E3"DoubleDOS"    INT 21 AH=E8"DoubleDOS"

SeeAlso

    INT 21 AH=F1"DoubleDOS"


INT 21 AH=E1

21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK

AH = E1h

Return

        AX = 0300h if "Mendoza" resident
AX = 0400h if "Fu Manchu" resident

SeeAlso

    INT 21 AX=E00F    INT 21 AH=E4"VIRUS"


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE

AH = E1h subfn 00h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FEh I/O error or out of dynamic workspace

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=DE"NetWare"    INT 21 AH=DE    /DL=04h    INT 21 AH=E1    /SF=01h    INT 21 AH=E1    /SF=04

SeeAlso

    INT 21 AH=E1    /SF=09

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE

AH = E1h subfn 01h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FCh full message queue
    FEh out of dynamic workspace

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=DE    /DL=04h    INT 21 AH=E1    /SF=00h    INT 21 AH=E1    /SF=05h    INT 21 AH=E1    /SF=09

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - ENABLE/DISABLE BROADCAST MESSAGES

AH = E1h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer

Return

        AL = error code

Note

     	these functions are supported by NetWare 4.0+ but are not listed in
  _NetWare_System_Calls--DOS_; they may be obsolete

SeeAlso

    INT 21 AH=E1    /SF=00h    INT 21 AH=E1    /SF=04h    INT 21 AH=E1    /SF=09

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE

AH = E1h subfn 04h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FEh I/O error or out of dynamic workspace

Notes

      	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
message pipes use CPU time on the file server; IPX, SPX, or NetBIOS
  connections should be used for peer-to-peer communications as these
  protocols do not use file server time

SeeAlso

    INT 21 AH=E1    /SF=00h    INT 21 AH=E1    /SF=05h    INT 21 AH=E1    /SF=06h    INT 21 AH=E1    /SF=08

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE

AH = E1h subfn 05h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FEh out of dynamic workspace

Desc

     	return the oldest message in the default file server's message queue
  for the calling workstation

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=E1    /SF=01h    INT 21 AH=E1    /SF=04h    INT 21 AH=E1    /SF=06h    INT 21 AH=E1    /SF=08

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE

AH = E1h subfn 06h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FEh out of dynamic workspace

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=E1    /SF=04h    INT 21 AH=E1    /SF=07h    INT 21 AH=E1    /SF=08

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE

AH = E1h subfn 07h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FCh full message queue
    FEh out of dynamic workspace

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=E1    /SF=05h    INT 21 AH=E1    /SF=06h    INT 21 AH=E1    /SF=08

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS

AH = E1h subfn 08h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FCh full message queue
    FEh out of dynamic workspace

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=E1    /SF=05h    INT 21 AH=E1    /SF=06h    INT 21 AH=E1    /SF=07

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E1

21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE

AH = E1h subfn 09h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    FCh full message queue
    FEh out of dynamic workspace

Desc

     	send a one-line message to the system console on the default file
  server

Note

     	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=DE    /DL=04h    INT 21 AH=E1    /SF=00h    INT 21 AH=E1    /SF=01h    INT 21 AH=E3    /SF=D1

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER

AH = E2h
???

Return

        ???

SeeAlso

    INT 21 AH=E0"OS/286"    INT 21 AH=E1"OS/286"    INT 21 AH=E6"OS/286"


INT 21 AH=E2

21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB

AH = E2h
AL = character

Return

        AL = 00h successful
     01h buffer full (128 characters)

SeeAlso

    INT 21 AH=E1"DoubleDOS"    INT 21 AH=E3"DoubleDOS"    INT 21 AH=E8"DoubleDOS"

SeeAlso

    INT 21 AH=F2"DoubleDOS"


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE

AH = E2h subfn 00h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,98h,9Bh,9Ch) (see below)

Desc

     	set the target handle to reference the directory specified by the
  source handle and the source path; both handles must refer to the
  same file server

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
the target handle is not changed if this function fails

SeeAlso

    INT 21 AH=E2    /SF=01h    INT 21 AH=E2    /SF=12h    INT 21 AH=E2    /SF=13

Values for status:
 00h	successful
 84h	not permitted to create
 8Ah	not permitted to delete
 8Bh	not permitted to rename
 8Ch	not permitted to modify
 98h	nonexistent volume
 9Bh	invalid directory handle
 9Ch	invalid path
 9Eh	invalid filename
 9Fh	directory currently in use
 A0h	directory not empty
 FCh	no such bindery object

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH

AH = E2h subfn 01h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,9Bh) (see AH=E2h/SF=00h)

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=02h    INT 21 AH=E2    /SF=03h    INT 21 AH=E2    /SF=1Ah    INT 21 AH=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION

AH = E2h subfn 02h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)

Desc

     	get information about the first or next subdirectory of the specified
  directory

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=01h    INT 21 AH=E2    /SF=03h    INT 21 AH=E2    /SF=19

Table Formats

Request buffer:
Reply buffer:
Bitmask of date and time:
 bits 31-25: year-1980
 bits 24-21: month
 bits 20-16: day
 bits 15-11: hour
 bits 10-5: minute
 bits 4-0: second


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS

AH = E2h subfn 03h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,98h,9Bh) (see AH=E2h/SF=00h)

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=01h    INT 21 AH=E2    /SF=02

Table Formats

Request buffer:
Reply buffer:
Bitmask of directory rights:
 bit 0: reading allowed
 bit 1: writing allowed
 bit 2: opens allowed
 bit 3: file creation allowed
 bit 4: deletion allowed
 bit 5: "parental" may create/delete subdirectories and
grant/revoke trustee rights
 bit 6: directory search allowed
 bit 7: file attributes may be changed


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK

AH = E2h subfn 04h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,8Ch,98h,9Ch) (see AH=E2h/SF=00h)

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=03h    INT 21 AH=E2    /SF=0Ah    INT 21 AH=E2    /SF=0D

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER

AH = E2h subfn 05h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,98h) (see AH=E2h/SF=00h)

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=DA    INT 21 AH=E2    /SF=02h    INT 21 AH=E2    /SF=05h    INT 21 AH=E2    /SF=15h    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME

AH = E2h subfn 06h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,98h) (see AH=E2h/SF=00h)

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=DA    INT 21 AH=E2    /SF=02h    INT 21 AH=E2    /SF=05h    INT 21 AH=E2    /SF=15h    INT 21 AH=E2    /SF=1A

SeeAlso

    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY

AH = E2h subfn 0Ah
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,84h,98h,FCh) (see AH=E2h/SF=00h)

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=39    INT 21 AH=E2    /SF=0Bh    INT 21 AH=E2    /SF=0F

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY

AH = E2h subfn 0Bh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see AH=E2h/SF=00h)

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=3A    INT 21 AH=E2    /SF=0Ah    INT 21 AH=E2    /SF=0F

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES

AH = E2h subfn 0Ch
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    9Ch no more trustees

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=0Dh    INT 21 AH=E2    /SF=0Eh    INT 21 AH=E3    /SF=47

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY

AH = E2h subfn 0Dh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,8Ch,FCh) (see AH=E2h/SF=00h)

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=0Ch    INT 21 AH=E2    /SF=0Eh    INT 21 AH=E3    /SF=47

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY

AH = E2h subfn 0Eh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=0Ch    INT 21 AH=E2    /SF=0D

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY

AH = E2h subfn 0Fh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see AH=E2h/SF=00h)

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed

SeeAlso

    INT 21 AH=56    INT 21 AH=E2    /SF=0Ah    INT 21 AH=E2    /SF=0B

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES

AH = E2h subfn 10h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
purges files marked for deletion on the file server by the calling
  workstation

SeeAlso

    INT 21 AH=13    INT 21 AH=41    INT 21 AH=E2    /SF=11h    INT 21 AH=E3    /SF=CEh    INT 21 AX=F244

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE

AH = E2h subfn 11h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    98h nonexistent volume
    FFh no more erased files

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
restores one file marked for deletion which has not yet been purged

SeeAlso

    INT 21 AH=13    INT 21 AH=41    INT 21 AH=E2    /SF=10h    INT 21 AH=E3    /SF=CEh    INT 21 AX=F244

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE

AH = E2h subfn 12h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=00h    INT 21 AH=E2    /SF=13h    INT 21 AH=E2    /SF=14

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE

AH = E2h subfn 13h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see AH=E2h/SF=12h)

Return

        AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
this call is the same as AH=E2h/SF=12h except that the directory handle
  will be automatically deallocated when the calling application
  executes an End of Job call (AH=D6h) or terminates

SeeAlso

    INT 21 AH=D6    INT 21 AH=E2    /SF=00h    INT 21 AH=E2    /SF=12h    INT 21 AH=E2    /SF=14h    INT 21 AH=E2    /SF=16

Table Formats

Request buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE

AH = E2h subfn 14h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,9Bh) (see AH=E2h/SF=00h)

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=12h    INT 21 AH=E2    /SF=13

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE

AH = E2h subfn 15h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=DA    INT 21 AH=E2    /SF=02h    INT 21 AH=E2    /SF=06h    INT 21 AH=E2    /SF=19h    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE

AH = E2h subfn 16h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer

Return

        AL = status

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX,
  but is not described in _NetWare_System_Calls--DOS_

SeeAlso

    INT 21 AH=E2    /SF=13h    INT 21 AH=E2    /SF=14

Table Formats

Request buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE

AH = E2h subfn 17h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    else network error code

Note

     	this function is supported by Advanced NetWare 2.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=12h    INT 21 AH=E2    /SF=17

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE

AH = E2h subfn 18h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    else network error code

Desc

     	restore a previously saved directory handle to reproduce an executing
  environment, possibly on a different execution site

Note

     	this function is supported by Advanced NetWare 2.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=12h    INT 21 AH=E2    /SF=17

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION

AH = E2h subfn 19h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,9Bh,9Ch) (see AH=E2h/SF=00h)

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=02h    INT 21 AH=E2    /SF=0F

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E2

21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY

AH = E2h subfn 1Ah
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=01h    INT 21 AH=E2    /SF=06h    INT 21 AH=E3    /SF=D7

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - OS/286, OS/386 - ISSUE REAL INTERRUPT

AH = E3h
AL = interrupt number
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AH=E1"OS/286"    INT 31 AX=0300


INT 21 AH=E3

21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB

AH = E3h
AL = character

Return

        AL = 00h successful
     01h buffer full (128 characters)

SeeAlso

    INT 21 AH=E1"DoubleDOS"    INT 21 AH=E2"DoubleDOS"    INT 21 AH=E8"DoubleDOS"

SeeAlso

    INT 21 AH=F3"DoubleDOS"


INT 21 AH=E3

21 - Novell NetWare - CONNECTION CONTROL

AH = E3h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    else error code

Note

     	supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=0Ah    INT 21 AH=E3    /SF=32h    INT 21 AH=E3    /SF=64h    INT 21 AH=E3    /SF=C8

Table Formats

Request buffer:
Reply buffer:
Object property:
Names of well-known properties:
 ACCOUNT_BALANCE
 ACCOUNT_SERVERS
 GROUP_MEMBERS
 GROUPS_I'M_IN
 IDENTIFICATION	user's name
 LOGIN_CONTROL
 NET_ADDRESS
 OPERATORS
 PASSWORD
 SECURITY_EQUALS

Values for security levels:
 00h	"anyone" everyone may access
 01h	"logged" only logged-in clients may access
 02h	"object" only clients logged-in with object's name, type, and password
 03h	"supervisor" only clients logged-in with supervisor privileges
 04h	"NetWare" only NetWare may access

Note

     	the above values are stored in a nybble; the high half-byte is write
  access and the low half-byte is read access

Values for object type:
 0000h	unknown
 0001h	user
 0002h	user group
 0003h	print queue
 0004h	file server
 0005h	job server
 0006h	gateway
 0007h	print server
 0008h	archive queue
 0009h	archive server
 000Ah	job queue
 000Bh	administration
 0026h	remote bridge server
 0047h	advertising print server
 0048h-8000h reserved
 FFFFh	wild (used only for finding objects)


INT 21 AH=E3

21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA

AH = E3h subfn 0Ah
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Desc

     	change the login directory for the calling workstation

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=D7    INT 21 AH=E3    /SF=14

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE

AH = E3h subfn 0Dh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Desc

     	append a line to the default file server's NET$LOG.MSG file

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E1    /SF=09

Table Formats

Request buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION

AH = E3h subfn 0Eh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    98h nonexistent volume
    F2h not permitted to read object

Notes

      	this function is supported by Advanced NetWare 2.1+
the caller must have bindery object read privileges

SeeAlso

    INT 21 AH=E3    /SF=11h    INT 21 AH=E3    /SF=D6h    INT 21 AH=E3    /SF=D9h    INT 21 AH=E3    /SF=E6h    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION

AH = E3h subfn 0Fh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    89h not permitted to search directory
    FFh no more matching files

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=B6    INT 21 AH=E3    /SF=10

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION

AH = E3h subfn 10h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
the caller must have modify privileges on the directory containing the
  file

SeeAlso

    INT 21 AH=B6    INT 21 AH=E3    /SF=0F

Table Formats

Request buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION

AH = E3h subfn 11h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=0Eh    INT 21 AH=E3    /SF=CDh    INT 21 AH=E3    /SF=D3h    INT 21 AH=E3    /SF=E7h    INT 21 AH=E7

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS

AH = E3h subfn 13h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=DC"NetWare"    INT 21 AH=E3    /SF=16h    INT 21 AH=EE"NetWare"

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER

AH = E3h subfn 14h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Desc

     	this function retrieves a list indicating the connection numbers under
  which a bindery object is logged into the default file server

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=D7"NetWare"    INT 21 AH=F1"NetWare"

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION NUMBERS

AH = E3h subfn 15h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Desc

     	this function retrieves a list indicating the connection numbers under
  which a bindery object is logged into the default file server

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=DC"NetWare"    INT 21 AH=E3    /SF=16

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION

AH = E3h subfn 16h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=D7    INT 21 AH=DC"NetWare"    INT 21 AH=E3    /SF=14

Table Formats

Request buffer:
Reply buffer:
Login time:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT

AH = E3h subfn 32h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EEh	object already exists
    EFh invalid name
    F1h invalid bindery security level
    F5h not permitted to create objects
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=33h    INT 21 AH=E3    /SF=34h    INT 21 AH=E3    /SF=38h    INT 21 AH=E3    /SF=39

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT

AH = E3h subfn 33h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EFh invalid name
    F0h wildcard not allowed
    F4h not permitted to delete objects
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=32h    INT 21 AH=E3    /SF=34

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT

AH = E3h subfn 34h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EFh invalid name
    F0h wildcard not allowed
    F3h not permitted to rename object
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=32h    INT 21 AH=E3    /SF=33

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID

AH = E3h subfn 35h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Notes

      	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
the requesting workstation must be logged into the file server with
  read access to the bindery object

SeeAlso

    INT 21 AH=E3    /SF=36h    INT 21 AH=E3    /SF=44

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME

AH = E3h subfn 36h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EFh invalid name
    F0h	wildcard not allowed
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Notes

      	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
the requesting workstation must be logged into the file server with
  read access to the bindery object

SeeAlso

    INT 21 AH=E3    /SF=35h    INT 21 AH=E3    /SF=44

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT

AH = E3h subfn 37h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EFh invalid name
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Notes

      	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
the requesting workstation must be logged into the file server with
  read access to the bindery object

SeeAlso

    INT 21 AH=E3    /SF=32h    INT 21 AH=E3    /SF=33h    INT 21 AH=E3    /SF=38h    INT 21 AH=E3    /SF=3C

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY

AH = E3h subfn 38h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    F0h	wildcard not allowed
    F1h invalid bindery security level
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=32h    INT 21 AH=E3    /SF=3B

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY

AH = E3h subfn 39h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EDh	property already exists
    EFh invalid name
    F0h wildcard not allowed
    F1h invalid bindery security level
    F7h not permitted to create properties
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=32h    INT 21 AH=E3    /SF=3B

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY

AH = E3h subfn 3Ah
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    F0h wildcard not allowed
    F1h invalid bindery security level
    F6h not permitted to delete properties
    FBh no such property
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=32h    INT 21 AH=E3    /SF=39

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY

AH = E3h subfn 3Bh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    F0h	wildcard not allowed
    F1h invalid bindery security level
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=38

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY

AH = E3h subfn 3Ch
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    F0h	wildcard not allowed
    F1h invalid bindery security level
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=37h    INT 21 AH=E3    /SF=3B

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE

AH = E3h subfn 3Dh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    ECh no such segment
    F0h	wildcard not allowed
    F1h invalid bindery security level
    F9h not permitted to read property
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure

Desc

     	retrieve one 128-byte segment of the specified property's value

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=39h    INT 21 AH=E3    /SF=3Ch    INT 21 AH=E3    /SF=3E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE

AH = E3h subfn 3Eh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    E8h not item property
    ECh no such segment
    F0h	wildcard not allowed
    F1h invalid bindery security level
    F8h not permitted to write property
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=39h    INT 21 AH=E3    /SF=3Ch    INT 21 AH=E3    /SF=3E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD

AH = E3h subfn 3Fh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    F0h	wildcard not allowed
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure: no such object, bad password

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=40

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD

AH = E3h subfn 40h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    F0h	wildcard not allowed
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure: no such object, no password for object, or
invalid old password

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=3Fh    INT 21 AH=E3    /SF=41

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET

AH = E3h subfn 41h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    E9h	member already exists
    EBh	not a group property
    F0h	wildcard not allowed
    F8h	can't write property
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure

Desc

     	add the specified object to a set property

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=40h    INT 21 AH=E3    /SF=42h    INT 21 AH=E3    /SF=43

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET

AH = E3h subfn 42h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EAh	member does not exist
    EBh	not a group property
    F0h	wildcard not allowed
    F8h	can't write property
    FBh	no such property
    FCh	no such object
    FEh	server bindery locked
    FFh	bindery failure

Desc

     	delete the specified object from a set property

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=40h    INT 21 AH=E3    /SF=42h    INT 21 AH=E3    /SF=43

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET

AH = E3h subfn 43h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    EAh member does not exist
    EBh not a group property
    F0h	wildcard not allowed
    F9h not permitted to read property
    FBh no such property
    FCh no such object
    FEh	server bindery locked
    FFh	bindery failure

Notes

      	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
the caller must have read access to the property

SeeAlso

    INT 21 AH=E3    /SF=41h    INT 21 AH=E3    /SF=42

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY

AH = E3h subfn 44h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=45

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY

AH = E3h subfn 45h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Notes

      	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
the bindery may only be opened by the supervisor or an object with
  equivalent privileges

SeeAlso

    INT 21 AH=E3    /SF=44

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL

AH = E3h subfn 46h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS

AH = E3h subfn 47h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    96h server out of memory
    F0h wildcard not allowed
    F1h invalid bindery security level
    FCh no such object
    FEh server bindery locked
    FFh bindery failure

Desc

     	iterate through the directories to which an object is a trustee

Note

     	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=0Ch    INT 21 AH=E2    /SF=0Dh    INT 21 AH=E2    /SF=0E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE

AH = E3h subfn 64h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh)
(see below)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on a workstation with supervisor privileges

SeeAlso

    INT 21 AH=E3    /SF=65h    INT 21 AH=E3    /SF=66h    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6B

Values for status:
 00h	successful
 96h	server out of memory
 99h	directory full
 9Bh	invalid directory handle
 9Ch	invalid path
 D0h	queue error
 D1h	no such queue
 D2h	no server for queue
 D3h	no queue rights
 D4h	queue full
 D5h	no queue job
 D6h	no job rights
 D7h	queue servicing error
 D9h	station is not a server
 DAh	queue halted
 DBh	too many queue servers
 EDh	property already exists
 EEh	object already exists
 EFh	invalid name
 F0h	wildcard not allowed
 F1h	invalid bindery security level
 F5h	not permitted to create object
 F7h	not permitted to create property
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE

AH = E3h subfn 65h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h)
    FFh hardware failure

Desc

     	abort all active jobs, detach all job servers, remove all job entries,
  delete all job files, remove the queue object and its properties
  from the bindery, and delete the queue's subdirectory

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must have SUPERVISOR privileges

SeeAlso

    INT 21 AH=E3    /SF=64h    INT 21 AH=E3    /SF=66h    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=70

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS

AH = E3h subfn 66h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on a workstation which is security-equivalent to a
  member of the queue's Q_USERS or Q_OPERATORS properties

SeeAlso

    INT 21 AH=E3    /SF=64h    INT 21 AH=E3    /SF=67h    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=76

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS

AH = E3h subfn 67h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must have operator privileges

SeeAlso

    INT 21 AH=E3    /SF=64h    INT 21 AH=E3    /SF=66h    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=76

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE

AH = E3h subfn 68h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh)
(see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on a workstation which is security-equivalent to a
  member of the queue's Q_USER property

SeeAlso

    INT 21 AH=E3    /SF=69h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=6E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB

AH = E3h subfn 69h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on the workstation which created the job

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=6E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE

AH = E3h subfn 6Ah
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must have created the job or be an operator

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=6E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST

AH = E3h subfn 6Bh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on a workstation which is security-equivalent to a
  member of the Q_USERS or Q_OPERATORS properties

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=6E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY

AH = E3h subfn 6Ch
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on a workstation which is security-equivalent to a
  member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=6E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY

AH = E3h subfn 6Dh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be an operator or the user who created the job

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=6Ch    INT 21 AH=E3    /SF=6E

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION

AH = E3h subfn 6Eh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be an operator
if the specified position is greater than the number of jobs in the
  queue, the job is placed at the end of the queue

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ah    INT 21 AH=E3    /SF=6Ch    INT 21 AH=E3    /SF=6D

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE

AH = E3h subfn 6Fh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh)
(see also AH=E3h/SF=64h)
    FFh bindery failure, or no such property, or no such member

Desc

     	attach the calling job server to the specified queue

Notes

      	this function is supported by Advanced NetWare 2.1+
a queue may have up to 25 job servers attached
the calling workstation must be security-equivalent to a member of the
  queue's Q_SERVERS property

SeeAlso

    INT 21 AH=E3    /SF=70h    INT 21 AH=E3    /SF=71h    INT 21 AH=E3    /SF=72h    INT 21 AH=E3    /SF=73h    INT 21 AH=E3    /SF=76

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE

AH = E3h subfn 70h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see AH=E3h/SF=64h)

Desc

     	remove the calling job server from the specified queue's list of
  servers

Notes

      	this function is supported by Advanced NetWare 2.1+
the caller must have previously attached itself to the queue

SeeAlso

    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=72h    INT 21 AH=E3    /SF=73h    INT 21 AH=E3    /SF=76

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE

AH = E3h subfn 71h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see AH=E3h/SF=68h)

Return

        AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
(see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
the caller must be on a workstation which is security-equivalent to a
  member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties

SeeAlso

    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=72h    INT 21 AH=E3    /SF=73h    INT 21 AH=E3    /SF=76

Table Formats

Request buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE

AH = E3h subfn 72h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h,D1h,D6h) (see AH=E3h/SF=64h)

Desc

     	inform the Queue Management System (QMS) that the queue server has
  completed a job

Notes

      	this function is supported by Advanced NetWare 2.1+
the caller must be a job server which has previously obtained a job
  for servicing

SeeAlso

    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=71h    INT 21 AH=E3    /SF=73h    INT 21 AH=E3    /SF=76

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE

AH = E3h subfn 73h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h,D1h,D6h,D9h) (see AH=E3h/SF=64h)

Desc

     	inform the Queue Management System (QMS) that the queue server is
  unable to service a previously-accepted job

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=71h    INT 21 AH=E3    /SF=72h    INT 21 AH=E3    /SF=76

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS

AH = E3h subfn 74h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,D0h,D1h,D5h,D9h) (see AH=E3h/SF=64h)

Desc

     	temporarily assume the login identity of the client submitting the
  job being serviced

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be a job server which has obtained a job for servicing

SeeAlso

    INT 21 AH=E3    /SF=75

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS

AH = E3h subfn 75h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
(see AH=E3h/SF=64h)

Desc

     	restore server's own identity after assuming the login identity of the
  client submitting the job being serviced

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be a job server which has previously changed its identity

SeeAlso

    INT 21 AH=E3    /SF=74

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS

AH = E3h subfn 76h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on a workstation which is security-equivalent to a
  member of the Q_USERS or Q_OPERATORS properties

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ch    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=77h    INT 21 AH=E3    /SF=78

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS

AH = E3h subfn 76h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see AH=E3h/SF=64h)

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be a job server which has attached itself to the queue

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ch    INT 21 AH=E3    /SF=6Fh    INT 21 AH=E3    /SF=76h    INT 21 AH=E3    /SF=78

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE

AH = E3h subfn 78h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status (see also AH=E3h/SF=64h)
    00h successful

Notes

      	this function is supported by Advanced NetWare 2.1+
caller must be on a workstation which is security-equivalent to a
  member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties

SeeAlso

    INT 21 AH=E3    /SF=68h    INT 21 AH=E3    /SF=6Ch    INT 21 AH=E3    /SF=71

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS

AH = E3h subfn 96h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C0h	no account privileges
    C1h	no account balance

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=97h    INT 21 AH=E3    /SF=98h    INT 21 AH=E3    /SF=99

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE

AH = E3h subfn 97h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C0h	no account privileges
    C1h	no account balance
    C2h credit limit exceeded

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=96h    INT 21 AH=E3    /SF=98

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD

AH = E3h subfn 98h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C0h	no account privileges
    C1h	no account balance
    C2h credit limit exceeded
    C3h too many holds on account

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=96h    INT 21 AH=E3    /SF=97

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE

AH = E3h subfn 99h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C0h	no account privileges

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=96

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES

AH = E3h subfn C8h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Desc

     	determine whether the caller is a console operator

Notes

      	this function is supported by Advanced NetWare 2.1+
NetWare determines console privileges by checking the file server's
  OPERATOR property for the caller's object ID

SeeAlso

    INT 21 AH=E3    /SF=C9h    INT 21 AH=E3    /SF=D1

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS

AH = E3h subfn C9h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must be attached to the file server

SeeAlso

    INT 21 AH=E3    /SF=11h    INT 21 AH=E3    /SF=CDh    INT 21 AH=E3    /SF=E8

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME

AH = E3h subfn CAh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=2B    INT 21 AH=2D    INT 21 AH=E3    /SF=C8h    INT 21 AH=E7

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN

AH = E3h subfn CBh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=CCh    INT 21 AH=E3    /SF=D3

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN

AH = E3h subfn CCh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=CB

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS

AH = E3h subfn CDh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=CBh    INT 21 AH=E3    /SF=CC

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES

AH = E3h subfn CEh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX
all files marked for deletion on the file server are purged, regardless
  of which workstation actually erased them
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=13    INT 21 AH=E2    /SF=10h    INT 21 AH=E3    /SF=C8h    INT 21 AX=F244

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING

AH = E3h subfn CFh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=D0

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING

AH = E3h subfn D0h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Desc

     	restart transaction tracking after being stopped either explicitly by
  AH=E3h/SF=CFh or automatically due to a full transaction volume

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=CF

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST

AH = E3h subfn D1h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges
the broadcast message will not be received by workstations which have
  disabled broadcasts with AH=E1h/SF=02h

SeeAlso

    INT 21 AH=E1    /SF=02h    INT 21 AH=E1    /SF=09h    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=D3

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER

AH = E3h subfn D2h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Desc

     	close the open files and release all file locks for a connection,
  abort transactions if a TTS file server, and detach from the file
  server

Notes

      	this function is supported by Advanced NetWare 2.1+
the caller must have SUPERVISOR privileges

SeeAlso

    INT 21 AH=E3    /SF=C9h    INT 21 AH=E3    /SF=D1

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER

AH = E3h subfn D3h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights
    FFh files open

Desc

     	take down the file server

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have SUPERVISOR privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=CBh    INT 21 AH=E3    /SF=CFh    INT 21 AH=E3    /SF=D1

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS

AH = E3h subfn D4h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=0Eh    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=D9h    INT 21 AH=E3    /SF=E7h    INT 21 AH=E3    /SF=E8

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS

AH = E3h subfn D5h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=CFh    INT 21 AH=E3    /SF=D0h    INT 21 AH=E3    /SF=E8

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS

AH = E3h subfn D6h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=D5h    INT 21 AH=E3    /SF=D8h    INT 21 AH=E3    /SF=D9h    INT 21 AH=E3    /SF=E6

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE

AH = E3h subfn D7h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=D6h    INT 21 AH=E3    /SF=D9h    INT 21 AH=E3    /SF=E6h    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS

AH = E3h subfn D8h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=D9h    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS

AH = E3h subfn D9h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=D8h    INT 21 AH=E3    /SF=E6h    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION

AH = E3h subfn DAh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DBh    INT 21 AH=E3    /SF=DFh    INT 21 AH=E3    /SF=E1h    INT 21 AH=E3    /SF=E5

Table Formats

Request buffer:
Reply buffer:
Lock Status Information:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES

AH = E3h subfn DBh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E2    /SF=1Ah    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DAh    INT 21 AH=E3    /SF=DCh    INT 21 AH=E3    /SF=DF

SeeAlso

    INT 21 AH=E3    /SF=E1

Table Formats

Request buffer:
Reply buffer:
Bitmask of lock flags:
 bit 0: file is locked
 bit 1: file opened Shareable
 bit 2: logged
 bit 3: file opened Normal
 bit 6: TTS holding lock
 bit 7: Transaction Flag set on file

Bitmask of access flags:
 bit 0: file open for reading by calling station
 bit 1: file open for writing by calling station
 bit 2: deny reads by other stations
 bit 3: deny writes by other stations
 bit 4: file detached
 bit 5: TTS Holding Detach
 bit 6: TTS Holding Open


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE

AH = E3h subfn DCh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DAh    INT 21 AH=E3    /SF=DBh    INT 21 AH=E3    /SF=DFh    INT 21 AH=E3    /SF=E1

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE

AH = E3h subfn DDh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights
    FFh file not open

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DEh    INT 21 AH=E3    /SF=DF

Table Formats

Request buffer:
Reply buffer:
Bitmask of lock status:
 bit 0: exclusive lock
 bit 1: shareable lock
 bit 2: logged
 bit 6: lock held by TTS


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE

AH = E3h subfn DEh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights
    FFh file not open

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DDh    INT 21 AH=E3    /SF=DF

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION

AH = E3h subfn DFh
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DDh    INT 21 AH=E3    /SF=E0h    INT 21 AH=E3    /SF=E2

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION

AH = E3h subfn E0h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DDh    INT 21 AH=E3    /SF=DFh    INT 21 AH=E3    /SF=E2

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES

AH = E3h subfn E1h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DBh    INT 21 AH=E3    /SF=DFh    INT 21 AH=E3    /SF=E2

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION

AH = E3h subfn E2h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=E1

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO

AH = E3h subfn E3h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
the calling workstation must have console operator privileges

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=E7h    INT 21 AH=E3    /SF=E8

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS

AH = E3h subfn E5h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
one must have console operator privileges to get statistics for logical
  connections other than one's own

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=DAh    INT 21 AH=E3    /SF=DBh    INT 21 AH=E3    /SF=E1

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT

AH = E3h subfn E6h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Notes

      	this function is supported by Advanced NetWare 2.1+
one must have console operator privileges to get the free space for
  other bindery objects

SeeAlso

    INT 21 AH=E3    /SF=C8h    INT 21 AH=E3    /SF=E8h    INT 21 AH=E3    /SF=E9

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS

AH = E3h subfn E7h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=0Eh    INT 21 AH=E3    /SF=11h    INT 21 AH=E3    /SF=D3h    INT 21 AH=E3    /SF=E8h    INT 21 AH=E7

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION

AH = E3h subfn E8h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful
    C6h no console rights

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=E3    /SF=0Eh    INT 21 AH=E3    /SF=11h    INT 21 AH=E3    /SF=CDh    INT 21 AH=E3    /SF=E7

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E3

21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION

AH = E3h subfn E9h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (see below)

Return

        AL = status
    00h successful

Notes

      	this function is supported by Advanced NetWare 2.1+

SeeAlso

    INT 21 AH=DA    INT 21 AH=E2    /SF=15

Table Formats

Request buffer:
Reply buffer:


INT 21 AH=E4

21 - Novell NetWare 4.0 - SET FILE ATTRIBUTES (FCB)

AH = E4h
CL = file attributes
    bit 0: read only
1: hidden
2: system
7: shareable
DX:DX -> FCB (see AH=0Fh)

Return

        AL = error code

SeeAlso

    INT 21 AX=4301


INT 21 AH=E4

21 - VIRUS - "Anarkia" - INSTALLATION CHECK

AH = E4h

Return

        AH = 04h if resident

SeeAlso

    INT 21 AH=E1"VIRUS"    INT 21 AH=E7"VIRUS"


INT 21 AX=E400

21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS

AX = E400h

Return

        AL = 00h if DoubleDOS not present
   = 01h if running in visible DoubleDOS partition
   = 02h if running in the invisible DoubleDOS partition

SeeAlso

    INT 21 AH=E5"DoubleDOS"    INT 21 AX=F400


INT 21 AX=E400

21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER

AX = E400h
???

Return

        ???

Note

     	protected mode only???


INT 21 AX=E402

21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE

AX = E402h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=E403


INT 21 AX=E403

21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE

AX = E403h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=E402


INT 21 AH=E5

21 - Novell NetWare 4.0 - UPDATE FILE SIZE (FCB)

AH = E5h
DS:DX -> FCB (see AH=0Fh)

Return

        AL = error code


INT 21 AH=E5

21 - DoubleDOS - OTHER PROGRAM STATUS

AH = E5h

Return

        AL = 00h no program in other partition
   = 01h program in other partition is running
   = 02h program in other partition is suspended

SeeAlso

    INT 21 AX=E400"DoubleDOS"    INT 21 AH=F5"DoubleDOS"


INT 21 AX=E500

21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY

AX = E500h
???

Return

        ???

SeeAlso

    INT 21 AX=E501


INT 21 AX=E501

21 - OS/286, OS/386 - FORCE HEAP COMPACTION

AX = E501h
???

Return

        ???

SeeAlso

    INT 21 AX=E500


INT 21 AH=E6

21 - Novell NetWare 4.0 - COPY FILE TO FILE (FCB)

AH = E6h
CX:DX = number of bytes to copy
DS:SI -> source FCB
ES:DI -> destination FCB

Return

        AL = error code


INT 21 AH=E6

21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE

AH = E6h
???

Return

        ???

SeeAlso

    INT 21 AH=E2"OS/286"


INT 21 AH=E7

21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME

AH = E7h
DS:DX -> date/time buffer (see below)

Return

        AL = error code
    00h successful
    FFh unsuccessful

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  Alloy NTNX, and Banyan VINES

SeeAlso

    INT 21 AH=2A    INT 21 AH=2C    INT 21 AH=E3    /SF=CA

Table Formats

Date/time buffer:


INT 21 AH=E7

21 - OS/286, OS/386 - CREATE CODE SEGMENT

AH = E7h
???

Return

        ???

SeeAlso

    INT 21 AH=E8"OS/286"    INT 21 AH=E9"OS/286"    INT 21 AH=EA"OS/286"


INT 21 AH=E7

21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK

AH = E7h

Return

        AH = 78h if resident

SeeAlso

    INT 21 AH=E4"VIRUS"    INT 21 AX=EC59


INT 21 AH=E8

21 - Novell NetWare 4.6, Alloy NTNX - SET FCB RE-OPEN MODE

AH = E8h
DL = mode
    00h no automatic re-open
    01h auto re-open

Return

        AL = error code


INT 21 AH=E8

21 - OS/286, OS/386 - SEGMENT CREATION

AH = E8h
AL = type
    00h data segment
    01h data window/alias
    02h real segment
    03h real window/alias
    06h shareable segment
???

Return

        ???

SeeAlso

    INT 21 AH=E7"OS/286"    INT 21 AH=E9"OS/286"


INT 21 AH=E8

21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS

AH = E8h
AL = 00h set flags for this program
   = 01h set flags for other program
DX = keyboard control flags (bit set enables, cleared disables
    bit 0: menu
    bit 1: exchange
    bit 2: entire keyboard enable/disable
    bit 3: Ctrl-C
    bit 4: Ctrl-PrtSc
    bit 5: Alt/Erase
    bit 6: Ctrl-Break
    bit 7: Ctrl-NumLock
    bit 8: shift-PrtSc
    bit 9-13: undefined
    bit 14: cancel key (clear keyboard buffer)
    bit 15: suspend key

Return

        DX = previous flags

Notes

      	disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  disabling any of the other keystrokes disables them completely
identical to AH=F8h

SeeAlso

    INT 21 AH=E1"DoubleDOS"    INT 21 AH=E2"DoubleDOS"    INT 21 AH=E3"DoubleDOS"

SeeAlso

    INT 21 AH=F8"DoubleDOS"


INT 21 AH=E9

21 P - OS/286, OS/386 - CHANGE SEGMENTS

AH = E9h
AL = function
    01h change code segment parameters
    02h	change data segment parameters
    05h adjust segment limit
    06h change segment base address
???

Return

        ???

SeeAlso

    INT 21 AH=E7"OS/286"    INT 21 AH=E8"OS/286"    INT 21 AH=EA"OS/286"    INT 21 AH=ED"OS/286"

SeeAlso

    INT 31 AX=0007    INT 31 AX=0008


INT 21 AH=E9

21 - DoubleDOS - SET TIMESHARING PRIORITY

AH = E9h
AL = 00h visible program gets 70%, invisible gets 30% (default)
   = 01h visible program gets 50%, invisible gets 50%
   = 02h visible program gets 30%, invisible gets 70%
   = 03h Top program gets 70%, bottom program gets 30%
   = 04h Top program gets 30%, bottom program gets 70%
   = 05h get current priority
Return: AL = priority setting

Note

     	identical to AH=F9h

SeeAlso

    INT 21 AH=EA"DoubleDOS"    INT 21 AH=EB"DoubleDOS"    INT 21 AH=F9"DoubleDOS"


INT 21 AX=E900

21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE

AX = E900h
DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31)

Return

        AL = directory handle
AH = flags (drive not mapped if none set)
    bit 0: permanent handle
    bit 1: temporary handle
    bit 7: mapped to local drive

Note

     	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E2    /SF=00h    INT 21 AH=E2    /SF=01h    INT 21 AH=E2    /SF=0A


INT 21 AX=E905

21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY

AX = E905h
BL = drive number (0=default, 1=A:, ...)
DS:DX -> ASCIZ path for fake root (may include server name or be empty)

Return

        CF set on error
    AL = error code (03h,0Fh,11h) (see AH=59h)
CF clear if successful

Note

     	if drive is not currently mapped, a drive mapping will be created

SeeAlso

    INT 21 AX=E906


INT 21 AX=E906

21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY

AX = E906h
BL = drive number (0=default, 1=A:, ...)

Note

     	drive remains mapped

SeeAlso

    INT 21 AX=E905


INT 21 AX=E907

21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH

AX = E907h
BL = drive number (0=default, 1=A:, ...)

Return

        AL = number of directories below the fake root
    FFh if no fake root assigned

SeeAlso

    INT 21 AX=E905


INT 21 AX=E908

21 - Novell NetWare shell 3.01 - SET SHOW DOTS

AX = E908h
BL = 00h	don't return '.' or '..' during directory scans
   = nonzero	directory scans will return '.' or '..' entries

Return

        BL = previous show-dots setting


INT 21 AH=EA

21 - Novell NetWare 4.6, Alloy NTNX - RETURN SHELL VERSION

AH = EAh
AL = return version environment string
    00h	don't return string
    nonzero	return string in 40-byte buffer pointed to by ES:DI
Return: buffer filled with three null-terminated entries:
major operating system
version
hardware type

Return

        AH = operating system (00h = MSDOS)
AL = hardware type
    00h IBM PC
    01h Victor 9000
BH = major shell version
BL = minor shell version
CH = (v3.01+) shell type
    00h conventional memory
    01h expanded memory
    02h extended memory
CL = shell revision number


INT 21 AH=EA

21 - DoubleDOS - TURN OFF TASK SWITCHING

AH = EAh

Return

        task switching turned off

SeeAlso

    INT 21 AH=E9"DoubleDOS"    INT 21 AH=EB"DoubleDOS"    INT 21 AH=FA"DoubleDOS"

SeeAlso

    INT FADoubleDOS


INT 21 AH=EA

21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT

AH = EAh
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AH=E7"OS/286"    INT 21 AH=E8"OS/286"    INT 21 AH=E9"OS/286"


INT 21 AH=EB

21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE

AH = EBh
DS:DX -> ASCIZ filename
if function C6h lock mode 01h:
    AL = flags
00h log file only
01h lock as well as log file
    BP = lock timeout in timer ticks (1/18 second)
0000h = don't wait if file already locked

Return

        AL = error code
    00h successful
    96h no dynamic memory for file
    FEh timed out
    FFh failed

Desc

     	add the location and size of the specified file to the log table and
  optionally lock the file

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=BC"NetWare"    INT 21 AH=CA    INT 21 AH=D0    INT 21 AH=EC"NetWare"    INT 21 AH=ED"NetWare"


INT 21 AH=EB

21 - DoubleDOS - TURN ON TASK SWITCHING

AH = EBh

Return

        task switching turned on

SeeAlso

    INT 21 AH=E9"DoubleDOS"    INT 21 AH=EA"DoubleDOS"    INT 21 AH=FB"DoubleDOS"

SeeAlso

    INT FBDoubleDOS


INT 21 AX=EB00

21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS

AX = EB00h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=EB02    INT 21 AX=EB04    INT 31 AX=0506


INT 21 AX=EB02

21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET

AX = EB02h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=EB00    INT 21 AX=EB04


INT 21 AX=EB03

21 - OS/386 VMM - FREE MAPPED PAGES

AX = EB03h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=EB05    INT 31 AX=0801


INT 21 AX=EB04

21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET

AX = EB04h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=EB00    INT 21 AX=EB02


INT 21 AX=EB05

21 - OS/386 VMM - MAP PAGES

AX = EB05h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=EB03    INT 31 AX=0800


INT 21 AX=EB06

21 - OS/386 VMM - LOCK PAGES IN MEMORY

AX = EB06h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=EB07    INT 31 AX=0600


INT 21 AX=EB07

21 - OS/386 VMM - UNLOCK MEMORY PAGES

AX = EB07h
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AX=EB06    INT 31 AX=0601


INT 21 AH=EC

21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE

AH = ECh
DS:DX -> ASCIZ filename

Return

        AL = status
    00h successful
    FFh file not found

Desc

     	unlock the specified file but retain it in the log table

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=CD    INT 21 AH=EB"NetWare"    INT 21 AH=ED"NetWare"


INT 21 AH=EC

21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS

AH = ECh

Return

        ES = segment of virtual screen

Notes

      	screen address can change if task-switching is on!!
identical to AH=FCh

SeeAlso

    INT 10 AH=FE    INT 21 AH=FC"DoubleDOS"    INT FCDoubleDOS


INT 21 AH=EC

21 - OS/286, OS/386 - BLOCK TRANSFER

AH = ECh
???

Return

        ???


INT 21 AX=EC59

21 - VIRUS - "Terror" - INSTALLATION CHECK

AX = EC59h

Return

        BP = EC59h if resident

SeeAlso

    INT 21 AH=E7"VIRUS"    INT 21 AH=EE"VIRUS"


INT 21 AH=ED

21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE

AH = EDh
DS:DX -> ASCIZ filename

Return

        AL = status
    00h successful
    FFh no files found

Desc

     	unlock the file and remove it from the log table

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=CB"NetWare"    INT 21 AH=CE    INT 21 AH=CF    INT 21 AH=EB"NetWare"    INT 21 AH=EC"NetWare"


INT 21 AH=ED

21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR

AH = EDh
???

Return

        ???

Note

     	protected mode only???

SeeAlso

    INT 21 AH=E9"OS/286"


INT 21 AH=EE

21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS

AH = EEh

Return

        CX:BX:AX = six-byte physical address

Note

     	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  Alloy NTNX

SeeAlso

    INT 21 AH=E3    /SF=13


INT 21 AH=EE

21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS

AH = EEh
AL = number of 55ms time slices to give away

Return

        returns after giving away time slices

SeeAlso

    INT 21 AH=FE"DoubleDOS"    INT FEDoubleDOS


INT 21 AH=EE

21 - VIRUS - "Jerusalem-G", "Pregnant" - INSTALLATION CHECK

AH = EEh

Return

        AX = 0300h if "Jerusalem-G" resident
AL = 05h if "Pregnant" resident

SeeAlso

    INT 21 AH=DD"VIRUS"    INT 21 AX=EC59    INT 21 AH=F0"VIRUS"


INT 21 AX=EF00

21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE

AX = EF00h

Return

        ES:SI -> network shell's 32-byte drive handle table
AX = 0000h

Notes

      	this function is supported by Advanced NetWare 1.0+
each byte in the drive handle table contains the directory handle for
  the corresponding drive, or 00h if not mapped to a directory

SeeAlso

    INT 21 AX=EF01    INT 21 AX=EF02    INT 21 AX=EF03    INT 21 AX=EF04


INT 21 AX=EF01

21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE

AX = EF01h

Return

        ES:SI -> network shell's 32-byte drive flag table (see below)
AX = 0000h

Notes

      	this function is supported by Advanced NetWare 1.0+
each byte in the drive flag table corresponds to a drive

SeeAlso

    INT 21 AX=EF00    INT 21 AX=EF02    INT 21 AX=EF03

Values in drive flag table:
 00h	drive is not mapped
 01h	permanent network drive
 02h	temporary network drive
 80h	mapped to local drive
 81h	local drive used as permanent network drive
 82h	local drive used as temporary network drive


INT 21 AX=EF02

21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID

AX = EF02h

Return

        ES:SI -> network shell's 32-byte drive conection ID table
AX = 0000h

Notes

      	this function is supported by Advanced NetWare 1.0+
each byte in the connection ID table corresponds to a drive and
  contains either the connection ID (1-8) of the server for that drive
  or 00h if the drive is not mapped to a file server

SeeAlso

    INT 21 AX=EF01    INT 21 AX=EF03    INT 21 AX=F002


INT 21 AX=EF03

21 - Novell NetWare - WORKSTATION - GET CONNECTION ID

AX = EF03h

Return

        ES:SI -> network shell's connection ID table (see below)
AX = 0000h

Note

     	this function is supported by Advanced NetWare 1.0+

SeeAlso

    INT 21 AX=EF00    INT 21 AX=EF02    INT 21 AX=EF04    INT 21 AX=F002

Table Formats

Connection ID table [one entry of eight-element array]:


INT 21 AX=EF04

21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME

AX = EF04h

Return

        ES:SI -> network shell's file server name table (see below)
AX = 0000h

Notes

      	this function is supported by Advanced NetWare 1.0+
the name table consists of eight 48-byte entries, each consisting of
  an ASCIZ server name for the corresponding entry in the connection
  ID table

SeeAlso

    INT 21 AX=EF03


INT 21 AH=F0

21 - DoubleDOS - MENU CONTROL

AH = F0h
AL = subfunction
    01h exchange tasks
    73h resume invisible job if suspended
    74h kill other job
    75h suspend invisible job

Note

     	identical to AH=E0h

SeeAlso

    INT 21 AH=E0"DoubleDOS"


INT 21 AH=F0

21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK

AH = F0h

Return

        AX = 0300h if resident

SeeAlso

    INT 21 AH=EE"VIRUS"    INT 21 AH=F1"VIRUS"


INT 21 AX=F000

21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID

AX = F000h
DL = connection ID of prefered file server (1-8) or 00h for none

Notes

      	this function is supported by Advanced NetWare 1.0+
the preferred connection ID is set to 00h by the shell on EOJ

SeeAlso

    INT 21 AH=D6    INT 21 AX=EF03    INT 21 AX=F001    INT 21 AX=F002    INT 21 AX=F005


INT 21 AX=F001

21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID

AX = F001h

Return

        AL = connection ID of preferred file server (1-8), 00h if not set

Notes

      	this function is supported by Advanced NetWare 1.0+
the preferred connection ID is set to 00h by the shell on EOJ

SeeAlso

    INT 21 AH=D6    INT 21 AX=EF03    INT 21 AX=F000    INT 21 AX=F002    INT 21 AX=F005


INT 21 AX=F002

21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID

AX = F002h

Return

        AL = connection ID of current default file server (1-8) (see AX=EF03h)

Note

     	this function is supported by Advanced NetWare 1.0+

SeeAlso

    INT 21 AX=EF03    INT 21 AX=F000    INT 21 AX=F004


INT 21 AX=F003

21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS

AX = F003h

Return

        AH = status
    00h not active
    FFh active
AL = connection ID (01h-08h)

Note

     	this function is supported by Advanced NetWare 1.0+

SeeAlso

    INT 21 AX=B800    INT 21 AX=B804    INT 21 AH=DF    /DL=00h    INT 21 AH=DF    /DL=04


INT 21 AX=F004

21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID

AX = F004h
DL = connection ID of primary file server (1-8) or 00h for none

Note

     	this function is supported by Advanced NetWare 2.0+

SeeAlso

    INT 21 AH=D6    INT 21 AX=EF03    INT 21 AX=F000    INT 21 AX=F002    INT 21 AX=F005


INT 21 AX=F005

21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID

AX = F005h

Return

        AL = connection ID of primary file server (1-8), 00h if not set

Notes

      	this function is supported by Advanced NetWare 2.0+
by default, the primary file server is the one from which the login
  script executed; it is set to 00h if the workstation is not logged in
  and when it detaches from its primary file server

SeeAlso

    INT 21 AH=D6    INT 21 AX=EF03    INT 21 AX=F000    INT 21 AX=F002    INT 21 AX=F004


INT 21 AH=F1

21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION

AH = F1h
AL = subfunction
    00h attach to file server
DL = preferred file server (01h-08h)
    01h detach from file server
DL = connection ID
    02h logout from file server
DL = connection ID

Return

        AL = status
    00h successful
    F8h already attached to server
    F9h connection table full
    FAh no more server slots
    FCh unknown file server
    FEh server bindery locked
    FFh no response from server, or connection does not exist

Note

     	these functions are supported by Advanced NetWare 1.0+

SeeAlso

    INT 21 AH=D7"NetWare"    INT 21 AH=E3    /SF=14


INT 21 AH=F1

21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB

AH = F1h

SeeAlso

    INT 21 AH=E1"DoubleDOS"    INT 21 AH=F2"DoubleDOS"    INT 21 AH=F3"DoubleDOS"

SeeAlso

    INT 21 AH=F8"DoubleDOS"


INT 21 AH=F1

21 - VIRUS - "F1-337" - ???

AH = F1h
???

Return

        ???

SeeAlso

    INT 21 AH=F0"VIRUS"    INT 21 AX=F2AA


INT 21 AH=F2

21 - Novell NetWare v3.01+ shell interface - MULTIPLEXOR

AH = F2h
AL = function
    15h broadcast services (see AH=E1h"NetWare")
    16h file/directory services (see AH=E2h"NetWare")
    17h connection control (see AH=E3h"NetWare")
CX = length of request buffer in bytes
DX = length of reply buffer in bytes
DS:SI -> request buffer (contents vary by function)
ES:DI -> reply buffer (contents vary by function)

Return

        AL = status
reply buffer filled as appropriate for function

Note

     	this is a multiplexor providing a "raw" interface to the underlying
  Netware Core Protocol.  Many functions which were accessed via a
  separate AH function in older versions can also be accessed here
  (the function number in AL is added to CCh to get the old function
  number which is desired), but some NetWare 3.x calls appear to be
  available only here.

SeeAlso

    INT 21 AX=F244


INT 21 AH=F2

21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB

AH = F2h
AL = character

Return

        AL = 00h successful
     01h buffer full (128 characters)

SeeAlso

    INT 21 AH=E2"DoubleDOS"    INT 21 AH=F1"DoubleDOS"    INT 21 AH=F3"DoubleDOS"

SeeAlso

    INT 21 AH=F8"DoubleDOS"


INT 21 AX=F244

21 - Novell NetWare - FILE SERVICES - ERASE FILES

AX = F244h
DS:SI -> request buffer (see below)
ES:DI -> reply buffer (ignored???)

Return

        AL = status
    00h successful
    98h nonexistent volume
    9Bh invaid directory handle
    9Ch invalid path
    FFh no files found

Note

     	this function only marks the file for deletion; use AH=E2h/SF=CEh to
  actually delete all marked files

SeeAlso

    INT 21 AH=13    INT 21 AH=41    INT 21 AH=E2    /SF=0Bh    INT 21 AH=E3    /SF=CE

Table Formats

Request buffer:


INT 21 AX=F2AA

21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK

AX = F2AAh

Return

        AH = AAh if resident

SeeAlso

    INT 21 AH=F1"VIRUS"    INT 21 AH=F3"VIRUS"


INT 21 AH=F3

21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY

AH = F3h
ES:DI -> request buffer (see below)

Return

        AL = status/error code
CX:DX = number of bytes copied

Notes

      	this function is supported by Advanced NetWare 2.0+
both source and destination must be on the same file server

SeeAlso

    INT 21 AH=3C    INT 21 AH=3F

Table Formats

Request buffer:


INT 21 AH=F3

21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB

AH = F3h
AL = character

Return

        AL = 00h successful
     01h buffer full (128 characters)

SeeAlso

    INT 21 AH=E3"DoubleDOS"    INT 21 AH=F1"DoubleDOS"    INT 21 AH=F2"DoubleDOS"

SeeAlso

    INT 21 AH=F8"DoubleDOS"


INT 21 AH=F3

21 - VIRUS - "Carfield" - INSTALLATION CHECK

AH = F3h

Return

        AX = 0400h if resident

SeeAlso

    INT 21 AH=D5"Carfield"    INT 21 AX=F2AA    INT 21 AH=F7"VIRUS"


INT 21 AX=F400

21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS

AX = F400h

Return

        AL = 00h if DoubleDOS not present
   = 01h if running in visible DoubleDOS partition
   = 02h if running in the invisible DoubleDOS partition

SeeAlso

    INT 21 AX=E400    INT 21 AH=F5"DoubleDOS"


INT 21 AH=F5

21 - DoubleDOS - OTHER PROGRAM STATUS

AH = F5h

Return

        AL = 00h no program in other partition
   = 01h program in other partition is running
   = 02h program in other partition is suspended

SeeAlso

    INT 21 AH=E5"DoubleDOS"    INT 21 AX=F400"DoubleDOS"


INT 21 AH=F7

21 - VIRUS - "GP1" - INSTALLATION CHECK

AH = F7h

Return

        AX = 0300h if resident

SeeAlso

    INT 21 AH=F0"VIRUS"    INT 21 AH=FB"VIRUS"


INT 21 AH=F8

21 - DOS v2.11 - SET OEM INT 21 HANDLER

AH = F8h
DS:DX -> OEM INT 21 handler for functions F9h to FFh
 FFFFh:FFFFh disables OEM handler

Notes

      	this function is supported by Toshiba T1000 ROM MSDOS 2.11
calls to AH=F9h through AH=FFH will return AL=00h if no handler set
handler is called with all registers exactly as set by caller, and
  should exit with IRET

SeeAlso

    INT 21 AH=F9"OEM"


INT 21 AH=F8

21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS

AH = F8h
AL = 00h set flags for this program
   = 01h set flags for other program
DX = keyboard control flags (bit set enables, cleared disables)
    bit 0: menu
    bit 1: exchange
    bit 2: entire keyboard enable/disable
    bit 3: Ctrl-C
    bit 4: Ctrl-PrtSc
    bit 5: Alt/Erase
    bit 6: Ctrl-Break
    bit 7: Ctrl-NumLock
    bit 8: shift-PrtSc
    bit 9-13: undefined
    bit 14: cancel key (clear keyboard buffer)
    bit 15: suspend key

Return

        DX = previous flags

Notes

      	disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  disabling any of the other keystrokes disables them completely
identical to AH=E8h

SeeAlso

    INT 21 AH=E8"DoubleDOS"    INT 21 AH=F1"DoubleDOS"    INT 21 AH=F2"DoubleDOS"

SeeAlso

    INT 21 AH=F3"DoubleDOS"


INT 21 AH=F9

21 - DOS v2.11 - OEM FUNCTION

AH = F9h

SeeAlso

    INT 21 AH=F8"OEM"    INT 21 AH=FA"OEM"


INT 21 AH=F9

21 - DoubleDOS - SET TIMESHARING PRIORITY

AH = F9h
AL = 00h visible program gets 70%, invisible gets 30% (default)
   = 01h visible program gets 50%, invisible gets 50%
   = 02h visible program gets 30%, invisible gets 70%
   = 03h Top program gets 70%, bottom program gets 30%
   = 04h Top program gets 30%, bottom program gets 70%
   = 05h get current priority
Return: AL = priority setting

Note

     	identical to AH=E9h

SeeAlso

    INT 21 AH=E9"DoubleDOS"    INT 21 AH=FA"DoubleDOS"    INT 21 AH=FB"DoubleDOS"


INT 21 AH=FA

21 - DOS v2.11 - OEM FUNCTION

AH = FAh

SeeAlso

    INT 21 AH=F8"OEM"    INT 21 AH=F9"OEM"    INT 21 AH=FB"OEM"


INT 21 AH=FA

21 - DoubleDOS - TURN OFF TASK SWITCHING

AH = FAh

Return

        task switching turned off

SeeAlso

    INT 21 AH=EA"DoubleDOS"    INT 21 AH=F9"DoubleDOS"    INT 21 AH=FB"DoubleDOS"

SeeAlso

    INT FADoubleDOS


INT 21 AH=FA

21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API

AH = FAh
DX = 5945h
AL = function (00h-02h for VDEFEND, 00h-07h for VSAFE and VWATCH)

Return

        varies by function

Note

     	this API is identical to the API on INT 13/AH=FAh and INT 16/AH=FAh,
  so it is listed in its entirety only under INT 16/AX=FA00h and
  following

SeeAlso

    INT 13 AX=FA00    INT 16 AX=FA00


INT 21 AH=FB

21 - DOS v2.11 - OEM FUNCTION

AH = FBh

SeeAlso

    INT 21 AH=F8"OEM"    INT 21 AH=FA"OEM"    INT 21 AH=FC"OEM"


INT 21 AH=FB

21 - DoubleDOS - TURN ON TASK SWITCHING

AH = FBh

Return

        task switching turned on

SeeAlso

    INT 21 AH=EB"DoubleDOS"    INT 21 AH=F9"DoubleDOS"    INT 21 AH=FA"DoubleDOS"

SeeAlso

    INT FBDoubleDOS


INT 21 AH=FB

21 - VIRUS - "Cinderella" - INSTALLATION CHECK

AH = FBh

Return

        AH = 00h if resident

SeeAlso

    INT 21 AH=F7"VIRUS"    INT 21 AX=FB0A


INT 21 AX=FB0A

21 - VIRUS - "dBASE" - INSTALLATION CHECK

AX = FB0Ah

Return

        AX = 0AFBh if resident

SeeAlso

    INT 21 AH=FB"VIRUS"    INT 21 AH=FC"VIRUS"


INT 21 AH=FC

21 - DOS v2.11 - OEM FUNCTION

AH = FCh

SeeAlso

    INT 21 AH=F8"OEM"    INT 21 AH=FB"OEM"    INT 21 AH=FD"OEM"


INT 21 AH=FC

21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS

AH = FCh

Return

        ES = segment of virtual screen

Notes

      	screen address can change if task-switching is on!!
identical to AH=ECh

SeeAlso

    INT 21 AH=EC"DoubleDOS"    INT FCDoubleDOS


INT 21 AH=FC

21 - VIRUS - "Troi" - INSTALLATION CHECK

AH = FCh

Return

        AL = A5h if resident

SeeAlso

    INT 21 AH=FB    Ah"VIRUS"    INT 21 AH=FD"VIRUS"


INT 21 AH=FD

21 - DOS v2.11 - OEM FUNCTION

AH = FDh

SeeAlso

    INT 21 AH=F8"OEM"    INT 21 AH=FC"OEM"    INT 21 AH=FE"DOS"


INT 21 AH=FD

21 - VIRUS - "Border" - INSTALLATION CHECK

AH = FDh

Return

        AH = 13h if resident

SeeAlso

    INT 21 AH=FC"VIRUS"    INT 21 AH=FE"VIRUS"


INT 21 AH=FE

21 - DOS v2.11 - OEM FUNCTION

AH = FEh

SeeAlso

    INT 21 AH=F8"OEM"    INT 21 AH=FD"OEM"    INT 21 AH=FF"OEM"


INT 21 AH=FE

21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS

AH = FEh
AL = number of 55ms time slices to give away

Return

        returns after giving away time slices

SeeAlso

    INT 21 AH=EE"DoubleDOS"    INT FEDoubleDOS


INT 21 AH=FE

21 - VIRUS - "483" - INSTALLATION CHECK

AH = FEh

Return

        AH = 00h if resident

SeeAlso

    INT 21 AH=FD"VIRUS"    INT 21 AX=FE01


INT 21 AX=FE01

21 - VIRUS - "Flip" - INSTALLATION CHECK

AX = FE01h

Return

        AX = 01FEh if resident

SeeAlso

    INT 21 AH=FE"VIRUS"    INT 21 AX=FE02


INT 21 AX=FE02

21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK

AX = FE02h

Return

        AX = 01FDh if resident

SeeAlso

    INT 21 AX=FE01    INT 21 AX=FEDC"VIRUS"


INT 21 AX=FEDC

21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK

AX = FEDCh

Return

        AX = CDEFh if installed

SeeAlso

    INT 21 AH=DC


INT 21 AX=FEDC

21 - VIRUS - "Black Monday" - INSTALLATION CHECK

AX = FEDCh

Return

        AL = DCh if resident

SeeAlso

    INT 21 AX=FE02    INT 21 AH=FF"VIRUS"


INT 21 AH=FF

21 - DOS v2.11 - OEM FUNCTION

AH = FFh

SeeAlso

    INT 21 AH=F8"OEM"    INT 21 AH=FE"OEM"


INT 21 AH=FF

21 - CED (Command EDitor) - INSTALLABLE COMMANDS

AH = FFH
AL = subfunction
    00h add installable command
       BL = mode - bit 0 = 1 callable from DOS prompt
   bit 1 = 1 callable from application
       DS:SI -> CR-terminated command name
       ES:DI -> FAR routine entry point
    01h remove installable command
       DS:SI -> CR-terminated command name
    02h reserved, may be used to test for CED installation

Return

        CF clear if successful
CF set on error
    AX = 01h invalid function
 02h command not found (subfunction 01h only)
 08h insufficient memory (subfunction 00h only)
 0Eh bad data (subfunction 00h only)
AH = FFh if CED not installed

Note

     	CED is a shareware DOS command-line enhancer by Christopher J. Dunford

SeeAlso

    INT 21 AX=0A00


INT 21 AH=FF

21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS

AH = FFh
AL = function
    01h create file
    02h open file
    03h get file statistics
    04h get time of day
    05h set time of day
    06h stat
    07h system

SeeAlso

    INT 10 AH=FF"GO32"


INT 21 AH=FF

21 - DOSED.COM - INSTALLATION CHECK

AH = FFh
DS:SI -> "DOSED"
ES = 0000h

Return

        ES:DI -> "DOSED" if installed

Note

     	DOSED is a free DOS commandline editor/history buffer by Sverre H.
  Huseby


INT 21 AH=FF

21 - Topware Network Operating System - ???

AH = FFh
???

Return

        ???

SeeAlso

    INT 2F AX=FF00


INT 21 AH=FF

21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK

AH = FFh

Return

        AH = 00h if "Tumen 0.5" or "Hero" resident
AX = 0400h if "Sunday" resident

SeeAlso

    INT 21 AX=FEDC"VIRUS"    INT 21 AX=FF0F


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - API

AH = FFh
DH = function (00h-17h) (see also separate entries below)
DL = subfunction or argument

Return

        CF clear if valid function number
    AX = status???
CF set if invalid function

SeeAlso

    INT 15 AX=BFDC


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - SET ???

AH = FFh
DH = 02h
DL = ???

Return

        CF clear


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 05h
BX = ???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 06h
BX = ???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 07h
BX = ???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 08h
BX = ???
CX = ???
ES = ???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - GET ???

AH = FFh
DH = 09h

Return

        ES:BX -> ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 0Ah
AL = ???
BX = ???
CX = ???

Return

        ES = ??? or 0000h


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 0Bh
AL = ???
BX = ???
CX = ???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - GET/SET ???

AH = FFh
DH = 0Ch
DL = ??? (00h or 01h)

Return

        CF clear if successful
    AL = previous value of ???
CF set on error (DL out of range)
    AX = FFFFh


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 0Dh
???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 0Eh

Return

        DX:AX -> XBRK structure (see INT 15/AX=BF02h)
BX = ???
CX = ???

SeeAlso

    INT 15 AX=BF02


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 0Fh
???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 10h
AL = ???
BX = ???
CX = ???
DI = ???
SI = ???

Return

        ???

Note

     	among other things, frees two memory blocks via INT 21/AH=49h


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - NOP

AH = FFh
DH = 11h


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS

AH = FFh
DH = 12h
DS:SI -> new ???
ES:DI -> new ???

Return

        DS:SI -> previous ???
ES:DI -> previous ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 13h
AL = ???
ES = ???

Return

        ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFh
DH = 14h
BX = ???
CX = ???

Return

        CF clear
    AX = ???
    DX = ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS

AH = FFh
DH = 15h

Return

        CF clear
    DX:AX -> FAR function for ???
    CX:BX -> FAR function for ???
    SI:DI -> FAR function for ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - GET ???

AH = FFh
DH = 16h

Return

        AX = ???


INT 21 AH=FF

21 UP - Rational Systems DOS/4GW - ???

AH = FFH
DH = 17h
AL = ???
DL = ???

Return

        ???


INT 21 AX=FF00

21 - Rational Systems DOS/4G - INSTALLATION CHECK

AX = FF00h
DX = 0078h

Return

        AL <> 00h if installed
    GS = segment of kernel if nonzero

SeeAlso

    INT 15 AX=BF02


INT 21 AX=FF0F

21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK

AX = FF0Fh

Return

        AX = 0101h if resident

Notes

      	FLU_SHOT+ is an antivirus/antitrojan program by Ross M. Greenberg and
  Software Concepts Design
the "PSQR/1720" virus calls this function to determine whether
  FLU_SHOT+ is present

SeeAlso

    INT 21 AH=FF"VIRUS"    INT 21 AX=FF10


INT 21 AX=FF10

21 - VIRUS - "Twins" - INSTALLATION CHECK

AX = FF10h

Return

        AL = 07h if resident

SeeAlso

    INT 21 AX=FF0F    INT 21 AX=FFFE


INT 21 AX=FFFE

21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK

AX = FFFEh

Return

        AX = 0815h if resident

SeeAlso

    INT 21 AX=FF10    INT 21 AX=FFFF


INT 21 AX=FFFF

21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK

AX = FFFFh

Return

        AX = 0000h if "Ontario" resident
AX = 1992h if "Year 1992"/"B1M92" resident

SeeAlso

    INT 21 AX=FF0F    INT 21 AX=FFFF    /CX=0000h    INT 6BVIRUS


INT 21 AX=FFFF

21 - VIRUS - "Revenge" - INSTALLATION CHECK

AX = FFFFh
CX = 0000h

Return

        CX = 0006h if resident

SeeAlso

    INT 21 AX=FFFF    INT 6BVIRUS


INT 22

22 - DOS 1+ - PROGRAM TERMINATION ADDRESS

Desc

     	this vector specifies the address of the routine which is to be given
  control after a program is terminated; it should never be called
  directly, since it does not point at an interrupt handler

Notes

      	this vector is restored from the DWORD at offset 0Ah in the PSP during
  termination, and then a FAR JMP is performed to the address in INT 22
normally points at the instruction immediately following INT 21/AH=4Bh
  call which loaded the current program

SeeAlso

    INT 20INT 21/AH=00h    INT 21 AH=31    INT 21 AH=4C


INT 23

23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER

---DOS 1.x---

Return

        AH = 00h abort program
if all registers preserved, restart DOS call
---DOS 2+---
CF clear

Return

        all registers preserved
return via RETF or RETF 2 with CF set
    DOS will abort program with errorlevel 0
else (RETF/RETF 2 with CF clear or IRET)
    interrupted DOS call is restarted

Notes

      	this interrupt is invoked whenever DOS detects a ^C or ^Break; it
  should never be called directly
MSDOS 1.25 also invokes INT 23 on a divide overflow (INT 00)
DOS remembers the stack pointer before calling INT 23, and if it is
  not the same on return, pops and discards the top word; this is what
  permits a return with RETF as well as IRET or RETF 2
any DOS call may safely be made within the INT 23 handler, although
  the handler must to check for a recursive invocation if it does
  call DOS

SeeAlso

    INT 1B


INT 24

24 - DOS 1+ - CRITICAL ERROR HANDLER

Note

     	invoked when a critical (usually hardware) error is encountered; should
  never be called directly

SeeAlso

    INT 21 AH=95

Critical error handler is invoked with:
AH = type and processing flags
    bit 7 clear = disk I/O error
  set	= -- if block device, bad FAT image in memory
  -- if char device, error code in DI
    bit 6  unused
    bit 5 = 1 if Ignore allowed, 0 if not (DOS 3+)
    bit 4 = 1 if Retry allowed, 0 if not (DOS 3+)
    bit 3 = 1 if Fail allowed, 0 if not (DOS 3+)
    bit 2 \ disk area of error	00 = DOS area  01 = FAT
    bit 1 /	10 = root dir  11 = data area
    bit 0 = 1 if write, 0 if read
AL = drive number if AH bit 7 clear
BP:SI -> device driver header (BP:[SI+4] bit 15 set if char device)
DI low byte contains error code if AH bit 7 set
   00h write-protection violation attempted
   01h unknown unit for driver
   02h drive not ready
   03h unknown command given to driver
   04h data error (bad CRC)
   05h bad device driver request structure length
   06h seek error
   07h unknown media type
   08h sector not found
   09h printer out of paper
   0Ah write fault
   0Bh read fault
   0Ch general failure
   0Dh (DOS 3+) sharing violation
   0Eh (DOS 3+) lock violation
   0Fh invalid disk change
   10h (DOS 3+) FCB unavailable
   11h (DOS 3+) sharing buffer overflow
   12h (DOS 4+) code page mismatch
   13h (DOS 4+) out of input
   14h (DOS 4+) insufficient disk space
STACK:	DWORD	return address for INT 24 call
WORD	flags pushed by INT 24
WORD	original AX on entry to INT 21
WORD	BX
WORD	CX
WORD	DX
WORD	SI
WORD	DI
WORD	BP
WORD	DS
WORD	ES
DWORD	return address for INT 21 call
WORD	flags pushed by INT 21
Handler must return:
AL = action code
    00h ignore error and continue processing request
    01h retry operation
    02h terminate program through the equivalent of INT 21/AH=4Ch
(INT 20h for DOS 1.x)
    03h fail system call in progress
SS,SP,DS,ES,BX,CX,DX preserved

Notes

      	the only DOS calls the handler may make are INT 21/AH=01h-0Ch,30h,59h
if the handler returns to the application by popping the stack, DOS
  will be in an unstable state until the first call with AH > 0Ch
for DOS 3.1+, IGNORE (AL=00h) is turned into FAIL (AL=03h) on network
  critical errors
if IGNORE specified but not allowed, it is turned into FAIL
if RETRY specified but not allowed, it is turned into FAIL
if FAIL specified but not allowed, it is turned into ABORT
(DOS 3+) if a critical error occurs inside the critical error handler,
  the DOS call is automatically failed


INT 25

25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M)

AL = drive number (00h = A:, 01h = B:, etc)
CX = number of sectors to read
DX = starting logical sector number (0000h - highest sector on drive)
DS:BX -> buffer for data

Return

        CF clear if successful
CF set on error
    AH = status
 80h device failed to respond (timeout)
 40h seek operation failed
 20h controller failed
 10h data error (bad CRC)
 08h DMA failure
 04h requested sector not found
 03h write-protected disk (INT 26 only)
 02h bad address mark
 01h bad command
    AL = error code (same as passed to INT 24 in DI)
may destroy all other registers except segment registers

Notes

      	original flags are left on stack, and must be popped by caller
this call bypasses the DOS filesystem

BUG

    	DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
invalid drive number

SeeAlso

    INT 13 AH=02    INT 26


INT 25

25 - DOS 3.31+ - ABSOLUTE DISK READ (>32M hard-disk partition)

AL = drive number (0=A, 1=B, etc)
CX = FFFFh
DS:BX -> disk read packet (see below)

Return

        same as above

Notes

      	partition is potentially >32M (and requires this form of the call) if
  bit 1 of device attribute word in device driver is set
original flags are left on stack, and must be removed by caller
this call bypasses the DOS filesystem

SeeAlso

    INT 13 AH=02    INT 26

Table Formats

Disk read packet:


INT 25 AX=CDCD

25 - Stacker - GET DEVICE DRIVER ADDRESS

AX = CDCDh
DS:BX -> buffer for address (see below)
CX = 0001h
DX = 0000h

Return

        AX = CDCDh if Stacker installed
    DS:BX buffer filled

Table Formats

Driver address buffer:
Device driver:
Stacker boot record:


INT 25

25 - PC-CACHE.SYS - INSTALLATION CHECK

AL = FFh
SI = 4358h

Return

        SI = 6378h if installed
    CX = segment of device driver PC-CACHE.SYS
    DX = version (major in DH, minor in DL)

Note

     	PC-CACHE.SYS is a small device driver used by PC-Cache v5.x to obtain
  access to certain disk drivers for devices such as Bernoulli drives

SeeAlso

    INT 13 AH=A0


INT 26

26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M)

AL = drive number (00h = A:, 01h = B:, etc)
CX = number of sectors to write
DX = starting logical sector number (0000h - highest sector on drive)
DS:BX -> data to write

Return

        CF clear if successful
CF set on error
    AH = status
 80h device failed to respond (timeout)
 40h seek operation failed
 20h controller failed
 10h data error (bad CRC)
 08h DMA failure
 04h requested sector not found
 03h write-protected disk (INT 26 only)
 02h bad address mark
 01h bad command
    AL = error code (same as passed to INT 24 in DI)
may destroy all other registers except segment registers

Notes

      	original flags are left on stack, and must be popped by caller
this call bypasses the DOS filesystem

BUG

    	DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
invalid drive number

SeeAlso

    INT 13 AH=03    INT 25


INT 26

26 - DOS 3.31+ - ABSOLUTE DISK WRITE (>32M hard-disk partition)

AL = drive number (0=A, 1=B, etc)
CX = FFFFh
DS:BX -> disk write packet (see below)

Return

        same as above

Notes

      	partition is potentially >32M (and requires this form of the call) if
  bit 1 of device attribute word in device driver is set
original flags are left on stack, and must be removed by caller
this call bypasses the DOS filesystem

SeeAlso

    INT 13 AH=03    INT 25

Table Formats

Disk write packet:


INT 27

27 - DOS 1+ - TERMINATE AND STAY RESIDENT

DX = number of bytes to keep resident (max FFF0h)
CS = segment of PSP

Return

        never

Notes

      	this is an obsolete call
INT 22, INT 23, and INT 24 are restored from the PSP
does not close any open files
the minimum number of bytes which will remain resident is 110h for
  DOS 2.x and 60h for DOS 3+; there is no minimum for DOS 1.x, which
  implements this service in COMMAND.COM rather than the DOS kernel

SeeAlso

    INT 21 AH=31


INT 28

28 - DOS 2+ - DOS IDLE INTERRUPT

   Invoked each time one of the DOS character input functions loops while
   waiting for input.  Since a DOS call is in progress even though DOS is
   actually idle during such input waits, hooking this function is necessary
   to allow a TSR to perform DOS calls while the foreground program is
   waiting for user input.  The INT 28h handler may invoke any INT 21 function
   except functions 00h through 0Ch.  Under DOS 2.x, the critical error flag
   (the byte immediately after the InDOS flag) must be set in order to call
   DOS functions 50h/51h without destroying the DOS stacks.

Notes

      	calls to INT 21/AH=3Fh,40h may not use a handle which refers to CON
at the time of the call, the InDOS flag (see INT 21/AH=34h) is normally
  set to 01h; if larger, DOS is truly busy and should not be reentered
the default handler is an IRET instruction
supported in OS/2 compatibility box

SeeAlso

    INT 21 AH=34    INT 2A AH=84


INT 29

29 C - DOS 2+ - FAST CONSOLE OUTPUT

AL = character to display

Return

        nothing

Notes

      	automatically called when writing to a device with bit 4 of its device
  driver header set (see also INT 21/AH=52h)
COMMAND.COM v3.2 and v3.3 compare the INT 29 vector against the INT 20
  vector and assume that ANSI.SYS is installed if the segment is larger
the default handler under DOS 2.x and 3.x simply calls INT 10/AH=0Eh
the default handler under DESQview 2.2 understands the <Esc>[2J
  screen-clearing sequence, calls INT 10/AH=0Eh for all others

SeeAlso

    INT 79


INT 2A AH=00

2A - NETWORK (Microsoft, LANtastic) - INSTALLATION CHECK

AH = 00h

Return

        AH <> 00h if installed
CF set if NetWare v2.15 NetBIOS emulator installed

SeeAlso

    INT 5C


INT 2A AX=0000

2A - AT&T Starlan Extended NetBIOS (var length names) - INSTALLATION CHECK

AX = 0000h

Return

        AH = DDh

SeeAlso

    INT 5B


INT 2A AH=01

2A - NETWORK (Microsoft,LANtastic) - EXECUTE NETBIOS REQUEST,NO ERROR RETRY

AH = 01h
ES:BX -> NCB (see INT 5C)

Return

        AL = NetBIOS error code
AH = 00h if no error
   = 01h on error

SeeAlso

    INT 2A AH=04    INT 2A AX=0500    INT 5BINT 5C"NetBIOS


INT 2A AH=02

2A - NETWORK (Microsoft) - SET NET PRINTER MODE

AH = 02h
???

Return

        ???


INT 2A AX=0300

2A - NETWORK (Microsoft,LANtastic) - CHECK DIRECT I/O

AX = 0300h
DS:SI -> ASCIZ device name (may be full path or only drive specifier--
must include the colon)

Return

        CF clear if direct physical addressing (INT 13,INT 25) permissible
CF set if access via files only

Notes

      	do not use direct disk accesses if this function returns CF set or the
  device is redirected (INT 21/AX=5F02h)
may take some time to execute
called by DOS kernel on INT 25 and INT 26

SeeAlso

    INT 13INT 25    INT 26INT 21/AX=5F02


INT 2A AH=04

2A - NETWORK (Microsoft,LANtastic) - EXECUTE NetBIOS REQUEST

AH = 04h
AL = error retry
    00h automatically retry request on errors 09h, 12h, and 21h
    01h no retry
ES:BX -> Network Control Block (see INT 5C"NetBIOS")

Return

        AX = 0000h if successful
AH = 01h on error
    AL = error code

Notes

      	invokes either INT 5B or INT 5C as appropriate
NetWare 2.15 NetBIOS emulator returns CF clear if succesful, set on err

SeeAlso

    INT 2A AH=01    INT 2A AX=0500    INT 5BINT 5C"NetBIOS


INT 2A AX=0500

2A - NETWORK (Microsoft,LANtastic) - GET NETWORK RESOURCE AVAILABILITY

AX = 0500h

Return

        AX reserved
BX = number of network names available
CX = number of network control blocks available
DX = number of network sessions available

SeeAlso

    INT 2A AH=01    INT 2A AH=04    INT 5CNetBIOS


INT 2A AH=06

2A - NETBIOS, LANtastic - NETWORK PRINT-STREAM CONTROL

AH = 06h
AL = 01h set concatenation mode (all printer output put in one job)
     02h set truncation mode (default)
 printer open/close starts new print job
     03h flush printer output and start new print job

Return

        CF set on error
    AX = error code
CF clear if successful

Notes

      	subfunction 03h is equivalent to Ctrl/Alt/keypad-*
LANtastic v4.x no longer supports this call

SeeAlso

    INT 21 AX=5D08    INT 21 AX=5D09    INT 2F AX=1125


INT 2A AX=2001

2A - MS Networks or NETBIOS - ???

AX = 2001h
???

Return

        ???

Note

     	intercepted by DESQview 2.x


INT 2A AX=2002

2A - NETWORK - ???

AX = 2002h
???

Return

        ???

Note

     	called by MSDOS 3.30-5.00 APPEND


INT 2A AX=2003

2A - NETWORK - ???

AX = 2003h
???

Return

        ???

Note

     	called by MSDOS 3.30-5.00 APPEND


INT 2A AX=7802

2A - NETWORK - PC LAN PROG v1.31+ - GET LOGGED ON USER NAME

AX = 7802h
ES:DI -> 8-byte buffer to be filled

Return

        AL = 00h if no user logged on to Extended Services
AL <> 00h if user logged on to Extended Services
    buffer at ES:DI filled with name, padded to 8 chars with blanks.


INT 2A AH=80

2A C - NETWORK - BEGIN DOS CRITICAL SECTION

AH = 80h
AL = critical section number (00h-0Fh)
    01h DOS kernel, SHARE.EXE
apparently for maintaining the integrity of DOS/SHARE/NET
  data structures
    02h DOS kernel
ensures that no multitasking occurs while DOS is calling an
  installable device driver
    05h DOS 4.x only IFSFUNC
    06h DOS 4.x only IFSFUNC
    08h ASSIGN.COM
    0Ah MSCDEX

Notes

      	normally hooked to avoid interrupting a critical section, rather than
  called
the handler should ensure that none of the critical sections are
  reentered, usually by suspending a task which attempts to reenter
  an active critical section
the DOS kernel does not invoke critical sections 01h and 02h unless it
  is patched.  DOS 3.1 through 3.31 contain a zero-terminated list of
  words beginning at offset 02C3h in the IBMDOS segment; each word
  contains the offset within the IBMDOS segment of a byte which must
  be changed from C3h to 50h to enable use of critical sections.

SeeAlso

    INT 2A AH=81    INT 2A AH=82    INT 2A AH=87    INT 21 AX=5D06    INT 21 AX=5D0B


INT 2A AH=81

2A C - NETWORK - END DOS CRITICAL SECTION

AH = 81h
AL = critical section number (00h-0Fh) (see AH=80h)

Notes

      	normally hooked rather than called
the handler should reawaken any tasks which were suspended due to an
  attempt to enter the specified critical section

SeeAlso

    INT 2A AH=80    INT 2A AH=82    INT 2A AH=87


INT 2A AH=82

2A C - NETWORK - END DOS CRITICAL SECTIONS 0 THROUGH 7

AH = 82h

Notes

      	called by the INT 21h function dispatcher for function 0 and functions
  greater than 0Ch except 59h, and on process termination
the handler should reawaken any tasks which were suspended due to an
  attempt to enter one of the critical sections 0 through 7

SeeAlso

    INT 2A AH=81


INT 2A AH=84

2A C - Microsoft Networks - KEYBOARD BUSY LOOP

AH = 84h

Note

     	similar to DOS's INT 28h, called from inside the DOS keyboard input
  loop to allow network to process requests

SeeAlso

    INT 28


INT 2A AH=87

!!!

INT 2A C - PRINT??? - CRITICAL SECTION
AH = 87h
AL = start/end
    00h start
    01h end

Note

     	called by PRINT.COM

SeeAlso

    INT 2A AH=80    INT 2A AH=81


INT 2A AH=89

2A - Network - ???

AH = 89h
AL = ???  (ASSIGN uses 08h)
???

Return

        ???


INT 2A AH=90

2A - IBM PC 3270 EMULATION PROGRAM - ???

AH = 90h
???

Return

        ???

Note

     	the LANtastic redirector and SERVER.EXE use this function with AL=01h,
  03h-07h,0Ch-11h


INT 2A AH=C2

2A - Network - ???

AH = C2h
AL = subfunction
    07h ???
    08h ???
BX = 0001h
???

Return

        ???

Note

     	called by DOS 3.30-5.00 APPEND


INT 2A AX=FF90

2A - PC/TCP PREDIR.EXE - ???

AX = FF90h

Return

        AX = ???

Note

     	PREDIR.EXE is the network printer redirector included as part of the
  PC/TCP system by FTP Software, Inc.


INT 2A AX=FF91

2A - PC/TCP PREDIR.EXE - ???

AX = FF91h
BX = ???

Return

        AX = status???


INT 2A AX=FF92

2A - PC/TCP PREDIR.EXE - INSTALLATION CHECK

AX = FF92h

Return

        AX = 0000h if installed
   BX = redirected printer port (FFFFh if no printers redirected)
   CX = version (CH = major, CL = minor)

Note

     	PREDIR.EXE is the network printer redirector included as part of the
  PC/TCP system by FTP Software, Inc.


INT 2A AX=FF93

2A - PC/TCP PREDIR.EXE - ???

AX = FF93h

Return

        AX = ???


INT 2A AX=FF94

2A - PC/TCP PREDIR.EXE - ???

AX = FF94h
BX = ???
CX = ???
DX = ???

Return

        AX = ???

Note

     	PREDIR.EXE is the network printer redirector included as part of the
  PC/TCP system by FTP Software, Inc.


INT 2A AX=FF95

2A - PC/TCP PREDIR.EXE - GET CONFIGURATION STRINGS

AX = FF95h
CX = what to get
    0000h ??? (returned pointer to "C:\COMMAND.COM")
    0001h spooling program
    0002h ???
    0003h spool file name
    0004h swap file name

Return

        AX = status
    0000h successful
BX:DX -> ASCIZ configuration string


INT 2A AX=FF96

2A - PC/TCP PREDIR.EXE - SET PRINT JOB TERMINATION CONFIGURATION

AX = FF96h
CX = what to set
    0000h ???
    0001h print-on-hotkey state
    0002h print-on-exit state
    0003h print job timeout in clock ticks
    0004h print-on-EOF state
BX = new value (0000h disabled, 0001h enabled except for timeout)

Return

        AX = ???

SeeAlso

    INT 2A AX=FF97

Note

     	PREDIR.EXE is the network printer redirector included as part of the
  PC/TCP system by FTP Software, Inc.


INT 2A AX=FF97

2A - PC/TCP PREDIR.EXE - GET PRINT JOB TERMINATION CONFIGURATION

AX = FF97h
CX = what to get
    0000h ???
    0001h print-on-hotkey state
    0002h print-on-exit state
    0003h print job timeout in clock ticks
    0004h print-on-EOF state

Return

        AX = status
    0000h successful
BX = old value (0000h disabled, 0001 enabled except for timeout)

SeeAlso

    INT 2A AX=FF96


INT 2B

2B - DOS 2+ - RESERVED

Note

     	this vector is not used in DOS versions <= 5.00, and points at an IRET


INT 2C

2C - DOS 2+ - RESERVED

Note

     	this vector is not used in DOS versions <= 5.00, and points at an IRET


INT 2C

2C - STARLITE architecture - KERNEL API

Note

     	STARLITE is an architecture by General Software for a series of MS-DOS
  compatible operating systems (OEM DOS, NETWORK DOS, and SMP DOS) to
  be released in 1991.	The interrupt number is subject to change
  before the actual release.


INT 2D

2D - DOS 2+ - RESERVED

Note

     	this vector is not used in DOS versions <= 5.00, and points at an IRET


INT 2D

2D - ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.5]

AH = multiplex number
AL = function
    00h installation check
Return: AL = 00h if free
AL = FFh if multiplex number in use
    CX = binary version number (CH = major, CL = minor)
    DX:DI -> signature string (see below) identifying
    the program using the multiplex number
    01h get entry point
Return: AL = 00h if all API calls via INT 2D
AL = FFh if entry point supported
    DX:BX -> entry point for bypassing interrupt chain
    02h uninstall
DX:BX = return address for successful uninstall (may be
ignored by TSR)
Return: AL = status
    00h not implemented
    01h unsuccessful
    02h can not uninstall yet, will do so when able
    03h safe to remove, but no resident uninstaller
(TSR still enabled)
BX = segment of memory block with resident code
    04h safe to remove, but no resident uninstaller
(TSR now disabled)
BX = segment of memory block with resident code
    05h not safe to remove now, try again later
    FFh successful
return at DX:BX with AX destroyed if successful and
  TSR honors specific return address
    03h request pop-up
Return: AL = status
    00h not implemented or TSR is not a pop-up
    01h can not pop up at this time, try again later
    02h can not pop up yet, will do so when able
    03h already popped up
    04h unable to pop up, user intervention required
BX = standard reason code
    0000h unknown failure
    0001h interrupt chain passes through memory
  which must be swapped out to pop up
    0002h swap-in failed
CX = application's reason code if nonzero
    FFh TSR popped up and was exited by user
BX = return value
    0000h no return value
    0001h TSR unloaded
    0002h-00FFh reserved
    0100h-FFFFh application-dependent
    04h determine chained interrupts
BL = interrupt number (except 2Dh)
Return: AL = status
    00h not implemented
    01h (obsolete) unable to determine
    02h (obsolete) interrupt hooked
    03h (obsolete) interrupt hooked, address returned
DX:BX -> TSR's interrupt BL handler
    04h list of hooked interrupts returned
DX:BX -> interrupt hook list (see below)
    FFh interrupt not hooked
Notes:	since INT 2D is known to be hooked, the resident code
  need not test for BL=2Dh (to minimize its size), and
  the return value is therefore undefined in that case.
BL is ignored if the TSR returns AL=04h; in that case,
  the caller needs to scan the return list rather than
  making additional calls to this function.  If the
  return is not 00h or 04h, then the caller must cycle
  through the remaining interrupt numbers it wishes to
  check.
return values 01h thru 03h are disparaged and will be
  removed from the next version of this specification;
  they are included for compatibility with version 3.3,
  though they were probably never used in any
  implementation
    05h get hotkeys
Return: AL = status
    00h not implemented
    FFh supported
DX:BX -> hotkey list (see below)
    06h-0Fh reserved for future enhancements
Return: AL = 00h (not implemented)
    other  application-dependent

Notes

      	programs should not use fixed multiplex numbers; rather, a program
  should scan all multiplex numbers from 00h to FFh, remembering the
  first unused multiplex in case the program is not yet installed.
  For multiplex numbers which are in use, the program should compare
  the first 16 bytes of the signature string to determine whether it
  is already installed on that multiplex number.  If not previously
  installed, it should use the first free multiplex number.
functions other than 00h are not valid unless a program is installed
  on the selected multiplex number
to be considered fully compliant with version 3.5 of the specification,
  programs must implement at least functions 00h, 02h (no resident
  uninstall code required), and 04h (return value 04h).	 TSRs that
  provide hotkeys with which the user can activate them must also
  implement function 05h.  The absolute minimum fully-compliant
  implementation has an overhead of 64 bytes (80 bytes with function
  05h) plus 22 bytes per hooked interrupt (for the interrupt sharing
  protocol header and hook list entry).
the signature string and description may be used by memory mappers
  to display the installed programs
users of this proposal should adhere to the IBM interrupt sharing
  protocol (see below), which will permit removal of TSRs in
  arbitrary order and interrupt handler reordering.  All TSRs
  following this proposal should be removable, though they need not
  keep the code for removing themselves resident; it is acceptable
  for a separate program to perform the removal.
A sample implementation including example TSRs and utility programs
  may be found in a separate package distributed as AMISLnnn.ZIP
  (AMISL090.ZIP as of this writing).
Please let me know if you choose to follow this proposal.  The
  signature and a list of the private API calls you use would be
  appreciated, as well.

SeeAlso

    INT 2F

Table Formats

Signature string:
Interrupt hook list [array]:
Hotkey list:
Bitmask of shift states:
 bit 0: right shift pressed
 bit 1: left shift pressed
 bit 2: either control key pressed
 bit 3: either Alt key pressed
 bit 4: ScrollLock active
 bit 5: NumLock active
 bit 6: CapsLock active
 bit 7: either shift key pressed
 bit 8: left control key pressed
 bit 9: left Alt key pressed
 bit 10: right control key pressed
 bit 11: right Alt key pressed
 bit 12: ScrollLock pressed
 bit 13: NumLock pressed
 bit 14: CapsLock pressed
 bit 15: SysRq key pressed

Interrupt sharing protocol interrupt handler entry point:
Signatures known to be in use:
 'Crynwr  ' 'SPELLER '	TSR spelling-checker
 'heathh  ' 'Monitor '
 'Ralf B  ' 'FASTMOUS'	example TSR included with sample AMIS library code
 'Ralf B  ' 'NOLPT n '	example TSR -- turn LPTn into bit-bucket
 'Ralf B  ' 'NOTE    '	example TSR -- popup note-taker
 'Ralf B  ' 'RBkeyswp'	RBkeyswap v3.0+ -- swap Esc/~ and LCtrl/CapsLock keys
 'Ralf B  ' 'SWITCHAR'	example TSR -- add switchar() support removed from DOS5
 'Ralf B  ' 'VGABLANK'	example TSR -- VGA-only screen blanker
 'TifaWARE' 'EATMEM  '	George A. Theall's public domain memory restrictor for
testing programs (v1.1+)
    'RECALL  '	public domain commandline editor and history (v1.2+)
 'Todd	  ' 'XPTR2   '	PC-to-Transputer interface by Todd Radel


INT 2E

2E - DOS 2+ - PASS COMMAND TO COMMAND INTERPRETER FOR EXECUTION

DS:SI -> commandline to execute (see below)

Return

        all registers except CS:IP destroyed
AX = status (4DOS v4.0)
   0000h successful
   FFFFh error before processing command (not enough memory, etc)
   other error number returned by command

Notes

      	this call allows execution of arbitrary commands (including COMMAND.COM
  internal commands) without loading another copy of COMMAND.COM
if COMMAND.COM is the user's command interpreter, the primary copy
  executes the command; this allows the master environment to be
  modified by issuing a "SET" command, but changes in the master
  environment will not become effective until all programs descended
  from the primary COMMAND.COM terminate
since COMMAND.COM processes the string as if typed from the keyboard,
  the transient portion needs to be present, and the calling program
  must ensure that sufficient memory to load the transient portion can
  be allocated by DOS if necessary
results are unpredictable if invoked by a program run from a batch file
  because this call is not reentrant and COMMAND.COM uses the same
  internal variables when processing a batch file
hooked but ignored by 4DOS v3.0 COMMAND.COM replacement unless SHELL2E
  has been loaded
the MSDOS 5 Programmer's Reference calls this "Reload Transient"

Table Formats

Commandline:


INT 2E

2E - 4DOS v2.x-3.03 SHELL2E.COM - UNINSTALL

BX = E22Eh
DS:SI -> zero byte

Return

        if successful, SHELL2E terminates itself with INT 21/AH=4Ch


INT 2F

2F - Multiplex - NOTES

AH = identifier of program which is to handle the interrupt
   00h-7Fh reserved for DOS
   B8h-BFh reserved for networks
   C0h-FFh reserved for applications
AL is the function code
   This is a general mechanism for verifying the presence of a TSR and
   communicating with it.  When searching for a free identifier code for AH
   using the installation check (AL=00h), the calling program should set
   BX/CX/DX to 0000h and must not depend on any registers other than CS:IP
   and SS:SP to be valid on return, since numerous programs now use additional
   registers on input and/or output for the installation check.

Note

     	Since the multiplex chain is growing so long, and beginning to
  experience multiplex number collisions, I am proposing an alternate
  multiplex interrupt on INT 2D.  If you decide to use the alternate
  multiplex, please let me know.

SeeAlso

    INT 2D


INT 2F

2F - BMB Compuscience Canada Utilities Interface

AH = xx (dynamically assigned based upon a search for a multiplex
 number which doesn't answer installed)
AL = 00h installation check
ES:DI = EBEBh:BEBEh

Return

        AL = 00h not installed
     01h not installed, not OK to install
     FFh installed; if ES:DI was EBEBh:BEBEh on entry, ES:DI will point
 to a string of the form 'MMMMPPPPPPPPvNNNN' where MMMM is a
 short form of the manufacturer's name, PPPPPPPP is a product
 name and NNNN is the product's version number


INT 2F

2F - Ross Wentworth's Turbo Pascal POPUP LIBRARY

AH = programmer-selected multiplex number
AL = function
    00h installation check
Return: AL = FFh if installed
    01h get TSR interrupt vectors
Return: DX:AX -> vector table (see below)
    02h get TSR code segment
Return: AX = code segment for all interrupt handlers
    03h call user exit routine and release TSR's memory
    04h get signature string
Return: DX:AX -> counted string containing signature
    05h get TSR's INT 2F handler
Return: DX:AX -> INT 2F handler
    06h enable/disable TSR
BL = new state (00h disabled, 01h enabled)
    07h activate TSR (popup if not disabled)
    08h get hotkeys
BL = which hotkey (00h = hotkey 1, 01h = hotkey 2)
Return: AX = hotkey (AH = keyflags, AL = scancode)
    09h set hotkey
BL = which hotkey (00h = hotkey 1, 01h = hotkey 2)
CX = new hotkey (CH = keyflags, CL = scancode)
    0Ah-1Fh reserved

Table Formats

Vector table entry:


INT 2F

2F - CiriSOFT Spanish University of Valladolid TSR's Interface

AH = xx (dynamically assigned based upon a search for a multiplex
 number from C0h to FFh which doesn't answer installed)
AL = 00h installation check
ES:DI = 1492h:1992h

Return

        AL = 00h not installed
     01h not installed, not OK to install
     FFh installed; and if ES:DI was 1492h:1992h on entry, ES:DI will
 point to author_name_ver table (see below)
AH = FFh

Note

     	this interface permits advanced communication with TSRs: it is possible
  to make a generic unistall utility, advanced TSR relocator programs
  in order to fit fragmented memory areas, etc.
See also: INT 2D"AMIS",INT 2F"Compuscience"

Table Formats

Author_name_ver table:
Vector_area table:
Extra_area table (needed only to improve relocation feature):
External_ctrl table:


INT 2F AH=00

2F U - DOS 2.x PRINT.COM - ???

AH = 00h
???

Return

        ???

Notes

      	DOS 2.x PRINT.COM does not chain to previous INT 2F handler
values in AH other than 00h or 01h cause PRINT to return the number of
  files in the queue in AH

SeeAlso

    INT 2F AH=01


INT 2F AX=0080

2F - DOS 3.1+ PRINT.COM - GIVE PRINT A TIME SLICE

AX = 0080h

Return

        after PRINT executes


INT 2F AH=01

2F U - DOS 2.x PRINT.COM - ???

AH = 01h
???

Return

        ???

Notes

      	DOS 2.x PRINT.COM does not chain to previous INT 2F handler
values in AH other than 00h or 01h cause PRINT to return the number of
  files in the queue in AH

SeeAlso

    INT 2F AH=00


INT 2F AX=0100

2F - DOS 3+ PRINT.COM - INSTALLATION CHECK

AX = 0100h

Return

        AL = status
    00h not installed
    01h not installed, but not OK to install
    FFh installed

SeeAlso

    INT 2F AX=0101


INT 2F AX=0101

2F - DOS 3+ PRINT.COM - SUBMIT FILE FOR PRINTING

AX = 0101h
DS:DX -> submit packet (see below)

Return

        CF clear if successful
    AL = 01h added to queue
 9Eh now printing
CF set on error
    AX = error code (see also INT 21/AH=59h)
01h invalid function
02h file not found
03h path not found
04h out of file handles
05h access denied
08h print queue full
09h spooler busy
0Ch name too long
0Fh invalid drive

SeeAlso

    INT 2F AX=0102

Table Formats

Submit packet:


INT 2F AX=0102

2F - DOS 3+ PRINT.COM - REMOVE FILE FROM PRINT QUEUE

AX = 0102h
DS:DX -> ASCIZ filename (wildcards allowed)

Return

        CF clear if successful
CF set on error
    AX = error code (see AX=0101h)

SeeAlso

    INT 2F AX=0101    INT 2F AX=0103


INT 2F AX=0103

2F - DOS 3+ PRINT.COM - CANCEL ALL FILES IN PRINT QUEUE

AX = 0103h

Return

        CF clear if successful
CF set on error
    AX = error code (see AX=0101h)

SeeAlso

    INT 2F AX=0102


INT 2F AX=0104

2F - DOS 3+ PRINT.COM - FREEZE PRINT QUEUE TO READ JOB STATUS

AX = 0104h

Return

        CF clear if successful
    DX = error count
    DS:SI -> print queue
CF set on error
    AX = error code (see AX=0101h)

Notes

      	the print queue is an array of 64-byte ASCIZ filenames terminated by
  an empty filename; the first name is the file currently being printed
printing is stopped until AX=0105h is called to prevent the queue
  from changing while the filenames are being read

SeeAlso

    INT 2F AX=0101    INT 2F AX=0105


INT 2F AX=0105

2F - DOS 3+ PRINT.COM - RESTART PRINT QUEUE AFTER STATUS READ

AX = 0105h

Return

        CF clear if successful
CF set on error
    AX = error code (see AX=0101h)

SeeAlso

    INT 2F AX=0104


INT 2F AX=0106

2F - DOS 3.3+ PRINT.COM - GET PRINTER DEVICE

AX = 0106h

Return

        CF set if files in print queue
    AX = error code 0008h (queue full)
    DS:SI -> device driver header
CF clear if print queue empty
    AX = 0000h

Note

     	documented for DOS 5+, but not documented for prior versions

SeeAlso

    INT 2F AX=0104


INT 2F AX=0200

2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - INSTALLATION CHECK

AX = 0200h

Return

        AL = FFh if installed


INT 2F AX=0201

2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

AX = 0201h

Return

        nothing???

Notes

      	called by DOS 3.3+ PRINT.COM
AX=0202h appears to be the opposite function

SeeAlso

    INT 2F AX=0202


INT 2F AX=0202

2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

AX = 0202h
???

Return

        nothing???

Note

     	called by DOS 3.3+ PRINT.COM

SeeAlso

    INT 2F AX=0201


INT 2F AX=0203

2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

AX = 0203h

Return

        nothing???

Notes

      	called by DOS 3.3+ PRINT.COM
AX=0204h appears to be the opposite function

SeeAlso

    INT 2F AX=0204


INT 2F AX=0204

2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

AX = 0204h
???

Return

        nothing???

Note

     	called by DOS 3.3 PRINT.COM


INT 2F

2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???

AX = 02xxh
???

Return

        ???


INT 2F AX=0500

2F U - DOS 3+ CRITICAL ERROR HANDLER - INSTALLATION CHECK

AX = 0500h

Return

        AL = 00h not installed, OK to install
     01h not installed, can't install
     FFh installed

Note

     	this set of functions allows a user program to partially or completely
  override the default critical error handler's message in COMMAND.COM

SeeAlso

    INT 2F AH=05    INT 24


INT 2F AH=05

2F UC - DOS 3+ CRITICAL ERROR HANDLER - EXPAND ERROR INTO STRING

AH = 05h
---DOS 3.x---
AL = extended error code (not zero)
---DOS 4+ ---
AL = error type
    01h DOS extended error code
    02h parameter error
BX = error code

Return

        CF clear if successful
    ES:DI -> ASCIZ error message (read-only)
    AL = ???
CF set if error code can't be converted to string

Notes

      	called at start of COMMAND.COM's default critical error handler if
  installed by a user program, allowing partial or complete overriding
  of the default error message
subfunction 02h called by many DOS 4 external programs

SeeAlso

    INT 2F AX=122E    INT 24


INT 2F AX=0600

2F - DOS 3+ ASSIGN - INSTALLATION CHECK

AX = 0600h

Return

        AL = status
    00h not installed
    01h not installed, but not OK to install
    FFh installed

Notes

      	ASSIGN is not a TSR in DR-DOS 5.0; it is internally replaced by SUBST
  (see INT 21/AH=52h)
undocumented prior to the release of DOS 5.0

SeeAlso

    INT 2F AX=0601    INT 21 AH=52


INT 2F AX=0601

2F U - DOS 3+ ASSIGN - GET DRIVE ASSIGNMENT TABLE

AX = 0601h

Return

        ES = segment of ASSIGN work area and assignment table

Note

     	under DOS 3+, the 26 bytes starting at ES:0103h specify which drive
  each of A: to Z: is mapped to.  Initially set to 01h 02h 03h....

SeeAlso

    INT 2F AX=0600


INT 2F AX=0800

2F U - DRIVER.SYS support - INSTALLATION CHECK

AX = 0800h

Return

       	AL = 00h not installed, OK to install
     01h not installed, not OK to install
     FFh installed

Note

     	supported by DR-DOS 5.0


INT 2F AX=0801

2F U - DRIVER.SYS support - ADD NEW BLOCK DEVICE

AX = 0801h
DS:DI -> drive data table (see AX=0803h)

Notes

      	moves down internal list of drive data tables, copying and modifying
  the drive description flags word for tables referencing same physical
  drive
data table appended to chain of tables
supported by DR-DOS 5.0

SeeAlso

    INT 2F AX=0803


INT 2F AX=0802

2F U - DRIVER.SYS support - EXECUTE DEVICE DRIVER REQUEST

AX = 0802h
ES:BX -> device driver request header (see below)

Return

        request header updated as per requested operation

Notes

      	supported by DR-DOS 5.0
DOS 3.2 executes this function on any AL value from 02h through F7h

SeeAlso

    INT 2F AX=0800    INT 2F AX=0801    INT 2F AX=0803    INT 21 AH=52    INT 21 AH=99    INT 21 AH=9A

Values for command code:
00h INIT
01h MEDIA CHECK (block devices)
02h BUILD BPB (block devices)
03h IOCTL INPUT
04h INPUT
05h NONDESTRUCTIVE INPUT, NO WAIT (character devices)
06h INPUT STATUS (character devices)
07h INPUT FLUSH (character devices)
08h OUTPUT
09h OUTPUT WITH VERIFY
0Ah OUTPUT STATUS (character devices)
0Bh OUTPUT FLUSH (character devices)
0Ch IOCTL OUTPUT
0Dh (DOS 3+) DEVICE OPEN
0Eh (DOS 3+) DEVICE CLOSE
0Fh (DOS 3+) REMOVABLE MEDIA (block devices)
10h (DOS 3+) OUTPUT UNTIL BUSY (character devices)
11h (European MSDOS 4.0) STOP OUTPUT (console screen drivers only)
12h (European MSDOS 4.0) RESTART OUTPUT (console screen drivers only)
13h (DOS 3.2+) GENERIC IOCTL
14h unused
15h (European MSDOS 4.0) RESET UNCERTAIN MEDIA FLAG
16h unused
17h (DOS 3.2+) GET LOGICAL DEVICE
18h (DOS 3.2+) SET LOGICAL DEVICE
19h (DOS 5.0+) CHECK GENERIC IOCTL SUPPORT
80h (CD-ROM) READ LONG
81h (CD-ROM) reserved
82h (CD-ROM) READ LONG PREFETCH
83h (CD-ROM) SEEK
84h (CD-ROM) PLAY AUDIO
85h (CD-ROM) STOP AUDIO
86h (CD-ROM) WRITE LONG
87h (CD-ROM) WRITE LONG VERIFY
88h (CD-ROM) RESUME AUDIO

Table Formats

Device driver request header:
Values for error code:
00h write-protect violation
01h unknown unit
02h drive not ready
03h unknown command
04h CRC error
05h bad drive request structure length
06h seek error
07h unknown media
08h sector not found
09h printer out of paper
0Ah write fault
0Bh read fault
0Ch general failure
0Dh reserved
0Eh (CD-ROM) media unavailable
0Fh invalid disk change

Call European MSDOS 4.0 device helper function with:
DL = function
    00h "SchedClock" called on each timer tick
AL = tick interval in milliseconds
    01h "DevDone" device I/O complete
ES:BX -> request header
Note:	must update status word first; may be called from
  an interrupt handler
    02h "PullRequest" pull next request from queue
DS:SI -> DWORD pointer to start of device's request queue
Return: ZF clear if pending request
    ES:BX -> request header
ZF set if no more requests
    03h "PullParticular" remove specific request from queue
DS:SI -> DWORD pointer to start of device's request queue
ES:BX -> request header
Return: ZF set if request header not found
    04h "PushRequest" push the request onto the queue
DS:SI -> DWORD pointer to start of device's request queue
ES:BX -> request header
interrupts disabled
    05h "ConsInputFilter" keyboard input check
AX = character (high byte 00h if PC ASCII character)
Return: ZF set if character should be discarded
ZF clear if character should be handled normally
Note:	called by keyboard interrupt handler so DOS can scan
  for special input characters
    06h "SortRequest" push request in sorted order by starting sector
DS:SI -> DWORD pointer to start of device's request queue
ES:BX -> request header
interrupts disabled
    07h "SigEvent" send signal on keyboard event
AH = event identifier
Return: AL,FLAGS destroyed
    09h "ProcBlock" block on event
AX:BX = event identifier (typically a pointer)
CX = timeout in ms or 0000h for never
DH = interruptible flag (nonzero if pause may be interrupted)
interrupts disabled
Return:	after corresponding ProcRun call
CF clear if event wakeup, set if unusual wakeup
ZF set if timeout wakeup, clear if interrupted
AL = wakeup code, nonzero if unusual wakeup
interrupts enabled
BX,CX,DX destroyed
Note:	block process and schedules another to run
    0Ah "ProcRun" unblock process
AX:BX = event identifier (typically a pointer)
Return:	AX = number of processes awakened
ZF set if no processes awakened
BX,CX,DX destroyed
    0Bh "QueueInit" initialize/clear character queue
DS:BX -> character queue structure (see below)
Note:	the queue size field must be set before calling
    0Dh "QueueWrite" put a character in the queue
DS:BX -> character queue (see below)
AL = character to append to end of queue
Return: ZF set if queue is full
ZF clear if character stored
    0Eh "QueueRead" get a character from the queue
DS:BX -> character queue (see below)
Return: ZF set if queue is empty
ZF clear if characters in queue
    AL = first character in queue
    10h "GetDOSVar" return pointer to DOS variable
AL = index of variable
    03h current process ID
BX = index into variable if AL specifies an array
CX = expected length of variable
Return: CF clear if successful
    DX:AX -> variable
CF set on error
    AX,DX destroyed
BX,CX destroyed
Note:	the variables may not be modified
    14h "Yield" yield CPU if higher-priority task ready to run
Return: FLAGS destroyed
    1Bh "CritEnter" begin system critical section
DS:BX -> semaphore (6 BYTEs, initialized to zero)
Return: AX,BX,CX,DX destroyed
    1Ch "CritLeave" end system critical section
DS:BX -> semaphore (6 BYTEs, initialized to zero)
Return: AX,BX,CX,DX destroyed
Note:	must be called in the context of the process which
  called CritEnter on the semaphore

Note

     	the DWORD pointing at the request queue must be allocated by the driver
  and initialized to 0000h:0000h.  It always points at the next request
  to be executed

Character queue:


INT 2F AX=0803

2F U - DOS 4+ DRIVER.SYS support - GET DRIVE DATA TABLE LIST

AX = 0803h

Return

        DS:DI -> first drive data table in list

Note

     	not available under DR-DOS 5.0

SeeAlso

    INT 2F AX=0801

Table Formats

DOS 3.30 drive data table:
COMPAQ DOS 3.31 drive data table:
DOS 4.0-5.0 drive data table:


INT 2F AX=1000

2F - SHARE - INSTALLATION CHECK

AX = 1000h

Return

        AL = 00h  not installed, OK to install
     01h  not installed, not OK to install
     FFh  installed

BUGS

     	values of AL other than 00h put DOS 3.x SHARE into an infinite loop
  (08E9: OR  AL,AL
   08EB: JNZ 08EB) <- the buggy instruction (DOS 3.3)
values of AL other than described here put PCDOS 4.00 into the same
  loop (the buggy instructions are the same)

Notes

      	supported by OS/2 v1.3+ compatibility box, which always returns AL=FFh
if DOS 4.01 SHARE was automatically loaded, file sharing is in an
  inactive state (due to the undocumented /NC flag used by the autoload
  code) until this call is made
DOS 5.0 chains to the previous handler if AL <> 00h on entry

SeeAlso

    INT 2F AX=1080    INT 21 AH=52


INT 2F AX=1001

2F U - SuperStor PRO SSTORDRV.SYS - SET ???

AX = 1001h
BX = ???
DX = ???

Program

         SuperStor is a disk-compression program by Addstor.

SeeAlso

    INT 2F AX=F800


INT 2F AX=1040

2F U - DOS 4 only SHARE internal - ???

AX = 1040h
???

Return

        AL = FFh???

SeeAlso

    INT 2F AX=1000


INT 2F AX=1080

2F U - DOS 4 only SHARE internal - TURN ON FILE SHARING CHECKS

AX = 1080h

Return

        AL = status
    F0h successful
    FFh checking was already on

Note

     	DOS 4.x SHARE has dual functions: FCB support for large (>32M) media
  and file sharing checks.  The undocumented commandline flag /NC can
  be used to disable the sharing code.

SeeAlso

    INT 2F AX=1000    INT 2F AX=1081


INT 2F AX=1081

2F U - DOS 4 only SHARE internal - TURN OFF FILE SHARING CHECKS

AX = 1081h

Return

        AL = status
    F0h successful
    FFh checking was already off

Note

     	(see AX=1080h)

SeeAlso

    INT 2F AX=1000    INT 2F AX=1080


INT 2F AX=10FF

2F U - Multiplex - DR-DOS 5.0 - ???

AX = 10FFh
ES:BX -> ???

Note

     	sets pointer in kernel


INT 2F AX=1100

2F C - NETWORK REDIRECTOR - INSTALLATION CHECK

AX = 1100h

Return

        AL = 00h  not installed, OK to install
     01h  not installed, not OK to install
     FFh  installed

Notes

      	called by DOS 3.1+ kernel
In DOS 4.x only, the 11xx calls are all in IFSFUNC.EXE, not in the
  PC LAN Program redirector; DOS 5.0 moves the calls back into the
  redirector


INT 2F AX=1100

2F - MSCDEX (MS CD-ROM Extensions) - INSTALLATION CHECK

AX = 1100h
STACK: WORD DADAh

Return

        AL = 00h not installed, OK to install
STACK unchanged
   = 01h not installed, not OK to install
STACK unchanged
   = FFh installed
STACK: WORD ADADh


INT 2F AX=1101

2F CU - NETWORK REDIRECTOR - REMOVE REMOTE DIRECTORY

AX = 1101h
SS = DOS DS
SDA first filename pointer -> fully-qualified directory name
SDA CDS pointer -> current directory structure for drive with dir

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1103    INT 2F AX=1105    INT 21 AH=3A    INT 21 AH=60


INT 2F AX=1102

2F CU - IFSFUNC.EXE (DOS 4.x only) - REMOVE REMOTE DIRECTORY

AX = 1102h
SS = DOS DS
SDA first filename pointer -> fully-qualified directory name
SDA CDS pointer -> current directory structure for drive with dir

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Note

     	appears to be identical to AX=1101h

SeeAlso

    INT 2F AX=1101


INT 2F AX=1103

2F CU - NETWORK REDIRECTOR - MAKE REMOTE DIRECTORY

AX = 1103h
SS = DOS DS
SDA first filename pointer -> fully-qualified directory name
SDA CDS pointer -> current directory structure for drive with dir

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1101    INT 2F AX=1105    INT 21 AH=39    INT 21 AH=60


INT 2F AX=1104

2F CU - IFSFUNC.EXE (DOS 4.x only) - MAKE REMOTE DIRECTORY

AX = 1104h
SS = DOS DS
SDA first filename pointer -> fully-qualified directory name
SDA CDS pointer -> current directory structure for drive with dir

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Note

     	appears to be identical to AX=1103h

SeeAlso

    INT 2F AX=1103


INT 2F AX=1105

2F CU - NETWORK REDIRECTOR - CHDIR

AX = 1105h
SS = DOS DS
SDA first filename pointer -> fully-qualified directory name
SDA CDS pointer -> current directory structure for drive with dir

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    CDS updated with new path

Notes

      	called by DOS 3.1+ kernel
directory string in CDS should not have a terminating backslash unless
  the current directory is the root

SeeAlso

    INT 2F AX=1101    INT 2F AX=1103    INT 21 AH=3B    INT 21 AH=60


INT 2F AX=1106

2F CU - NETWORK REDIRECTOR - CLOSE REMOTE FILE

AX = 1106h
ES:DI -> SFT
    SFT DPB field -> DPB of drive containing file

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    SFT updated (redirector must decrement open count, which may be
done with INT 2F/AX=1208h)

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1201    INT 2F AX=1208    INT 2F AX=1227    INT 21 AH=3E


INT 2F AX=1107

2F CU - NETWORK REDIRECTOR - COMMIT REMOTE FILE

AX = 1107h
ES:DI -> SFT
    SFT DPB field -> DPB of drive containing file

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    all buffers for file flushed
    directory entry updated

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 21 AH=68    INT 21 AX=5D01


INT 2F AX=1108

2F CU - NETWORK REDIRECTOR - READ FROM REMOTE FILE

AX = 1108h
ES:DI -> SFT
    SFT DPB field -> DPB of drive containing file
CX = number of bytes
SS = DOS DS
SDA DTA field -> user buffer

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    CX = number of bytes read (0000h = end of file)
    SFT updated

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1109    INT 2F AX=1229    INT 21 AH=3F    INT 21 AX=5D06


INT 2F AX=1109

2F CU - NETWORK REDIRECTOR - WRITE TO REMOTE FILE

AX = 1109h
ES:DI -> SFT
    SFT DPB field -> DPB of drive containing file
CX = number of bytes
SS = DOS DS
SDA DTA field -> user buffer

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    CX = number of bytes written
    SFT updated

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1107    INT 2F AX=1108    INT 21 AH=40    INT 21 AX=5D06


INT 2F AX=110A

2F CU - NETWORK REDIRECTOR (DOS 3.x only) - LOCK REGION OF FILE

AX = 110Ah
BX = file handle
CX:DX = starting offset
SI = high word of size
STACK: WORD low word of size
ES:DI -> SFT
    SFT DPB field -> DPB of drive containing file
SS = DOS DS

Return

        CF set on error
   AL = DOS error code (see INT 21/AH=59h)
STACK unchanged

Notes

      	called by DOS 3.10-3.31 kernel
the redirector is expected to resolve lock conflicts

SeeAlso

    INT 2F AX=110B    INT 21 AH=5C


INT 2F AX=110A

2F CU - NETWORK REDIRECTOR (DOS 4+) - LOCK/UNLOCK REGION OF FILE

AX = 110Ah
BL = function
    00h lock
    01h unlock
DS:DX -> parameter block (see below)
ES:DI -> SFT
    SFT DPB field -> DPB of drive containing file
SS = DOS DS

Return

        CF set on error
   AL = DOS error code (see INT 21/AH=59h)

Notes

      	called by DOS 4.0+ kernel
the redirector is expected to resolve lock conflicts

SeeAlso

    INT 2F AX=110B    INT 21 AH=5C

Table Formats

Parameter block:


INT 2F AX=110B

2F CU - NETWORK REDIRECTOR (DOS 3.x only) - UNLOCK REGION OF FILE

AX = 110Bh
BX = file handle
CX:DX = starting offset
SI = high word of size
STACK: WORD low word of size
ES:DI -> SFT for file
    SFT DPB field -> DPB of drive containing file

Return

        CF set on error
   AL = DOS error code (see INT 21/AH=59h)
STACK unchanged

Note

     	called by DOS 3.1-3.31 kernel; DOS 4.0+ calls AX=110Ah instead

SeeAlso

    INT 2F AX=110A    INT 21 AH=5C


INT 2F AX=110C

2F CU - NETWORK REDIRECTOR - GET DISK SPACE

AX = 110Ch
ES:DI -> current directory structure for desired drive

Return

        AL = sectors per cluster
AH = media ID byte
BX = total clusters
CX = bytes per sector
DX = number of available clusters

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 21 AH=36


INT 2F AX=110D

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 110Dh
SDA first filename pointer -> name of file
???

Return

        ???

Note

     	appears to be similar to AX=110Fh

SeeAlso

    INT 2F AX=110F


INT 2F AX=110E

2F CU - NETWORK REDIRECTOR - SET REMOTE FILE'S ATTRIBUTES

AX = 110Eh
SS = DOS DS
SDA first filename pointer -> fully-qualified name of file
SDA CDS pointer -> current directory structure for drive with file
STACK: WORD new file attributes

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
STACK unchanged

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=110F    INT 21 AX=4301    INT 21 AH=60


INT 2F AX=110F

2F CU - NETWORK REDIRECTOR - GET REMOTE FILE'S ATTRIBUTES AND SIZE

AX = 110Fh
SS = DOS DS
SDA first filename pointer -> fully-qualified name of file
SDA CDS pointer -> current directory structure for drive with file

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    AX = file attributes
    BX:DI = file size

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=110E    INT 21 AX=4300    INT 21 AH=60


INT 2F AX=1110

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 1110h
SDA first filename pointer -> name of file
???

Return

        ???

Note

     	appears to be similar to AX=110Eh

SeeAlso

    INT 2F AX=110E


INT 2F AX=1111

2F CU - NETWORK REDIRECTOR - RENAME REMOTE FILE

AX = 1111h
SS = DS = DOS DS
SDA first filename pointer = offset of fully-qualified old name
SDA second filename pointer = offset of fully-qualified new name
SDA CDS pointer -> current directory structure for drive with file

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 21 AH=56    INT 21 AH=60


INT 2F AX=1112

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 1112h
SS = DS = DOS DS
SDA first filename pointer -> name of file
???

Return

        ???

SeeAlso

    INT 2F AX=1111


INT 2F AX=1113

2F CU - NETWORK REDIRECTOR - DELETE REMOTE FILE

AX = 1113h
SS = DS = DOS DS
SDA first filename pointer -> fully-qualified filename in DOS DS
SDA CDS pointer -> current directory structure for drive with file

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Notes

      	called by DOS 3.1+ kernel
the filespec may contain wildcards

SeeAlso

    INT 21 AH=41    INT 21 AH=60


INT 2F AX=1114

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 1114h
SDA first filename pointer -> name of file
???

Return

        ???

SeeAlso

    INT 2F AX=1113


INT 2F AX=1115

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 1115h
SS = DOS DS
ES:DI -> SFT ???
???

Return

        ???

SeeAlso

    INT 2F AX=112E


INT 2F AX=1116

2F CU - NETWORK REDIRECTOR - OPEN EXISTING REMOTE FILE

AX = 1116h
ES:DI -> uninitialized SFT
SS = DOS DS
SDA first filename pointer -> fully-qualified name of file to open
STACK: WORD file open mode (see INT 21/AH=3Dh)

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    SFT filled (except handle count, which DOS manages itself)
STACK unchanged

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1106    INT 2F AX=1117    INT 2F AX=1118    INT 2F AX=112E    INT 21 AH=3D    INT 21 AH=60


INT 2F AX=1117

2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE REMOTE FILE

AX = 1117h
ES:DI -> uninitialized SFT
SS = DOS DS
SDA first filename pointer -> fully-qualified name of file to open
SDA CDS pointer -> current directory structure for drive with file
STACK: WORD file creation mode
low byte = file attributes
high byte = 00h normal create, 01h create new file

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    SFT filled (except handle count, which DOS manages itself)
STACK unchanged

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1106    INT 2F AX=1116    INT 2F AX=1118    INT 2F AX=112E    INT 21 AH=3C    INT 21 AH=60


INT 2F AX=1118

2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE FILE WITHOUT CDS

AX = 1118h
ES:DI -> uninitialized SFT
SS = DOS DS
SDA first filename pointer -> fully-qualified name of file
STACK: WORD file creation mode
low byte = file attributes
high byte = 00h normal create, 01h create new file

Return

        ???
STACK unchanged

Note

     	called by DOS 3.1+ kernel when creating a file on a drive for which the
  SDA CDS pointer has offset FFFFh

SeeAlso

    INT 2F AX=1106    INT 2F AX=1116    INT 2F AX=1117    INT 2F AX=112E    INT 21 AH=60


INT 2F AX=1119

2F CU - NETWORK REDIRECTOR - FIND FIRST FILE WITHOUT CDS

AX = 1119h
SS = DS = DOS DS
[DTA] = uninitialized 21-byte findfirst search data (see INT 21/AH=4Eh)
SDA first filename pointer -> fully-qualified search template
SDA search attribute = attribute mask for search

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    [DTA] = updated findfirst search data
    (bit 7 of first byte must be set)
    [DTA+15h] = standard directory entry for file

Notes

      	called by DOS 3.1+ kernel
DOS 4.x IFSFUNC returns CF set, AX=0003h


INT 2F AX=111A

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 111Ah
???

Return

        CF set
    AX = error code (03h for DOS 4.01 IFSFUNC)


INT 2F AX=111B

2F CU - NETWORK REDIRECTOR - FINDFIRST

AX = 111Bh
SS = DS = DOS DS
[DTA] = uninitialized 21-byte findfirst search data (see INT 21/AH=4Eh)
SDA first filename pointer -> fully-qualified search template
SDA CDS pointer -> current directory structure for drive with file
SDA search attribute = attribute mask for search

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    [DTA] = updated findfirst search data
    (bit 7 of first byte must be set)
    [DTA+15h] = standard directory entry for file

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=111C    INT 21 AH=4E    INT 21 AH=60


INT 2F AX=111C

2F CU - NETWORK REDIRECTOR - FINDNEXT

AX = 111Ch
SS = DS = DOS DS
[DTA] = 21-byte findfirst search data (see INT 21/AH=4Eh)

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful
    [DTA] = updated findfirst search data
    (bit 7 of first byte must be set)
    [DTA+15h] = standard directory entry for file

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=111B    INT 21 AH=4F


INT 2F AX=111D

2F CU - NETWORK REDIRECTOR - CLOSE ALL REMOTE FILES FOR PROCESS

AX = 111Dh
DS???
SS = DOS DS

Return

        ???

Notes

      	called by DOS 3.1+ kernel
closes all FCBs opened by process

SeeAlso

    INT 21 AX=5D04


INT 2F AX=111E

2F CU - NETWORK REDIRECTOR - DO REDIRECTION

AX = 111Eh
SS = DOS DS
STACK: WORD function to execute
5F00h  get redirection mode
BL = type (03h printer, 04h disk)
Return: BH = state (00h off, 01h on)
5F01h  set redirection mode
BL = type (03h printer, 04h disk)
BH = state (00h off, 01h on)
5F02h  get redirection list entry
BX = redirection list index
DS:SI -> 16-byte local device name buffer
ES:DI -> 128-byte network name buffer
Return: must set user's BX to device type and CX to
stored parameter value, using AX=1218h to get
stack frame address
5F03h  redirect device
BL = device type (see INT 21/AX=5F03h)
CX = stored parameter value
DS:SI -> ASCIZ source device name
ES:DI -> destination ASCIZ network path + ASCIZ passwd
5F04h  cancel redirection
DS:SI -> ASCIZ device name or network path
5F05h  get redirection list extended entry
BX = redirection list index
DS:SI -> buffer for ASCIZ source device name
ES:DI -> buffer for destination ASCIZ network path
Return: BH = status flag
BL = type (03h printer, 04h disk)
CX = stored parameter value
BP = NETBIOS local session number
5F06h  similar to 5F05h???

Return

        CF set on error
    AX = error code (see INT 21/AH=59h)
STACK unchanged

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 21 AX=5F00    INT 21 AX=5F01    INT 21 AX=5F02    INT 21 AX=5F03

SeeAlso

    INT 21 AX=5F04    INT 21 AX=5F05    INT 21 AX=5F06


INT 2F AX=111F

2F CU - NETWORK REDIRECTOR - PRINTER SETUP

AX = 111Fh
STACK: WORD function
5E02h  set printer setup
5E03h  get printer setup
5E04h  set printer mode
5E05h  get printer mode

Return

        CF set on error
    AX = error code (see INT 21/AH=59h)
STACK unchanged

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 21 AX=5E02    INT 21 AX=5E03    INT 21 AX=5E04    INT 21 AX=5E05


INT 2F AX=1120

2F CU - NETWORK REDIRECTOR - FLUSH ALL DISK BUFFERS

AX = 1120h
DS = DOS DS
???

Return

        CF clear (successful)

Notes

      	called by DOS 3.1+ kernel
uses CDS array pointer and LASTDRIVE= entries in DOS list of lists

SeeAlso

    INT 21 AH=0D    INT 21 AX=5D01


INT 2F AX=1121

2F CU - NETWORK REDIRECTOR - SEEK FROM END OF REMOTE FILE

AX = 1121h
CX:DX = offset (in bytes) from end
ES:DI -> SFT
    SFT DPB field -> DPB of drive with file
SS = DOS DS

Return

        CF set on error
    AL = DOS error code (see INT 21/AH=59h)
CF clear if successful
    DX:AX = new file position

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 2F AX=1228    INT 21 AH=42


INT 2F AX=1122

2F CU - NETWORK REDIRECTOR - PROCESS TERMINATION HOOK

AX = 1122h
SS = DOS DS
???

Return

        ???

Note

     	called by DOS 3.1+ kernel


INT 2F AX=1123

2F CU - NETWORK REDIRECTOR - QUALIFY REMOTE FILENAME

AX = 1123h
DS:SI -> ASCIZ filename to canonicalize
ES:DI -> 128-byte buffer for qualified name

Return

        CF set if not resolved

Notes

      	called by MSDOS 3.1+ kernel, but not called by DR-DOS 5.0 unless the
  filename matches the name of a character device
called first when DOS attempts to resolve a filename (unless inside an
  AX=5D00h server call); if this fails, DOS resolves the name locally

SeeAlso

    INT 2F AX=1221    INT 21 AH=60


INT 2F AX=1124

2F CU - NETWORK REDIRECTOR - PRINTER OFF???

AX = 1124h
ES:DI -> SFT
SS = DOS DS
???

Return

        CX = ???

Note

     	called by DOS 3.1+ kernel if AX=1126h returns CF set

SeeAlso

    INT 2F AX=1126


INT 2F AX=1125

2F CU - NETWORK REDIRECTOR - REDIRECTED PRINTER MODE

AX = 1125h
STACK: WORD subfunction
5D07h get print stream state
Return: DL = current state
5D08h set print stream state
DL = new state
5D09h finish print job

Return

        CF set on error
    AX = error code (see INT 21/AH=59h)
STACK unchanged

Note

     	called by DOS 3.1+ kernel

SeeAlso

    INT 21 AX=5D07    INT 21 AX=5D08    INT 21 AX=5D09


INT 2F AX=1126

2F CU - NETWORK REDIRECTOR - PRINTER ON/OFF???

AX = 1126h
ES:DI -> SFT for file handle 4???
SS = DOS DS???
???

Return

        CF set on error

Notes

      	called by DOS 3.1+ kernel
called when print echoing (^P, ^PrtSc) changes state and STDPRN has
  bit 11 of the device information word in the SFT set

SeeAlso

    INT 2F AX=1124


INT 2F AX=1127

2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED

AX = 1127h

Return

        CF set
    AX = 0001h (invalid function) (see INT 21/AH=59h)


INT 2F AX=1128

2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED

AX = 1128h

Return

        CF set
    AX = 0001h (invalid function) (see INT 21/AH=59h)


INT 2F AX=1129

2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED

AX = 1129h

Return

        CF set
    AX = 0001h (invalid function) (see INT 21/AH=59h)


INT 2F AX=112A

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 112Ah
DS = DOS DS
???

Return

        ???

Note

     	does something to each IFS driver


INT 2F AX=112B

2F CU - IFSFUNC.EXE (DOS 4.x only) - GENERIC IOCTL???

AX = 112Bh
SS = DOS DS
CX = function/category
DS:DX -> parameter block
STACK: WORD value of AX on entry to INT 21 (440Ch or 440Dh)
???

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Note

     	called by DOS 4.0 kernel


INT 2F AX=112C

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 112Ch
SS = DOS DS
SDA current SFT pointer -> SFT for file
???

Return

        CF set on error

Note

     	called by SHARE in DOS 5.0


INT 2F AX=112D

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 112Dh
BL = subfunction (value of AL on INT 21)
    04h truncate open file to zero length
ES:DI -> SFT for file
Return: CF clear
    else ???
Return: CX = ??? (00h or 02h for DOS 4.01)
ES:DI -> SFT
SS = DOS DS

Return

        DS = DOS DS

Note

     	called by DOS 4.0 kernel on INT 21/AX=5702h,INT 21/AX=5703h,
  INT 21/AX=5704h


INT 2F AX=112E

2F CU - NETWORK REDIRECTOR (DOS 4+) - EXTENDED OPEN/CREATE FILE

AX = 112Eh
SS = DS = DOS DS
ES:DI -> uninitialized SFT for file
STACK: WORD file attribute for created/truncated file
low byte = file attributes
high byte = 00h normal create/open, 01h create new file
SDA first filename pointer -> fully-qualified filename
SDA extended file open action = action code (see INT 21/AX=6C00h)
SDA extended file open mode = open mode for file (see INT 21/AX=6C00h)

Return

        CF set on error
    AX = error code
CF clear if successful
    CX = result code
01h file opened
02h file created
03h file replaced (truncated)
    SFT initialized (except handle count, which DOS manages itself)

Note

     	called by DOS 4.0 kernel

SeeAlso

    INT 2F AX=1115    INT 2F AX=1116    INT 2F AX=1117    INT 21 AX=6C00


INT 2F AX=112F

2F CU - IFSFUNC.EXE (DOS 4.x only) - ???

AX = 112Fh
SS = DOS DS
STACK: WORD function in low byte
00h ???
    DS:SI -> Current Directory Structure???
    CL = drive (1=A:)
01h ???
    DS:SI -> ???
    CL = file handle???
02h ???
    DS:SI -> Current Directory Structure???
    DI = ???
    CX = drive (1=A:)
???

Return

        CF set on error
    AX = DOS error code (see INT 21/AH=59h)
CF clear if successful

Note

     	called by DOS 4.0 kernel

SeeAlso

    INT 21 AH=6B


INT 2F AX=1130

2F CU - IFSFUNC.EXE (DOS 4.x only) - GET IFSFUNC SEGMENT

AX = 1130h

Return

        ES = CS of resident IFSFUNC


INT 2F AX=1186

2F - LAN Manager Enhanced DOS API - DosReadAsynchNmPipe

AX = 1186h
???

Return

        ???

Note

     	LAN Manager enhance mode adds features beyond the standard redirector
  file/printer services

SeeAlso

    INT 2F AX=118F    INT 21 AX=5F39


INT 2F AX=118A

2F - LAN Manager 2.0 DOS Enhanced ENCRYPT.EXE - STREAM ENCRYPTION SERVICE

AX = 118Ah
???

Return

        ???

SeeAlso

    INT 2F AX=1186    INT 2F AH=41    INT 2F AH=42    INT 2F AH=4B


INT 2F AX=118F

2F - LAN Manager Enhanced DOS API - DosWriteAsynchNmPipe

AX = 118Fh
???

Return

        ???

SeeAlso

    INT 2F AX=1186    INT 21 AX=5F3A


INT 2F AX=1200

2F U - DOS 3+ internal - INSTALLATION CHECK

AX = 1200h

Return

        AL = FFh (for compatibility with other INT 2F functions)


INT 2F AX=1201

2F U - DOS 3+ internal - CLOSE CURRENT FILE

AX = 1201h
SS = DOS DS (must be using a DOS internal stack)
SDA current SFT pointer -> SFT of file to close

Return

        CF set on error
BX???
CX new reference count of SFT
ES:DI -> SFT for file

SeeAlso

    INT 2F AX=1106    INT 2F AX=1227    INT 21 AH=3E


INT 2F AX=1202

2F U - DOS 3+ internal - GET INTERRUPT ADDRESS

AX = 1202h
STACK: WORD vector number

Return

        ES:BX -> interrupt vector
STACK unchanged


INT 2F AX=1203

2F U - DOS 3+ internal - GET DOS DATA SEGMENT

AX = 1203h

Return

        DS = data segment of IBMDOS.COM/MSDOS.SYS

Note

     	for DOS prior to version 5.0, the data segment is the same as the code
  segment


INT 2F AX=1204

2F U - DOS 3+ internal - NORMALIZE PATH SEPARATOR

AX = 1204h
STACK: WORD character to normalize

Return

        AL = normalized character (forward slash turned to backslash, all
others unchanged)
ZF set if path separator
STACK unchanged


INT 2F AX=1205

2F U - DOS 3+ internal - OUTPUT CHARACTER TO STANDARD OUTPUT

AX = 1205h
STACK: WORD character to output

Return

        STACK unchanged

Note

     	can be called only from within DOS


INT 2F AX=1206

2F U - DOS 3+ internal - INVOKE CRITICAL ERROR

AX = 1206h
DI = error code
BP:SI -> device driver header
SS = DOS DS (must be using a DOS internal stack)
STACK: WORD value to be passed to INT 24 in AX

Return

        AL = 0-3 for Abort, Retry, Ignore, Fail
STACK unchanged

SeeAlso

    INT 24


INT 2F AX=1207

2F U - DOS 3+ internal - MAKE DISK BUFFER MOST-RECENTLY USED

AX = 1207h
DS:DI -> disk buffer

Return

        nothing

Desc

     	move the indicated buffer to the end of the disk buffer chain (least-
  recently used is first); under DOS 3.3, the buffer is then moved to
  the start of the disk buffer chain if it was marked unused

Note

     	can be called only from within DOS

SeeAlso

    INT 2F AX=120F


INT 2F AX=1208

2F U - DOS 3+ internal - DECREMENT SFT REFERENCE COUNT

AX = 1208h
ES:DI -> SFT

Return

        AX = original value of reference count

Notes

      	if the reference count was 1, it is set to FFFFh (since 0 indicates
  that the SFT is not in use).	It is the caller's responsibility to
  set the reference count to zero after cleaning up.
used by network redirectors such as MSCDEX

SeeAlso

    INT 2F AX=1106


INT 2F AX=1209

2F U - DOS 3+ internal - FLUSH AND FREE DISK BUFFER

AX = 1209h
DS:DI -> disk buffer

Return

        disk buffer marked unused, contents written to disk if buffer dirty

Note

     	can be called only from within DOS

SeeAlso

    INT 2F AX=120E    INT 2F AX=1215


INT 2F AX=120A

2F U - DOS 3+ internal - PERFORM CRITICAL ERROR INTERRUPT

AX = 120Ah
DS = SS = DOS DS (must be using a DOS internal stack)
STACK: WORD extended error code

Return

        AL = user response (0=ignore, 1=retry, 2=abort, 3=fail)
CF clear if retry, set otherwise
STACK unchanged

Notes

      	can only be called during a DOS function call, as it uses various
  fields in the SDA to set up the registers for the INT 24
reportedly sets current DPB's first root directory sector to 1

SeeAlso

    INT 24


INT 2F AX=120B

2F U - DOS 3+ internal - SIGNAL SHARING VIOLATION TO USER

AX = 120Bh
ES:DI -> system file table entry for previous open of file
STACK: WORD extended error code (should be 20h--sharing violation)

Return

        CF clear if operation should be retried
CF set if operation should not be retried
    AX = error code (20h) (see INT 21/AH=59h)
STACK unchanged

Notes

      	can only be called during a DOS function call
should only be called if an attempt was made to open an already-open
  file contrary to the sharing rules
invokes INT 24 if SFT file opened via FCB or in compatibility mode with
  inheritance allowed


INT 2F AX=120C

2F U - DOS 3+ internal - OPEN DEVICE AND SET SFT OWNER???

AX = 120Ch
SDA current SFT pointer -> SFT for file
DS = DOS DS
SS = DOS DS (must be using a DOS internal stack)

Return

        ES, DI, AX destroyed

Notes

      	invokes "device open" call on device driver for SFT
changes owner of last-accessed SFT to calling process if it was opened
  via FCB
called by network redirectors such as MSCDEX


INT 2F AX=120D

2F U - DOS 3+ internal - GET DATE AND TIME

AX = 120Dh
SS = DOS DS (must be using a DOS internal stack)

Return

        AX = current date in packed format (see INT 21/AX=5700h)
DX = current time in packed format (see INT 21/AX=5700h)

SeeAlso

    INT 21 AH=2A    INT 21 AH=2C


INT 2F AX=120E

2F U - DOS 3+ internal - MARK ALL DISK BUFFERS UNREFERENCED

AX = 120Eh
SS = DOS DS (must be using a DOS internal stack)

Return

        DS:DI -> first disk buffer

Note

     	clears "referenced" flag on all disk buffers

SeeAlso

    INT 2F AX=1209    INT 2F AX=1210    INT 21 AH=0D


INT 2F AX=120F

2F U - DOS 3+ internal - MAKE BUFFER MOST RECENTLY USED

AX = 120Fh
DS:DI -> disk buffer
SS = DOS DS (must be using a DOS internal stack)

Return

        DS:DI -> next buffer in buffer list

Desc

     	move the indicated buffer to the end of the disk buffer chain (least-
  recently used is first); under DOS 3.3, the buffer is then moved to
  the start of the disk buffer chain if it was marked unused

Note

     	this function is the same as AX=1207h except that it returns a
  pointer to the buffer following the specified buffer in the buffer
  chain

SeeAlso

    INT 2F AX=1207


INT 2F AX=1210

2F U - DOS 3+ internal - FIND UNREFERENCED DISK BUFFER

AX = 1210h
DS:DI -> first disk buffer to check

Return

        ZF clear if found
    DS:DI -> first unreferenced disk buffer
ZF set if not found

SeeAlso

    INT 2F AX=120E


INT 2F AX=1211

2F U - DOS 3+ internal - NORMALIZE ASCIZ FILENAME

AX = 1211h
DS:SI -> ASCIZ filename to normalize
ES:DI -> buffer for normalized filename

Return

        destination buffer filled with uppercase filename, with slashes turned
to backslashes

SeeAlso

    INT 2F AX=121E    INT 2F AX=1221


INT 2F AX=1212

2F U - DOS 3+ internal - GET LENGTH OF ASCIZ STRING

AX = 1212h
ES:DI -> ASCIZ string

Return

        CX = length of string

SeeAlso

    INT 2F AX=1225


INT 2F AX=1213

2F U - DOS 3+ internal - UPPERCASE CHARACTER

AX = 1213h
STACK: WORD character to convert to uppercase

Return

        AL = uppercase character
STACK unchanged


INT 2F AX=1214

2F U - DOS 3+ internal - COMPARE FAR POINTERS

AX = 1214h
DS:SI = first pointer
ES:DI = second pointer

Return

        ZF set if pointers are equal, ZF clear if not equal


INT 2F AX=1215

2F U - DOS 3+ internal - FLUSH BUFFER

AX = 1215h
DS:DI -> disk buffer
SS = DOS DS (must be using a DOS internal stack)
STACK: WORD drives for which to skip buffer
ignore buffer if drive same as high byte, or bytes differ and
the buffer is for a drive OTHER than that given in low byte

Return

        STACK unchanged

Note

     	can be called only from within DOS

SeeAlso

    INT 2F AX=1209


INT 2F AX=1216

2F U - DOS 3+ internal - GET ADDRESS OF SYSTEM FILE TABLE

AX = 1216h
BX = system file table entry number

Return

        CF clear if successful
    ES:DI -> system file table entry
CF set if BX greater than FILES=

SeeAlso

    INT 2F AX=1220


INT 2F AX=1217

2F U - DOS 3+ internal - GET CURRENT DIRECTORY STRUCTURE FOR DRIVE

AX = 1217h
SS = DOS DS (must be using a DOS internal stack)
STACK: WORD drive (0 = A:, 1 = B:, etc)

Return

        CF set on error
    (drive > LASTDRIVE)
CF clear if successful
    DS:SI -> current directory structure for specified drive
STACK unchanged

SeeAlso

    INT 2F AX=1219


INT 2F AX=1218

2F U - DOS 3+ internal - GET CALLER'S REGISTERS

AX = 1218h

Return

        DS:SI -> saved caller's AX,BX,CX,DX,SI,DI,BP,DS,ES (on stack)

Note

     	only valid while within DOS


INT 2F AX=1219

2F U - DOS 3+ internal - SET DRIVE???

AX = 1219h
SS = DOS DS (must be using a DOS internal stack)
STACK: WORD drive (0 = default, 1 = A:, etc)

Return

        ???
STACK unchanged

Notes

      	calls AX=1217h
builds a current directory structure if inside server call
  (INT 21/AX=5D00h)

SeeAlso

    INT 2F AX=1217    INT 2F AX=121F


INT 2F AX=121A

2F U - DOS 3+ internal - GET FILE'S DRIVE

AX = 121Ah
DS:SI -> filename

Return

        AL = drive (0 = default, 1 = A:, etc, FFh = invalid)
DS:SI -> filename without leading X: (if present)

SeeAlso

    INT 21 AH=19    INT 21 AH=60


INT 2F AX=121B

2F U - DOS 3+ internal - SET YEAR/LENGTH OF FEBRUARY

AX = 121Bh
CL = year - 1980

Return

        AL = number of days in February

Note

     	requires DS to be set to the DOS code segment

SeeAlso

    INT 21 AH=2B


INT 2F AX=121C

2F U - DOS 3+ internal - CHECKSUM MEMORY

AX = 121Ch
DS:SI -> start of memory to checksum
CX = number of bytes
DX = initial checksum
SS = DOS DS (must be using a DOS internal stack)

Return

        AX, CX destroyed
DX = checksum
DS:SI -> first byte after checksummed range

Note

     	used by DOS to determine day count since 1/1/80 given a date

SeeAlso

    INT 2F AX=121D


INT 2F AX=121D

2F U - DOS 3+ internal - SUM MEMORY

AX = 121Dh
DS:SI -> memory to add up
CX = 0000h
DX = limit

Return

        AL = byte which exceeded limit
CX = number of bytes before limit exceeded
DX = remainder after adding first CX bytes
DS:SI -> byte beyond the one which exceeded the limit

Note

     	used by DOS to determine year or month given day count since 1/1/80

SeeAlso

    INT 2F AX=121C


INT 2F AX=121E

2F U - DOS 3+ internal - COMPARE FILENAMES

AX = 121Eh
DS:SI -> first ASCIZ filename
ES:DI -> second ASCIZ filename

Return

        ZF set if filenames equivalent, ZF clear if not

SeeAlso

    INT 2F AX=1211    INT 2F AX=1221


INT 2F AX=121F

2F U - DOS 3+ internal - BUILD CURRENT DIRECTORY STRUCTURE

AX = 121Fh
SS = DOS DS (must be using a DOS internal stack)
STACK: WORD drive letter

Return

        ES:DI -> current directory structure (will be overwritten by next call)
STACK unchanged


INT 2F AX=1220

2F U - DOS 3+ internal - GET JOB FILE TABLE ENTRY

AX = 1220h
BX = file handle

Return

        CF set on error
    AL = 6 (invalid file handle)
CF clear if successful
    ES:DI -> JFT entry for file handle in current process

Note

     	the byte pointed at by ES:DI contains the number of the SFT for the
  file handle, or FFh if the handle is not open

SeeAlso

    INT 2F AX=1216    INT 2F AX=1229


INT 2F AX=1221

2F U - DOS 3+ internal - CANONICALIZE FILE NAME

AX = 1221h
DS:SI -> file name to be fully qualified
ES:DI -> 128-byte buffer for resulting canonical file name
SS = DOS DS (must be using a DOS internal stack)

Return

        (see INT 21/AH=60h)

Note

     	identical to INT 21/AH=60h

SeeAlso

    INT 2F AX=1123    INT 21 AH=60


INT 2F AX=1222

2F U - DOS 3+ internal - SET EXTENDED ERROR INFO

AX = 1222h
SS = DOS data segment
SS:SI -> 4-byte records
BYTE	error code, FFh = last record
BYTE	error class, FFh = don't change
BYTE	suggested action, FFh = don't change
BYTE	error locus, FFh = don't change
SDA error code set

Return

        SI destroyed
SDA error class, error locus, and suggested action fields set

Note

     	can be called only from within DOS

SeeAlso

    INT 2F AX=122D    INT 21 AH=59


INT 2F AX=1223

2F U - DOS 3+ internal - CHECK IF CHARACTER DEVICE

AX = 1223h
DS = DOS DS
SS = DOS DS (must be using a DOS internal stack)
SDA+218h (DOS 3.10-3.30) = eight-character blank-padded name
SDA+22Bh (DOS 4.0-5.0) = eight-character blank-padded name

Return

        CF set if no character device by that name found
CF clear if found
    BH = low byte of device attribute word

Note

     	can only be called from within DOS

SeeAlso

    INT 21 AX=5D06    INT 21 AX=5D0B


INT 2F AX=1224

2F U - DOS 3+ internal - DELAY

AX = 1224h
SS = DOS DS (must be using a DOS internal stack)

Return

        after delay set by INT 21/AX=440Bh, unless in server call
  (INT 21/AX=5D00h)

Note

     	delay is dependent on the processor speed, and is skipped entirely if
  inside a server call

SeeAlso

    INT 21 AX=440B    INT 21 AH=52


INT 2F AX=1225

2F U - DOS 3+ internal - GET LENGTH OF ASCIZ STRING

AX = 1225h
DS:SI -> ASCIZ string

Return

        CX = length of string

SeeAlso

    INT 2F AX=1212


INT 2F AX=1226

2F U - DOS 3.3+ internal - OPEN FILE

AX = 1226h
CL = access mode
DS:DX -> ASCIZ filename
SS = DOS DS (must be using a DOS internal stack)

Return

        CF set on error
    AL = error code (see INT 21/AH=59h)
CF clear if successful
    AX = file handle

Notes

      	can only be called from within DOS
equivalent to INT 21/AH=3Dh

SeeAlso

    INT 2F AX=1227    INT 21 AH=3D


INT 2F AX=1227

2F U - DOS 3.3+ internal - CLOSE FILE

AX = 1227h
BX = file handle
SS = DOS DS (must be using a DOS internal stack)

Return

        CF set on error
    AL = 06h invalid file handle
CF clear if successful

Notes

      	can only be called from within DOS
equivalent to INT 21/AH=3Eh

SeeAlso

    INT 2F AX=1106    INT 2F AX=1201    INT 2F AX=1226    INT 21 AH=3E


INT 2F AX=1228

2F U - DOS 3.3+ internal - MOVE FILE POINTER

AX = 1228h
BP = 4200h, 4201h, 4202h (see INT 21/AH=42h)
BX = file handle
CX:DX = offset in bytes
SS = DOS DS (must be using a DOS internal stack)

Return

        as for INT 21/AH=42h

Notes

      	equivalent to INT 21/AH=42h, but may only be called from inside a DOS
  function call
sets user stack frame pointer to dummy buffer, moves BP to AX, performs
  LSEEK, and restores frame pointer

SeeAlso

    INT 21 AH=42


INT 2F AX=1229

2F U - DOS 3.3+ internal - READ FROM FILE

AX = 1229h
BX = file handle
CX = number of bytes to read
DS:DX -> buffer
SS = DOS DS (must be using a DOS internal stack)

Return

        as for INT 21/AH=3Fh

Note

     	equivalent to INT 21/AH=3Fh, but may only be called when already inside
  a DOS function call

SeeAlso

    INT 2F AX=1226    INT 21 AH=3F


INT 2F AX=122A

2F U - DOS 3.3+ internal - SET FASTOPEN ENTRY POINT

AX = 122Ah
BX = entry point to set (0001h or 0002h)
DS:SI -> FASTOPEN entry point
(entry point not set if SI = FFFFh for DOS 4+)

Return

        CF set if specified entry point already set

Notes

      	entry point in BX is ignored under DOS 3.30
both entry points set to same handler by DOS 4.01

DOS 3.30+ FASTOPEN is called with:
AL = 01h  ???
    CX = ??? seems to be offset
    DI = ??? seems to be offset
    SI = offset in DOS DS of filename
AL = 02h  ???
AL = 03h  open file???
    SI = offset in DOS DS of filename
AL = 04h  ???
    AH = subfunction (00h,01h,02h)
    ES:DI -> ???
    CX = ??? (subfunctions 01h and 02h only)
Returns: CF set on error or not installed

Note

      function 03h calls function 01h first

PCDOS 4.01 FASTOPEN is additionally called with:
AL = 04h ???
    AH = 03h
    ???
AL = 05h ???
AL = 0Bh ???
AL = 0Ch ???
AL = 0Dh ???
AL = 0Eh ???
AL = 0Fh ???
AL = 10h ???

MSDOS 5.0 FASTOPEN is additionally called with:
AL = 04h ???
    AH = 03h
    ???
AL = 05h ???
    DL = drive (00h = A:)
    ???
AL = 06h ???


INT 2F AX=122B

2F U - DOS 3.3+ internal - IOCTL

AX = 122Bh
BP = 44xxh
SS = DOS DS (must be using a DOS internal stack)
additional registers as appropriate for INT 21/AX=44xxh

Return

        as for INT 21/AH=44h

Notes

      	equivalent to INT 21/AH=44h, but may only be called when already inside
  a DOS function call
sets user stack frame pointer to dummy buffer, moves BP to AX, performs
  IOCTL, and restores frame pointer

SeeAlso

    INT 21 AH=44


INT 2F AX=122C

2F U - DOS 3.3+ internal - GET DEVICE CHAIN

AX = 122Ch

Return

        BX:AX -> header of second device driver (NUL is first) in driver chain

SeeAlso

    INT 21 AH=52


INT 2F AX=122D

2F U - DOS 3.3+ internal - GET EXTENDED ERROR CODE

AX = 122Dh

Return

        AX = current extended error code

SeeAlso

    INT 2F AX=1222    INT 21 AH=59


INT 2F AX=122E

2F U - DOS 4+ internal - GET OR SET ERROR TABLE ADDRESSES

AX = 122Eh
DL = subfunction
    00h get standard DOS error table
Return: ES:DI -> error table
 (DOS 4: errors 00h-12h,50h-5Bh)
 (DOS 5: errors 00h-26h,4Fh,51h-59h)
    01h set standard DOS error table
ES:DI -> error table
    02h get parameter error table (errors 00h-0Ah)
Return: ES:DI -> error table
    03h set parameter error table
ES:DI -> error table
    04h get critical/SHARE error table (errors 13h-2Bh)
Return: ES:DI -> error table
    05h set critical/SHARE error table
ES:DI -> error table
    06h get ??? error table
Return: ES:DI -> error table or 0000h:0000h
    07h set ??? error table
ES:DI -> error table
    08h get error message retriever (see below)
Return: ES:DI -> FAR procedure to fetch error message
    09h set ??? error table
ES:DI -> error table

Notes

      	if the returned segment on a "get" is 0001h, then the offset specifies
  the offset of the error message table within COMMAND.COM, and the
  procedure returned by DL=08h should be called
DOS 5.0 COMMAND.COM does not allow setting any of the addresses (calls
  with DL odd are ignored); they are always returned with segment 0001h
for DOS 5.0, the standard and critical/SHARE error tables are combined
  into a single error table

SeeAlso

    INT 2F AX=0500    INT 21 AH=59

Table Formats

DOS 4.x error table:
Call error retrieval function with:
AX = error number
DI = offset of error table

Return

        ES:DI -> error message (counted string)

Notes

      	this function needs to access COMMAND.COM if the messages were not
  loaded into memory permanently with /MSG; the caller should assume
  that the returned message will be overwritten by the next call of
  the function
supported by DR-DOS 5.0


INT 2F AX=122F

2F U - DOS 4.x internal - SET DOS VERSION NUMBER TO RETURN

AX = 122Fh
DX = DOS version number (0000h = return true DOS version)

Note

     	not available under DR-DOS 5.0 or 6.0

SeeAlso

    INT 21 AH=30    INT 21 AX=3306


INT 2F AH=13

2F U - DOS 3.2+ - SET DISK INTERRUPT HANDLER

AH = 13h
DS:DX -> interrupt handler disk driver calls on read/write
ES:BX = address to restore INT 13 to on system halt (exit from root
 shell) or warm boot (INT 19)

Return

        DS:DX from previous invocation of this function
ES:BX from previous invocation of this function

Notes

      	IO.SYS hooks INT 13 and inserts one or more filters ahead of the
  original INT 13 handler.  The first is for disk change detection
  on floppy drives, the second is for tracking formatting calls and
  correcting DMA boundary errors, the third is for working around
  problems in a particular version of IBM's ROM BIOS
before the first call, ES:BX points at the original BIOS INT 13; DS:DX
  also points there unless IO.SYS has installed a special filter for
  hard disk reads (on systems with model byte FCh and BIOS date
  "01/10/84" only), in which case it points at the special filter
most DOS 3.3+ disk access is via the vector in DS:DX, although a few
  functions are still invoked via an INT 13 instruction
this is a dangerous security loophole for any virus-monitoring software
  which does not trap this call (many Bulgarian viruses are known to
  use it to get the original ROM entry point)

SeeAlso

    INT 13 AH=01    INT 19


INT 2F AX=1400

2F C - NLSFUNC.COM - INSTALLATION CHECK

AX = 1400h

Return

        AL = 00h not installed, OK to install
     01h not installed, not OK
     FFh installed

Notes

      	called by DOS v3.3+ kernel
supported by OS/2 v1.3+ compatibility box, which always returns AL=FFh
supported by DR-DOS 5.0
documented for MS-DOS 5.0, but undocumented in prior versions

SeeAlso

    INT 2F AX=1401"NLSFUNC"    INT 2F AX=1402"NLSFUNC"


INT 2F AX=1400

2F - European MSDOS 4.0 POPUP - "CheckPu" - INSTALLATION CHECK

AX = 1400h

Return

        AX = FFFFh if installed
    BX = maximum memory required to save screen and keyboard info
CF clear if successful
CF set on error
    AX = error code
0002h invalid function
0004h unknown error

Note

     	the POPUP interface is used by background programs (see INT 21/AH=80h)
  to communicate with the user

SeeAlso

    INT 2F AX=1401"POPUP"    INT 2F AX=1402"POPUP"    INT 2F AX=1403"POPUP"


INT 2F AX=1401

2F CU - NLSFUNC.COM - CHANGE CODE PAGE

AX = 1401h
DS:SI -> internal code page structure (see below)
BX = new code page
DX = country code???

Return

        AL = status
     00h successful
     else DOS error code

Note

     	called by DOS v3.3+ kernel

SeeAlso

    INT 2F AX=1400"NLSFUNC"    INT 2F AX=1402"NLSFUNC"    INT 21 AH=66

Table Formats

DOS 3.30 internal code page structure:


INT 2F AX=1401

2F - European MSDOS 4.0 POPUP - "PostPu" - OPEN/CLOSE POPUP SCREEN

AX = 1401h
DL = function (00h open, 01h close)
DH = wait flag
    00h block until screen opens
    01h return error if screen is not available
    02h urgent--always open screen immediately

Return

        CF clear if successful
    BX = amount of memory needed to save screen and keyboard info,
0000h if default save location can be used (only if DH was 02h)
CF set on error

Note

     	the application using the screen is frozen until the popup screen is
  closed

SeeAlso

    INT 2F AX=1400"POPUP"    INT 2F AX=1402"POPUP"    INT 2F AX=1403"POPUP"


INT 2F AX=1402

2F CU - NLSFUNC.COM - GET COUNTRY INFO

AX = 1402h
BP = subfunction (same as AL for INT 21/AH=65h)
BX = code page
DX = country code
DS:SI -> internal code page structure (see AX=1401h)
ES:DI -> user buffer
CX = size of user buffer

Return

        AL = status
    00h successful
    else DOS error code

Notes

      	called by DOS v3.3+ kernel on INT 21/AH=65h
code page structure apparently only needed for COUNTRY.SYS pathname

SeeAlso

    INT 2F AX=1401"NLSFUNC"    INT 2F AX=1403"NLSFUNC"    INT 2F AX=1404    INT 21 AH=65


INT 2F AX=1402

2F - European MSDOS 4.0 POPUP - "SavePu" - SAVE POPUP SCREEN

AX = 1402h
ES:DI -> save buffer (0000h:0000h for default buffer in POPUP)

Return

        CF clear if successful
CF set on error
    AX = error code
0001h process does not own screen
0004h unknown error
0005h invalid pointer

SeeAlso

    INT 2F AX=1400"POPUP"    INT 2F AX=1401"POPUP"    INT 2F AX=1403"POPUP"


INT 2F AX=1403

2F CU - NLSFUNC.COM - SET COUNTRY INFO

AX = 1403h
DS:SI -> internal code page structure (see AX=1401h)
BX = code page
DX = country code

Return

        AL = status
     ???

Note

     	called by DOS v3.3+ kernel on INT 21/AH=38h

SeeAlso

    INT 2F AX=1402"NLSFUNC"    INT 2F AX=1404    INT 21 AH=38"SET"


INT 2F AX=1403

2F - European MSDOS 4.0 POPUP - "RestorePu" - RESTORE SCREEN

AX = 1403h
ES:DI -> buffer containing saved screen
(0000h:0000h for default buffer in POPUP)

Return

        CF clear if successful
CF set on error
    AX = error code (see AX=1402h"POPUP")

SeeAlso

    INT 2F AX=1400"POPUP"    INT 2F AX=1401"POPUP"    INT 2F AX=1402"POPUP"


INT 2F AX=1404

2F CU - NLSFUNC.COM - GET COUNTRY INFO

AX = 1404h
BX = code page
DX = country code
DS:SI -> internal code page structure (see AX=1401h)
ES:DI -> user buffer

Return

        AL = status
     ???

Notes

      	called by DOS v3.3+ kernel on INT 21/AH=38h
code page structure apparently only needed for COUNTRY.SYS pathname

SeeAlso

    INT 2F AX=1402    INT 2F AX=1403    INT 21 AH=38"GET"


INT 2F AX=14FE

2F U - DR-DOS 5.0 NLSFUNC - ???

AX = 14FEh
DI = ???
???

Return

        ???

Note

     	DR-DOS 5.0 NLSFUNC returns CF set and AX=0001h if AL was not 00h, FEh,
  or FFh on entry.

SeeAlso

    INT 2F AX=14FF


INT 2F AX=14FF

2F U - DR-DOS 5.0 NLSFUNC - ???

AX = 14FFh
???

Return

        ???

Note

     	DR-DOS 5.0 NLSFUNC returns CF set and AX=0001h if AL was not 00h, FEh,
  or FFh on entry.

SeeAlso

    INT 2F AX=14FE


INT 2F AX=1500

2F - DOS 4.00 GRAPHICS.COM - INSTALLATION CHECK

AX = 1500h

Return

        AX = FFFFh
ES:DI -> ??? (graphics data?)

Note

     	this installation check conflicts with the CD-ROM Extensions
  installation check; moved to AX=AC00h in later versions

SeeAlso

    INT 2F AX=AC00


INT 2F AX=1500

2F - CD-ROM - INSTALLATION CHECK

AX = 1500h
BX = 0000h

Return

        BX = number of CD-ROM drive letters used
CX = starting drive letter (0=A:)

Notes

      	this installation check DOES NOT follow the format used by other
  software
this installation check conflicts with the DOS 4.00 GRAPHICS.COM
  installation check

SeeAlso

    INT 2F AX=D000"Lotus"


INT 2F AX=1501

2F - CD-ROM - GET DRIVE DEVICE LIST

AX = 1501h
ES:BX -> buffer to hold drive letter list (5 bytes per drive letter)

Return

        buffer filled, for each drive letter
  BYTE	subunit number in driver
  DWORD address of device driver header


INT 2F AX=1502

2F - CD-ROM - GET COPYRIGHT FILE NAME

AX = 1502h
ES:BX -> 38-byte buffer for name of copyright file
CX = drive number (0=A:)

Return

        CF set if drive is not a CD-ROM drive
    AX = 15 (invalid drive)
CF clear if successful

SeeAlso

    INT 2F AX=1503


INT 2F AX=1503

2F - CD-ROM - GET ABSTRACT FILE NAME

AX = 1503h
ES:BX -> 38-byte buffer for name of abstract file
CX = drive number (0=A:)

Return

        CF set if drive is not a CD-ROM drive
    AX = 15 (invalid drive)
CF clear if successful

SeeAlso

    INT 2F AX=1502


INT 2F AX=1504

2F - CD-ROM - GET BIBLIOGRAPHIC DOC FILE NAME

AX = 1504h
ES:BX -> 38-byte buffer for name of bibliographic documentation file
CX = drive number (0=A:)

Return

        CF set if drive is not a CD-ROM drive
    AX = 15 (invalid drive)
CF clear if successful


INT 2F AX=1505

2F - CD-ROM - READ VTOC

AX = 1505h
ES:BX -> 2048-byte buffer
CX = drive number (0=A:)
DX = sector index (0=first volume descriptor,1=second,...)

Return

        CF set on error
    AX = error code (15=invalid drive,21=not ready)
CF clear if successful
    AX = volume descriptor type (1=standard,FFh=terminator,0=other)


INT 2F AX=1506

2F - CD-ROM - TURN DEBUGGING ON

AX = 1506h
BX = debugging function to enable

Note

     	reserved for development

SeeAlso

    INT 2F AX=1507


INT 2F AX=1507

2F - CD-ROM - TURN DEBUGGING OFF

AX = 1507h
BX = debugging function to disable

Note

     	reserved for development

SeeAlso

    INT 2F AX=1506


INT 2F AX=1508

2F - CD-ROM - ABSOLUTE DISK READ

AX = 1508h
ES:BX -> buffer
CX = drive number (0=A:)
SI:DI = starting sector number
DX = number of sectors to read

Return

        CF set on error
    AL = error code (15=invalid drive,21=not ready)
CF clear if successful

SeeAlso

    INT 2F AX=1509


INT 2F AX=1509

2F - CD-ROM - ABSOLUTE DISK WRITE

AX = 1509h
ES:BX -> buffer
CX = drive number (0=A:)
SI:DI = starting sector number
DX = number of sectors to write

Note

     	corresponds to INT 26h and is currently reserved and nonfunctional

SeeAlso

    INT 2F AX=1508


INT 2F AX=150A

2F - CD-ROM - RESERVED

AX = 150Ah


INT 2F AX=150B

2F - CD-ROM v2.00+ - DRIVE CHECK

AX = 150Bh
CX = drive number (0=A:)

Return

        BX = ADADh if MSCDEX.EXE installed
    AX = 0000h if drive not supported
nonzero if supported

SeeAlso

    INT 2F AX=150D


INT 2F AX=150C

2F - CD-ROM v2.00+ - GET MSCDEX.EXE VERSION

AX = 150Ch

Return

        BH = major version
BL = minor version

Note

     	MSCDEX.EXE versions prior to 2.00 return BX=0


INT 2F AX=150D

2F - CD-ROM v2.00+ - GET CD-ROM DRIVE LETTERS

AX = 150Dh
ES:BX -> buffer for drive letter list (1 byte per drive)

Return

        buffer filled with drive numbers (0=A:).  Each byte corresponds
to the drive in the same position for function 1501h

SeeAlso

    INT 2F AX=150B


INT 2F AX=150E

2F - CD-ROM v2.00+ - GET/SET VOLUME DESCRIPTOR PREFERENCE

AX = 150Eh
BX = subfunction
    00h get preference
DX = 0000h
Return: DX = preference settings
    01h set preference
DH = volume descriptor preference
    01h = primary volume descriptor
    02h = supplementary volume descriptor
DL = supplementary volume descriptor preference
    01h = shift-Kanji
CX = drive number (0=A:)

Return

        CF set on error
    AX = error code (15=invalid drive,1=invalid function)
CF clear if successful


INT 2F AX=150F

2F - CD-ROM v2.00+ - GET DIRECTORY ENTRY

AX = 150Fh
CL = drive number (0=A:)
CH bit 0 = copy flag
clear if direct copy
set if copy to structure which removed ISO/High Sierra diffs
ES:BX -> ASCIZ path name
SI:DI -> buffer for directory entry (see below)
 minimum 255 bytes for direct copy

Return

        CF set on error
    AX = error code
CF clear if succesful
    AX = disk format (0=High Sierra,1=ISO 9660)

Table Formats

Directory entry (direct copy):
Directory entry (canonicalized):


INT 2F AX=1510

2F - CD-ROM v2.10+ - SEND DEVICE DRIVER REQUEST

AX = 1510h
CX = CD-ROM drive letter (0 = A, 1 = B, etc)
ES:BX -> CD-ROM device driver request header (see AX=0802h)


INT 2F AX=1600

2F - MS WINDOWS - WINDOWS ENHANCED MODE INSTALLATION CHECK

AX = 1600h

Return

        AL = 00h if Windows 3.x enhanced mode or Windows/386 2.x not running
AL = 80h if Windows 3.x enhanced mode or Windows/386 2.x not running
AL = 01h if Windows/386 2.x running
AL = FFh if Windows/386 2.x running
AL = anything else
    AL = Windows major version number >= 3
    AH = Windows minor version number

Note

     	INT 2F/AH=16h comprises an API for non-Windows programs (DOS device
  drivers, TSRs, and applications) to cooperate with multitasking
  Windows/386 2.x and Windows 3.x and higher enhanced mode.
certain calls are also supported in the Microsoft 80286 DOS extender in
  Windows standard mode

SeeAlso

    INT 2F AX=160A    INT 2F AX=4680


INT 2F AX=1602

2F - MS WINDOWS/386 2.x - GET API ENTRY POINT

AX = 1602h

Return

        ES:DI -> Windows/386 2.x API procedure entry point

Notes

      	this interface is supported in Windows 3.x only for 2.x compatibility
to get the current virtual machine (VM) ID in Windows/386 2.x:
    AX = 0000h
    ES:DI -> return address
    JUMP to address returned from INT 2F/AX=1602h
After JUMP, at return address:
    BX = current VM ID.

SeeAlso

    INT 2F AX=0C20


INT 2F AX=1603

2F - RM Nimbus MSDOS 3.3 - ???

AX = 1603h

Return

        AX = 5248h ('RH')
DS:SI -> first byte after INT 2F handler in IBMBIO.COM


INT 2F AX=1605

2F - MS WINDOWS - WINDOWS ENH MODE & 286 DOSX INIT BROADCAST

AX = 1605h
ES:BX = 0000h:0000h
DS:SI = 0000h:0000h
CX = 0000h
DX = flags
    bit 0 = 0 if Windows enhanced-mode initialization
    bit 0 = 1 if Microsoft 286 DOS extender initialization
    bits 1-15 reserved (undefined)
DI = version number (major in upper byte, minor in lower)

Return

        CX = 0000h if okay for Windows to load
CX <> 0 if Windows should not load
ES:BX -> startup info structure (see below)
DS:SI -> virtual86 mode enable/disable callback or 0000h:0000h

Notes

      	the Windows enhanced mode loader and Microsoft 286 DOS extender will
  broadcast an INT 2F/AX=1605h call when initializing.	Any DOS device
  driver or TSR can watch for this broadcast and return the appropriate
  values.  If the driver or TSR returns CX <> 0, it is also its
  responsibility to display an error message.
each handler must first chain to the prior INT 2F handler with
  registers unchanged before processing the call
if the handler requires local data on a per-VM basis, it must store the
  returned ES:BX in the "next" field of a startup info structure and
  return a pointer to that structure in ES:BX
a single TSR may set the V86 mode enable/disable callback; if DS:SI is
  already nonzero, the TSR must fail the initialization by setting CX
  nonzero

SeeAlso

    INT 2F AX=1606    INT 2F AX=1608    INT 2F AX=4B05

Table Formats

Startup Information Structure:
One Instance Item in array:
Virtual mode enable/disable procedure called with:
AX = 0000h disable V86 mode
AX = 0001h enable V86 mode
interrupts disabled

Return

        CF set on error
CF clear if successful
interrupts disabled


INT 2F AX=1606

2F - MS WINDOWS - WINDOWS ENH MODE & 286 DOSX EXIT BROADCAST

AX = 1606h
DX = flags
    bit 0 = 0 if Windows enhanced-mode exit
    bit 0 = 1 if Microsoft 286 DOS extender exit
    bits 1-15 reserved (undefined)

Notes

      	if the init broadcast fails (AX=1605h returned CX <> 0), then this
  broadcast will be issued immediately.
this call will be issued in real mode

SeeAlso

    INT 2F AX=1605    INT 2F AX=1609


INT 2F AX=1607

2F - MS WINDOWS - VIRTUAL DEVICE CALL OUT API

AX = 1607h
BX = virtual device ID (see INT 2F/AX=1684h)
CX = (usually) callout subfunction

Return

        (usually) AX,BX,CX,DX,ES contain results

Notes

      	more of a convention than an API, this call specifies a standard
  mechanism for Windows enhanced-mode virtual devices (VxD's) to talk
  to DOS device drivers and TSRs
see below for details on several virtual devices

SeeAlso

    INT 2F AX=0C20    INT 2F AX=1605    INT 2F AX=1607    /BX=000Ch    INT 2F AX=1607    /BX=0014

SeeAlso

    INT 2F AX=1607    /BX=0015h    INT 2F AX=1684


INT 2F AX=1607

2F - MS WINDOWS - "VMD" VIRTUAL DEVICE API

AX = 1607h
BX = 000Ch (VxD identifier of "VMD")

Return

        CX = nonzero if mouse driver already virtualized

Note

     	VMD (Virtual Mouse Driver) calls this and then checks whether CX is
  nonzero; if yes, it will not automatically virtualize the mouse
  driver.  This would be used if MOUSE.COM already virtualizes
  itself using the Windows API.

SeeAlso

    INT 2F AX=1607    /BX=0014h    INT 2F AX=1607    /BX=0015


INT 2F AX=1607

2F - MS WINDOWS - "VNETBIOS" VIRTUAL DEVICE API

AX = 1607h
BX = 0014H (VxD identifier of "VNETBIOS")

Return

        ES:DI -> 128-byte table specifying VNETBIOS actions for each NetBIOS
command code (see below)

Note

     	VNETBIOS (Virtual NetBIOS) calls this function to determine whether
  the NetBIOS has an extensions Windows should know about

SeeAlso

    INT 2F AX=1607    /BX=000Ch    INT 2F AX=1607    /BX=0015

Values for action code:
 00h	"VN_Unknown" unknown command
 04h	"VN_No_Map"  no memory mapping necessary
 08h	"VN_Map_In"  input buffer is quickly used, so no global mapping needed
 0Ch	"VN_Map_In"  output buffer is quickly used, so no global mapping needed
 10h	"VN_Map_In_Out"	 buffer is quickly used, so no global mapping needed
 14h	"VN_Chain_Send"	 the chain-send command
 18h	"VN_Cancel"	special case for cancel command
 1Ch	"VN_Buffer_In"	buffer is incoming
 20h	"VN_Buffer_Out" buffer is outgoing
 24h	"VN_Buffer_In_Out" buffer used for both incoming and outgoing data


INT 2F AX=1607

2F - MS WINDOWS - "DOSMGR" VIRTUAL DEVICE API

AX = 1607h
BX = 0015h (VxD identifier of "DOSMGR")
CX = function
    0000h query instance processing
Return: CX = state
    0000h not instanced
    other instanced (DOS 5.0 kernel returns 0001h)
DX = segment of DOS drivers
(unchanged if call handled by DOS 5.0)
ES:BX -> patch table (see below)
    0001h set patches in DOS
DX = bit mask of patch requests
    bit 0 enable critical sections
    bit 1 NOP setting/checking user ID
    bit 2 turn INT 21/AH=3Fh on STDIN into polling loop
    bit 3 trap stack fault in "SYSINIT" to WIN386
    bit 4 BIOS patch to trap "Insert disk X:" to WIN386
Return: AX = B97Ch
BX = bit mask of patches applied
DX = A2ABh
    0002h remove patches in DOS (ignored by DOS 5.0 kernel)
DX = bit mask of patch requests (see function 0001h)
    0003h get size of DOS data structures
DX = bit mask of request (only one bit can be set)
    bit 0: Current Directory Structure size
Return: if supported request:
    AX = B97Ch
    CX = size in bytes of requested structure
    DX = A2ABh
else:
    all registers preserved
    0004h determine instanced data structures
Return: AX = B97Ch if supported
DX = A2ABh if supported (DOS 5.0 kernel returns 0000h)
BX = bit mask of instanced items
    bit 0: CDS
    bit 1: SFT
    bit 2: device list
    bit 3: DOS swappable data area
    0005h get device driver size
ES = segment of device driver
Return: DX:AX = 0000h:0000h on error (not dev. driver segment)
DX:AX = A2ABh:B97Ch if successful
    BX:CX = size of device driver in bytes

Notes

      	the DOS 5.0 kernel provides these calls; earlier versions require a
  separate driver
DOSMGR (DOS Manager) will check whether the OEM DOS/BIOS data has
  been instanced via INT 2F/AX=1605h and will not perform its own
  instancing of the normal DOS/BIOS data if so

SeeAlso

    INT 2F AX=1605    INT 2F AX=1607    /BX=000Ch    INT 2F AX=1607    /BX=0014h    INT 2F AX=1684

Table Formats

Patch table:


INT 2F AX=1607

2F - Rational Systems DOS/4GW - ???

AX = 1607h
BX = 22C0h
???

Return

        ???

SeeAlso

    INT 15 AX=BF02    INT 15 AX=BF04


INT 2F AX=1608

2F C - MS WINDOWS - WINDOWS ENHANCED MODE INIT COMPLETE BROADCAST

AX = 1608h

Notes

      	called after all installable devices have been initialized
real-mode software may be called between the Windows enhanced-mode init
  call (AX=1605h) and this call; the software must detect this
  situation

SeeAlso

    INT 2F AX=1605    INT 2F AX=1609


INT 2F AX=1609

2F C - MS WINDOWS - WINDOWS ENHANCED MODE BEGIN EXIT BROADCAST

AX = 1609h

Note

     	called at the beginning of a normal exit sequence; not made in the
  event of a fatal system crash

SeeAlso

    INT 2F AX=1606    INT 2F AX=1608


INT 2F AX=160A

2F - MS Windows 3.1 - IDENTIFY WINDOWS VERSION AND TYPE

AX = 160Ah

Return

        AX = 0000h if call supported
    BX = version (BH=major, BL=minor)
    CX = mode (0002h = standard, 0003h = enhanced)

SeeAlso

    INT 2F AX=1600    INT 2F AX=4680


INT 2F AX=160B

2F - MS Windows 3.1 - IDENTIFY TSRs

AX = 160Bh
ES:DI -> communication structure (see below) or 0000h:0000h

Return

        ES:DI -> communication structure

Desc

     	this call allows Windows-aware TSRs to make themselves known to
  Windows.

Note

     	the TSR should allocate a communication structure, place the given
  ES:DI pointer in the first field, and return a pointer to the new
  structure

SeeAlso

    INT 2F AX=1605    INT 2F AX=160C    INT 2F AX=4B01    INT 2F AX=4B05

Table Formats

TSR-to-Windows communication structure:
Norton Utilities 6.0 TSR ID block:


INT 2F AX=160C

2F - MS Windows 3.1 - DETECT ROMs

AX = 160Ch
???

Return

        ???

Note

     	used by ROM Windows

SeeAlso

    INT 2F AX=160B


INT 2F AX=1680

2F - MS WINDOWS, DPMI, various - RELEASE CURRENT VIRTUAL MACHINE TIME-SLICE

AX = 1680h

Return

        AL = 00h if the call is supported
AL = 80h (unchanged) if the call is not supported

Notes

      	programs can use this function in idle loops to enhance performance
  under multitaskers; this call is supported by MS Windows 3.0, DOS 5+,
  DPMI 1.0+, and will be supported in OS/2 2.0 for multitasking DOS
  applications
does not block the program; it just gives up the remainder of the time
  slice
should not be used by Windows-specific programs

SeeAlso

    INT 15 AX=1000    INT 15 AX=5305    INT 21 AH=89    INT 7ABX=000A


INT 2F AX=1681

2F - MS WINDOWS 3+ - BEGIN CRITICAL SECTION

AX = 1681h

Notes

      	used to prevent a task switch from occurring
should be followed by an INT 2F/AX=1682h call as soon as possible
nested calls are allowed, and must be followed by an appropriate number
  of "end critical section" calls
not supported in Windows/386 2.x. Get INDOS flag with INT 21/AH=34h and
  and increment by hand.

SeeAlso

    INT 2F AX=1682    INT 15 AX=101B    INT 21 AH=34


INT 2F AX=1682

2F - MS WINDOWS 3+ - END CRITICAL SECTION

AX = 1682h

Notes

      	not supported in Windows/386 2.x.  Get InDOS flag with INT 21/AH=34h
  and decrement by hand, taking care not to decrement InDOS flag
  through zero

SeeAlso

    INT 2F AX=1681    INT 15 AX=101C    INT 21 AH=34


INT 2F AX=1683

2F - MS WINDOWS 3+ - GET CURRENT VIRTUAL MACHINE ID

AX = 1683h

Return

        BX = current virtual machine (VM) ID

Notes

      	Windows itself currently runs in VM 1, but this can't be relied upon
VM IDs are reused when VMs are destroyed
an ID of 0 will never be returned

SeeAlso

    INT 2F AX=1684    INT 2F AX=1685    INT 2F AX=168B


INT 2F AX=1684

2F - MS WINDOWS - GET DEVICE API ENTRY POINT

AX = 1684h
BX = virtual device (VxD) ID (see below)
ES:DI = 0000h:0000h

Return

        ES:DI -> VxD API entry point, or 0:0 if the VxD does not support an API

Note

     	some Windows enhanced-mode virtual devices provide services that
  applications can access.  For example, the Virtual Display Device
  (VDD) provides an API used in turn by WINOLDAP.

SeeAlso

    INT 2F AX=1683

Values for VxD ID:
 01h	VMM	Virtual Machine Manager
 02h	Debug
 03h	VPICD	Virtual Prog. Interrupt Controller (PIC) Device
 04h	VDMAD	Virtual Direct Memory Access (DMA) Device
 05h	VTD	Virtual Timer Device
 06h	V86MMGR	Virtual 8086 Mode Device
 07h	PAGESWAP	Paging Device
 08h	Parity
 09h	Reboot
 0Ah	VDD	Virtual Display Device (GRABBER)
 0Bh	VSD	Virtual Sound Device
 0Ch	VMD	Virtual Mouse Device
 0Dh	VKD	Virtual Keyboard Device
 0Eh	VCD	Virtual COMM Device
 0Fh	VPD	Virtual Printer Device
 10h	VHD	Virtual Hard Disk Device (BlockDev in Windows3.1)
 11h	VMCPD
 12h	EBIOS	Reserve EBIOS page (e.g., on PS/2)
 13h	BIOSXLAT	Map ROM BIOS API between prot & V86 mode
 14h	VNETBIOS	Virtual NetBIOS Device
 15h	DOSMGR
 16h	WINLOAD
 17h	SHELL
 18h	VMPoll
 19h	VPROD
 1Ah	DOSNET	assures network integrity across VMs
 1Bh	VFD	Virtual Floppy Device
 1Ch	VDD2	Secondary display adapter
 1Dh	WINDEBUG
 1Eh	TSRLoad	TSR instance utility
 1Fh	BiosHook	BIOS interrupt hooker VxD
 20h	Int13
 21h	PageFile	Paging File device
 22h	SCSI
 23h	MCA_POS
 24h	SCSIFD	SCSI FastDisk device
 25h	VPEND	Pen device
 26h	APM	Advanced Power Management

Note

     	The high bit of the VxD ID is reserved for future use. The
next 10 bits are the OEM # which is assigned by Microsoft. The
low 5 bits are the device number.

Call VTD.386 entry point with:
AX = 0000h get VTD version number
    Return: AH = major version
    AL = minor version
AX = 0100h get current clock tick time
    Return: EDX:EAX = clock tick time in 840ns units since Windows was
started
AX = 0101h get current system time in milliseconds
    Return: EAX = time in milliseconds that Windows has been running
AX = 0102h get current virtual machine time
    Return: EAX = cumulative amount of time the virtual machine has
been active, in milliseconds

Note

     	should only be called directly when TOOLHELP.DLL TimerCount() cannot
  be called


INT 2F AX=1685

2F - MS WINDOWS - SWITCH VMs AND CALLBACK

AX = 1685h
BX = VM ID of virtual machine to switch to
CX = flags
bit 0 wait until interrupts enabled
bit 1 wait until critical section unowned
bits 2-15 reserved (zero)
DX:SI = priority boost (see VMM.INC)
ES:DI -> FAR procedure to callback

Return

        CF set on error
    AX = error code
01h invalid VM ID
02h invalid priority boost
03h invalid flags
CF clear if successful
    event will be or has been called

Notes

      	some DOS devices, such as networks, need to call functions in a
  specific VM. This call forces the appropriate VM to be installed.
the callback procedure must preserve all registers and return with IRET

SeeAlso

    INT 2F AX=1683    INT 15 AX=1117


INT 2F AX=1686

2F - DOS Protected-Mode Interface - DETECT MODE

AX = 1686h

Return

        AX = 0000h if operating in protected mode under DPMI (INT 31 available)
AX nonzero if in real/V86 mode or no DPMI (INT 31 not available)

SeeAlso

    INT 2F AX=1687


INT 2F AX=1687

2F - DOS Protected-Mode Interface - INSTALLATION CHECK

AX = 1687h

Return

        AX = 0000h if installed
    BX = flags
bit 0: 32-bit programs supported
    CL = processor type (02h=80286, 03h=80386, 04h=80486)
    DH = DPMI major version
    DL = two-digit DPMI minor version
    SI = number of paragraphs of DOS extender private data
    ES:DI -> DPMI mode-switch entry point
AX nonzero if not installed

SeeAlso

    INT 2F AX=1686    INT 38 AH=10

Call mode switch entry point with:
AX = flags
    bit 0: set if 32-bit program
ES = real mode segment of buffer for DPMI private data (ignored if
SI was zero)

Return

        CF set on error
    program still in real mode
    AX = error code (DPMI 1.0+)
       8011h unable to allocate all necessary descriptors
       8021h 32-bit program specified, but 16-bit DPMI host
CF clear if successful
    CS = 16-bit selector corresponding to real-mode CS
    SS = selector corresponding to real-mode SS (64K limit)
    DS = selector corresponding to real-mode DS (64K limit)
    ES = selector to program's PSP (100h byte limit)
    FS = GS = 0
    high word of ESP = 0 if 32-bit program
    program now in protected mode

Note

     	this entry point is only called for the initial switch to protected
  mode


INT 2F AX=1688

2F U - MS Windows 3.0, 386MAX v6.01 - GET SELECTOR TO LDT

AX = 1688h

Return

        AX = status??? (0000h for 386MAX)
BX = selector for ???


INT 2F AX=1689

2F U - MS Windows 3.0+ - KERNEL IDLE CALL

AX = 1689h
???

Return

        ???


INT 2F AX=168A

2F - DPMI 0.9+ - GET VENDOR-SPECIFIC API ENTRY POINT

AX = 168Ah
DS:(E)SI = selector:offset of ASCIZ vendor name

Return

        AL = status
    00h successful
       ES:(E)DI -> extended API entry point
    8Ah unsuccessful

Notes

      	the vendor name is used to determine which entry point to return; it is
  case-sensitive
available in protected mode only
32-bit applications use ESI and EDI, 16-bit applications use SI and DI
this call is present but not documented for DPMI 0.9

SeeAlso

    INT 31 AX=0A00

Vendor names:
 "MS-DOS"	??? and 386MAX v6.00+
 "386MAX"	386MAX v6.00+


INT 2F AX=168B

2F - MS Windows 3.1 - SET FOCUS TO SPECIFIED VIRTUAL MACHINE

AX = 168Bh
???

Return

        ???

SeeAlso

    INT 2F AX=1683


INT 2F AX=168C

2F - MS Windows 3.1 - RESTART COMMAND

AX = 168Ch
???

Return

        ???

Note

     	WIN.COM executes specified application


INT 2F AX=1700

2F - MS WINDOWS "WINOLDAP" - IDENTIFY WinOldAp VERSION

AX = 1700h

Return

        AX = 1700h if this version of WINOLDAP doesn't support clipboard
AX <> 1700h
AL = WINOLDAP major version
AH = WINOLDAP minor version

Notes

      	WinOldAp (WINOLDAP.MOD) is a Microsoft Windows extension supporting
  "old" (character-mode) application access to Dynamic Data Exchange,
  menus, and the Windows clipboard.
this installation check DOES NOT follow the format used by other
  software


INT 2F AX=1701

2F - MS WINDOWS "WINOLDAP" - OPEN CLIPBOARD

AX = 1701h

Return

       	AX <> 0	 success
AX = 0	 clipboard is already open


INT 2F AX=1702

2F - MS WINDOWS "WINOLDAP" - EMPTY CLIPBOARD

AX = 1702h

Return

        AX <> 0	 clipboard has been emptied
AX = 0	 failure


INT 2F AX=1703

2F - MS WINDOWS "WINOLDAP" - SET CLIPBOARD DATA

AX = 1703h
DX = clipboard format supported by WinOldAp:
01h text
02h bitmap
03h metafile picture
04h SYLK
05h DIF
06h TIFF
07h OEM text
ES:BX -> data (see below)
SI:CX = size of data

Return

        AX <> 0 data copied into the Clipboard
AX = 0 failure

Table Formats

Bitmap:
Metafile picture:


INT 2F AX=1704

2F - MS WINDOWS "WINOLDAP" - GET CLIPBOARD DATA SIZE

AX = 1704h
DX = clipboard format supported by WinOldAp (see AX=1703h)

Return

       	 DX:AX = size of data in bytes, including any headers
Failure: DX:AX = 0  no data in this format in the Clipboard


INT 2F AX=1705

2F - MS WINDOWS "WINOLDAP" - GET CLIPBOARD DATA

AX = 1705h
DX = clipboard format supported by WinOldAp (see AX=1703h)
ES:BX -> buffer

Return

        AX <> 0	 success
AX = 0	 error, or no data in this format in Clipboard


INT 2F AX=1708

2F - MS WINDOWS "WINOLDAP" - CloseClipboard

AX = 1708h

Return

        AX <> 0 success
AX = 0 failure


INT 2F AX=1709

2F - MS WINDOWS "WINOLDAP" - COMPACT CLIPBOARD

AX = 1709h
SI:CX = desired size in bytes

Return

        DX:AX = number of bytes in largest block of free memory

Note

     	WinOldAp is responsible for including the size of any headers


INT 2F AX=170A

2F - MS WINDOWS "WINOLDAP" - GET DEVICE CAPABILITIES

AX = 170Ah
DX = GDI information index
    00h device driver version
    02h device classification
    04h width in mm
    06h height in mm
    08h width in pixels
    0Ah height in pixels
    0Ch bits per pixel
    0Eh number of bit planes
    10h number of brushes supported by device
    12h number of pens supported by device
    14h number of markers supported by device
    16h number of fonts supported by device
    18h number of colors
    1Ah size required for device descriptor
    1Ch curve capabilities
    1Eh line capabilities
    20h polygon capabilities
    22h text capabilities
    24h clipping capabilities
    26h bitblt capabilities
    28h X aspect
    2Ah Y aspect
    2Ch length of hypotenuse of aspect
    58h logical pixels per inch of width
    5Ah logical pixels per inch of height

Return

       	 AX = integer value of the desired item
device classification
    00h vector plotter
    01h raster display
    02h raster printer
    03h raster camera
    04h character-stream, PLP
    05h Metafile, VDM
    06h display-file
curve capabilities
    bit 0  circles
    bit 1  pie wedges
    bit 2  chord arcs
    bit 3  ellipses
    bit 4  wide lines
    bit 5  styled lines
    bit 6  wide styled lines
    bit 7  interiors
line capabilities
    bit 1  polylines
    bit 2  markers
    bit 3  polymarkers
    bit 4  wide lines
    bit 5  styled lines
    bit 6  wide styled lines
    bit 7  interiors
polygon capabilities
    bit 0  polygons
    bit 1  rectangles
    bit 2  trapezoids
    bit 3  scanlines
    bit 4  wide borders
    bit 5  styled borders
    bit 6  wide styled borders
    bit 7  interiors
text capabilities
    bit 0  output precision character
    bit 1  output precision stroke
    bit 2  clippping precision stroke
    bit 3  90-degree character rotation
    bit 4  arbitrary character rotation
    bit 5  independent X and Y scaling
    bit 6  double-size
    bit 7  integer scaling
    bit 8  continuous scaling
    bit 9  bold
    bit 10 italic
    bit 11 underline
    bit 12 strikeout
    bit 13 raster fonts
    bit 14 vector fonts
    bit 15 reserved
clipping capabilities
    00h none
    01h clipping to rectangles
raster capabilities
    bit 0  simple bitBLT
    bit 1  device requires banding support
    bit 2  device requires scaling support
    bit 3  supports >64K bitmap

Note

       This function returns the device-capability bits for the given display


INT 2F AX=1900

2F U - DOS 4.x only SHELLB.COM - INSTALLATION CHECK

AX = 1900h

Return

        AL = 00h  not installed
     FFh  installed


INT 2F AX=1901

2F U - DOS 4.x only SHELLB.COM - SHELLC.EXE INTERFACE

AX = 1901h
BL = 00h if SHELLC transient
     01h if SHELLC resident
DS:DX -> far call entry point for resident SHELLC.EXE

Return

        ES:DI -> SHELLC.EXE workspace within SHELLB.COM

Note

     	SHELLB.COM and SHELLC.EXE are parts of the DOS 4.x shell


INT 2F AX=1902

2F U - DOS 4.x only SHELLB.COM - COMMAND.COM INTERFACE

AX = 1902h
ES:DI -> ASCIZ full filename of current batch file, with at least the
 final filename element uppercased
DS:DX -> buffer for results

Return

        AL = 00h  failed, either
  (a) final filename element quoted at ES:DI does not match
      identity of shell batch file quoted as parameter of most
      recent call of SHELLB command, or
  (b) no more Program Start Commands available.
AL= FFh	 success, then:
memory at DS:[DX+1] onwards filled as:
DX+1:	BYTE	count of bytes of PSC
DX+2: N BYTEs	Program Start Command text
BYTE	0Dh terminator
Explanation: COMMAND.COM executes the result of this call in preference to
reading a command from a batch file. Thus the batch file does not
advance in execution for so long as SHELLB provides PSCs from its
workspace. The PSCs are planted in SHELLB workspace by SHELLC, the user
menu interface. The final PSC of a sequence is finished with a
GOTO COMMON, which causes a loop back in the batch file which called
SHELLC so as to execute SHELLC again. The check on batch file name
permits PSCs to CALL nested batch files while PSCs are still stacked
up for subsequent execution.


INT 2F AX=1903

2F U - DOS 4.x only SHELLB.COM - COMMAND.COM interface

AX = 1903h
ES:DI -> ASCIZ batch file name as for AX=1902h

Return

        AL = FFh if quoted batch file name matches last SHELLB parameter
AL = 00h if it does not


INT 2F AX=1904

2F U - DOS 4.x only SHELLB.COM - SHELLB transient to TSR intrface

AX = 1904h

Return

        ES:DI -> name of current shell batch file:
WORD	number of bytes of name following
BYTEs	(8 max) uppercase name of shell batch file


INT 2F AX=1A00

2F - DOS 4+ ANSI.SYS - INSTALLATION CHECK

AX = 1A00h

Return

        AL = FFh if installed

Notes

      	AVATAR.SYS also responds to this call
documented for DOS 5+, but undocumented for DOS 4.x


INT 2F AX=1A00

2F - AVATAR.SYS - INSTALLATION CHECK

AX = 1A00h
BX = 4156h ('AV')
CX = 4154h ('AT')
DX = 4152h ('AR')

Return

        AL = FFh if installed
    CF clear
    BX = AVATAR protocol level supported
    CX = driver type
0000h AVATAR.SYS
4456h DVAVATAR.COM inside DESQview window
    DX = 0016h

Notes

      	AVATAR also identifies itself as ANSI.SYS if BX, CX, or DX differ from
  the magic values
AVATAR.SYS is a CON replacement by George Adam Stanislav which
  interprets AVATAR command codes in the same way that ANSI interprets
  ANSI command codes


INT 2F AX=1A01

2F U - DOS 4+ ANSI.SYS internal - GET/SET DISPLAY INFORMATION

AX = 1A01h
CL = function
    7Fh for GET
    5Fh for SET
DS:DX -> parm block as for INT 21,AX=440Ch,CX=037Fh/035Fh respectively

Return

        CF set on error
    AX = error code (many non-standard)
CF clear if successful
    AX destroyed

Note

     	presumably this is the DOS IOCTL interface to ANSI.SYS

SeeAlso

    INT 2F AX=1A02    INT 21 AX=440C


INT 2F AX=1A02

2F U - DOS 4+ ANSI.SYS internal - MISCELLANEOUS REQUESTS

AX = 1A02h
DS:DX -> parameter block (see below)

Note

     	DOS 5.0 chains to previous handler if AL > 02h on call

SeeAlso

    INT 2F AX=1A01

Table Formats

Parameter block:


INT 2F AX=1A21

2F - AVATAR.SYS - SET DRIVER STATE

AX = 1A21h (AL='!')
DS:SI -> command string with one or more state characters
CX = length of command string

Return

        CF set on error (invalid subfunction)
CF clear if successful

Note

     	the characters in the state string are interpreted left to right, and
  need not be in any particular order

SeeAlso

    INT 2F AX=1A3F

Values of state characters:
 'a'	activate driver
 'd'	disable driver
 'f'	use fast screen output
 'g'	always convert gray keys (+ and -) to function keys
 'G'	never convert gray keys
 'l'	convert gray keys only when ScrollLock active
 's'	use slow screen output
 't'	Tandy 1000 keyboard (not yet implemented)


INT 2F AX=1A3C

2F U - AVATAR.SYS v0.11 - ???

AX = 1A3Ch
???

Return

        CX = 0000h


INT 2F AX=1A3E

2F U - AVATAR.SYS v0.11 - ???

AX = 1A3Eh
CL = ???
CH = ???
DL = ???
DH = ???

Return

        CL = ???
CH = ???
DL = ???
DH = ???


INT 2F AX=1A3F

2F - AVATAR.SYS - QUERY DRIVER STATE

AX = 1A3Fh (AL='?')
ES:DI -> buffer
CX = length of buffer in bytes

Return

        CF clear
CX = actual size of returned info

Note

     	the returned information consists of multiple letters whose meanings
  are described under AX=1A21h

SeeAlso

    INT 2F AX=1A21


INT 2F AX=1A42

2F - AVATAR Serial Dispatcher - INSTALL IRQ3 HANDLER

AX = 1A42h
BX = 4156h ('AV')
ES:DI -> FAR handler for serial port using IRQ3
DS = data segment needed by handler

Return

        AX = 1A42h if ASD not installed
   = 0000h if no more room
   else handle to use when uninstalling

Notes

      	the handler need not save/restore registers or signal EOI to the
  interrupt controller
the handler should return AX=0000h if the interrupt was meant for it,
  and either leave AX unchanged or return a non-zero value otherwise
the most recently installed handler will be called first, continuing
  to earlier handlers until one returns AX=0000h

SeeAlso

    INT 2F AX=1A43    INT 2F AX=1A62


INT 2F AX=1A43

2F - AVATAR Serial Dispatcher - INSTALL IRQ4 HANDLER

AX = 1A43h
BX = 4156h ('AV')
ES:DI -> FAR handler for serial port using IRQ4
DS = data segment needed by handler

Return

        AX = 1A43h if ASD not installed
   = 0000h if no more room
   else handle to use when uninstalling

Notes

      	(see AX=1A42h)

SeeAlso

    INT 2F AX=1A42    INT 2F AX=1A63


INT 2F AX=1A44

2F - AVATAR.SYS v0.11+ - GET DATA SEGMENT

AX = 1A44h
BX = 4156h ('AV')

Return

        AX = 0000h
DS = data segment
CX = size of data segment

Note

     	AVATAR.SYS calls this function whenever it is invoked.	If each
  process under a multitasker hooks this function and provides a
  separate data segment, AVATAR.SYS becomes fully reentrant.

SeeAlso

    INT 2F AX=1A21    INT 2F AX=1A3F


INT 2F AX=1A52

2F U - AVATAR.SYS v0.11 - GET ???

AX = 1A52h
CX = size of buffer
ES:DI -> buffer

Return

        ??? copied into user buffer

Note

     	the maximum size of the data which may be copied is returned by
  AX=1A72h

SeeAlso

    INT 2F AX=1A72


INT 2F AX=1A53

2F U - AVATAR.SYS v0.11 - ???

AX = 1A53h
CL = ??? (00h-05h)
???

Return

        ???


INT 2F AX=1A62

2F - AVATAR Serial Dispatcher - UNINSTALL IRQ3 HANDLER

AX = 1A62h
BX = 4156h ('AV')
CX = handle for IRQ routine returned by AX=1A42h

SeeAlso

    INT 2F AX=1A42    INT 2F AX=1A63


INT 2F AX=1A63

2F - AVATAR Serial Dispatcher - UNINSTALL IRQ4 HANDLER

AX = 1A63h
BX = 4156h ('AV')
CX = handle for IRQ routine returned by AX=1A43h

SeeAlso

    INT 2F AX=1A43    INT 2F AX=1A62


INT 2F AX=1A72

2F U - AVATAR.SYS v0.11 - GET ??? SIZE

AX = 1A72h

Return

        CX = maximum size of ???

SeeAlso

    INT 2F AX=1A52


INT 2F AX=1A7B

2F U - AVATAR.SYS v0.11 - ???

AX = 1A7Bh

Return

        AX = 0000h
CX = 0000h


INT 2F AX=1A7D

2F U - AVATAR.SYS v0.11 - ???

AX = 1A7Dh

Return

        AX = ???


INT 2F AX=1AAD

2F U - AVATAR.SYS v0.11 - ???

AX = 1AADh
DX = 0000h
CX = subfunction (00h-0Ch)
???

Return

        AX = 0000h if DX was nonzero
???


INT 2F AX=1B00

2F U - DOS 4+ XMA2EMS.SYS extension internal - INSTALLATION CHECK

AX = 1B00h

Return

        AL = FFh if installed

Note

     	XMA2EMS.SYS extension is only installed if DOS has page frames to hide.
This extension hooks onto INT 67/AH=58h and returns from that call data
  which excludes the physical pages being used by DOS.

SeeAlso

    INT 2F AH=1B"FRAME INFO"


INT 2F AH=1B

2F U - DOS 4+ XMA2EMS.SYS extension internal - GET HIDDEN FRAME INFORMATION

AH = 1Bh
AL <> 00h
DI = hidden physical page number

Return

        AX = FFFFh if failed (no such hidden page)
AX = 0000h if OK, then
     ES = segment of page frame
     DI = physical page number

Notes

      	this corresponds to the data edited out of the INT 67/AH=58h call
FASTOPEN makes this call with AL = FFh

SeeAlso

    INT 2F AX=1B00


INT 2F AX=2300

2F - DR-DOS 5.0 GRAFTABL - INSTALLATION CHECK

AX = 2300h

Return

        AH = FFh

Note

     	this installation check does not follow the usual format

SeeAlso

    INT 2F AH=23


INT 2F AH=23

2F - DR-DOS 5.0 GRAFTABL - GET GRAPHICS DATA

AH = 23h
AL nonzero

Return

        AH = FFh
ES:BX -> graphics data

SeeAlso

    INT 2F AX=2300


INT 2F AX=2700

2F - DR-DOS 6.0 TaskMAX - INSTALLATION CHECK

AX = 2700h

Return

        AL = 00h not installed
   = FFh installed


INT 2F AX=2701

2F - DR-DOS 6.0 TaskMAX - GET STATUS

AX = 2701h

Return

        AX = maximum simultaneous tasks
BX = index into TASK_IDS of current foreground task
CX = currently-active tasks
DX = version number (DR-DOS 6.0 = 0001h)
ES:SI -> TASK_IDS
ES:DI -> name table (array of 8-byte names, NUL-terminated if <8 chars)

Notes

      	do not attempt to create a new task if CX == AX
the task's index is its position on the task menu, while its ID is the
  position within the internal task name table

SeeAlso

    INT 2F AX=2714    INT 2F AX=2716


INT 2F AX=2702

2F - DR-DOS 6.0 TaskMAX - GET PER-TASK EMS LIMIT

AX = 2702h

Return

        DX = maximum pages INT 67/AH=42h will report available

Note

     	TaskMAX does not limit EMS allocations other than by limiting the
  amount which is reported as being available at a given time

SeeAlso

    INT 2F AX=2703    INT 67 AH=42


INT 2F AX=2703

2F - DR-DOS 6.0 TaskMAX - SET PER-TASK EMS LIMIT

AX = 2703h
DX = maximum pages INT 67/AH=42h should report available

Return

        DX = new maximum for reporting

SeeAlso

    INT 2F AX=2702    INT 67 AH=42


INT 2F AX=2704

2F - DR-DOS 6.0 TaskMAX - REGISTER/UNREGISTER TASK MANAGER

AX = 2704h
DL = subfunction
    00h unregister task manager
    01h register task manager

Return

        DL = status
    00h registered
    01h unregistered

Notes

      	a task manager replaces TaskMAX's menu system with its own user
  interface; while one is registered, the TaskMAX hotkeys and
  Ctrl-Alt-Del invoke the manager rather than the built-in menu system
unregister the task manager before terminating it

SeeAlso

    INT 2F AX=2705


INT 2F AX=2705

2F - DR-DOS 6.0 TaskMAX - ENABLE/DISABLE DIRECT SWITCHING

AX = 2705h
DL = subfunction
    00h disable keystrokes for switching to next/prev/specified task
    01h enable

Return

        nothing

Note

     	should only be called by a registered task manager (see AX=2704h)

SeeAlso

    INT 2F AX=2704    INT 2F AX=2706


INT 2F AX=2706

2F - DR-DOS 6.0 TaskMAX - SWITCH TO SPECIFIED TASK

AX = 2706h
DX = task index (see AX=2701h) of task to be activated

Return

        DX = task index of previously-active task

SeeAlso

    INT 2F AX=2705    INT 2F AX=2707    INT 2F AX=2715


INT 2F AX=2707

2F - DR-DOS 6.0 TaskMAX - CREATE NEW TASK

AX = 2707h
DS:DX -> ASCIZ pathname of executable
ES:BX -> parameter block (see below)
CX = number of ticks before automatic return to task manager
(0000h = run until termination or explicitly switched)

Return

        DX = new task's task index (FFFFh if task terminated)

SeeAlso

    INT 2F AX=2706    INT 2F AX=2708

Table Formats

Parameter block:


INT 2F AX=2708

2F - DR-DOS 6.0 TaskMAX - DELETE TASK

AX = 2708h
DX = task index

Return

        DX = FFFFh (task deleted)

Notes

      	this call should only be used for abnormal task termination, after
  first checking for open files with AX=270Ch; should not be used
  with programs that allocate EMS or XMS memory
switches to specified task first

SeeAlso

    INT 2F AX=2707


INT 2F AX=2709

2F - DR-DOS 6.0 TaskMAX - NAME TASK

AX = 2709h
DX = task index
DS:SI -> 8-byte name (8 NULs = remove name)

Return

        AL = task flags
    00h ID unused or task terminated
    01h ID in use, task name table entry valid
    81h ID in use, task name fixed
BX = task ID
ES:DI -> name in task name table (see AX=2701h)

Note

     	the task retains the given name until it terminates or the name is
  removed by specifying a name of 8 NULs.

SeeAlso

    INT 2F AX=2701    INT 2F AX=2707


INT 2F AX=270A

2F - DR-DOS 6.0 TaskMAX - CONVERT TASK INDEX TO TASK ID

AX = 270Ah
DX = task index

Return

        DX = task ID (FFFFh if index invalid)

Note

     	task IDs stay constant, while indexes can change when other tasks are
  deleted

SeeAlso

    INT 2F AX=2701    INT 2F AX=270B


INT 2F AX=270B

2F - DR-DOS 6.0 TaskMAX - CONVERT TASK ID TO TASK INDEX

AX = 270Bh
DX = task ID

Return

        DX = task index (FFFFh if task not active)

SeeAlso

    INT 2F AX=270A


INT 2F AX=270C

2F - DR-DOS 6.0 TaskMAX - CHECK OPEN FILES

AX = 270Ch
DX = task index

Return

        AX = number of files currently open for specified task

SeeAlso

    INT 2F AX=2708


INT 2F AX=270D

2F - DR-DOS 6.0 TaskMAX - CHECK IF TASK RUNNING PRIMARY COMMAND INTERPRETER

AX = 270Dh
DX = task index

Return

        DX = status
    0000h if primary command interpreter (COMMAND.COM, etc.) running
    0001h if not in root shell for task

Note

     	TaskMAX will return 0001h if the specified task has spawned another
  command interpreter with AX=2707h

SeeAlso

    INT 2F AX=2707    INT 2F AX=270C


INT 2F AX=270E

2F - DR-DOS 6.0 TaskMAX - GET/SET TEXT PASTE LEAD-IN

AX = 270Eh
CX = length of string (max 15 keystrokes, 0000h to get current string)
DS:SI -> pasting lead-in string (character/scan-code pairs)

Return

        ES:DI -> current lead-in string

Note

     	the specified sequence of keystrokes is sent to the application before
  every line of a text-mode spreadsheet paste

SeeAlso

    INT 2F AX=270F    INT 2F AX=2710    INT 2F AX=2713


INT 2F AX=270F

2F - DR-DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE LEAD-IN

AX = 270Fh
CX = length of string (max 15 keystrokes, 0000h to get current string)
DS:SI -> pasting lead-in string (character/scan-code pairs)

Return

        ES:DI -> current lead-in string

Note

     	the specified sequence of keystrokes is sent to the application before
  every number in a numeric-mode spreadsheet paste

SeeAlso

    INT 2F AX=270E    INT 2F AX=2710    INT 2F AX=2711    INT 2F AX=2713


INT 2F AX=2710

2F - DR-DOS 6.0 TaskMAX - GET/SET PASTE LINE TERMINATOR STRING

AX = 2710h
CX = length of string (max 15 keystrokes, 0000h to get current string)
DS:SI -> pasting lead-in string (character/scan-code pairs)

Return

        ES:DI -> current lead-in string

Note

     	the specified sequence of keystrokes is sent to the application after
  every line of a spreadsheet paste operation

SeeAlso

    INT 2F AX=270E    INT 2F AX=270F    INT 2F AX=2713


INT 2F AX=2711

2F - DR-DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE DECIMAL POINT

AX = 2711h
DX = ASCII code for separator (FFFFh to get current)

Return

        DL = current separator character

SeeAlso

    INT 2F AX=270F


INT 2F AX=2712

2F - DR-DOS 6.0 TaskMAX - INITIATE EXPORTING TASK DATA

AX = 2712h
DX = task index


INT 2F AX=2713

2F - DR-DOS 6.0 TaskMAX - INITIATE PASTE OPERATION

AX = 2713h
DX = task index
CX = past mode
    0000h alphanumeric
    0001h numeric
    0002h text

SeeAlso

    INT 2F AX=270E    INT 2F AX=270F    INT 2F AX=2710    INT 2F AX=2711


INT 2F AX=2714

2F - DR-DOS 6.0 TaskMAX - GET SWAP SPACE INFO

AX = 2714h

Return

        CX = total KB of swap space
DX = available KB of swap space

SeeAlso

    INT 2F AX=2701


INT 2F AX=2715

2F - DR-DOS 6.0 TaskMAX - SWITCH TO TASK MANAGER

AX = 2715h

Return

        only after calling task is again selected

SeeAlso

    INT 2F AX=2706


INT 2F AX=2716

2F - DR-DOS 6.0 TaskMAX - GET PASTE BUFFER STATUS

AX = 2716h

Return

        AX = 0000h if AX=2716h,AX=2717h,AX=2718h supported
    CX = bytes in paste buffer
    DX = current generation number (updated after every copy operation)

SeeAlso

    INT 2F AX=2701    INT 2F AX=2713    INT 2F AX=2714    INT 2F AX=2717    INT 2F AX=2718


INT 2F AX=2717

2F - DR-DOS 6.0 TaskMAX - PASTE DATA DIRECTLY TO APPLICATION BUFFER

AX = 2717h
CX = bytes in destination buffer
ES:DI -> destination buffer

Return

        AX = 0000h if function supported
    CX = bytes actually copied (FFFFh if buffer too small)
    DX = current generation number for paste buffer

Note

     	the destination buffer may be too small if another task adds more data
  to the paste buffer after the AX=2716h call but before this call

SeeAlso

    INT 2F AX=2713    INT 2F AX=2716    INT 2F AX=2718


INT 2F AX=2718

2F - DR-DOS 6.0 TaskMAX - COPY DATA DIRECTLY INTO PASTE BUFFER

AX = 2718h
CX = bytes in source buffer
DS:SI -> source buffer (plain ASCII, lines terminated with CR LF)

Return

        AX = 0000h if function supported
    CX = bytes actually copied
    DX = current generation number for paste buffer

SeeAlso

    INT 2F AX=2712    INT 2F AX=2716    INT 2F AX=2717


INT 2F AH=2A

2F - Gammafax DOS Dispatcher INTERFACE

AH = 2Ah

Note

     	details not available at this time

SeeAlso

    INT 2F AX=8000"FaxBIOS"    INT 2F AX=C000"MTEZ"    INT 2F AX=CB00    INT 2F AX=CBDD    INT 66BitFax


INT 2F AX=3900

2F - Kingswood TSR INTERFACE - COMPATIBILITY MODE

AX = 3900h

Return

        AL = status
    00h not installed
    FFh one or more TSRs using this interface is installed

Note

     	this function is provided to that the multiplex number will appear used
  to other programs

SeeAlso

    INT 2F AH=39    /BL=00


INT 2F AH=39

2F - Kingswood TSR INTERFACE - INSTALLATION CHECK

AH = 39h
BL = 00h
AL = TSR ID number (01h-FFh, currently only 01h-0Eh used) (see below)

Return

        AL = status
    00h not installed
    FFh installed
DX = segment address of resident module

Note

     	All of Kingswood Software's TSRs use this interface.  Usually the
  resident module is installed by allocating a block of upper memory,
  setting its owner ID to 0008h (DOS data), and filling the MCB name
  field with the TSR's name.

SeeAlso

    INT 2F AX=3900    INT 2F AH=39    /BL=01

Values for TSR ID number:
 01h TSR Windows
 02h NOBUSY
 03h CD STACK
 04h DISK WATCH
 05h PUSHBP
 06h ALIAS
 07h KEYMACRO
 08h SLOWDOWN
 09h ANSIGRAB
 0Ah TEE
 0Bh FASTMOUS
 0Ch EXTWILD
 0Dh BREAKOUT
 0Eh STOPDISK

Table Formats

TSR modules:
Interrupt list entry:


INT 2F AH=39

2F - Kingswood TSR INTERFACE - REMOVAL CHECK

AH = 39h
BL = 01h
AL = TSR ID number (01h-FFh) (see AH=39h/BL=00h)

Return

        AL = status
    00h not ready to be removed
    FFh resident module may be removed by deassigning the interrupts
hooked by the TSR and deallocating the TSR's memory block
AH,BX,CX,DX,ES may be destroyed

SeeAlso

    INT 2F AX=3900    INT 2F AH=39    /BL=00


INT 2F AH=39

2F - Kingswood TSR INTERFACE - APPLICATION-SPECIFIC FUNCTION CALLS

AH = 39h
BL = function number (02h-FFh)
AL = TSR ID number (01h-FFh)
CX,DX,SI,DI,DS,ES may contain parameters

Return

        as appropriate for the called function

SeeAlso

    INT 2F AX=3900    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=02


INT 2F AX=3901

2F - Kingswood TSR Windows - OPEN WINDOW

AX = 3901h
BL = 02h

Return

        AX = error code (0000h if successful)

Notes

      	opens the next TSR window on top of any others.	 Only three
  TSR windows can be opened at any one time.  The three windows
  are all 40x11 characters, partly overlapping.

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=03h    INT 2F AX=3901    /BL=05h    INT 2F AX=3901    /BL=06


INT 2F AX=3901

2F - Kingswood TSR Windows - HIDE WINDOWS

AX = 3901h
BL = 03h

Return

        AX = error code (0000h if successful)

Notes

      	Hide any visible TSR windows from view.

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=02h    INT 2F AX=3901    /BL=05


INT 2F AX=3901

2F - Kingswood TSR Windows - SHOW WINDOWS

AX = 3901h
BL = 04h

Return

        AX = error code (0000h if successful)

Notes

      	Re-display all TSR windows after a HIDE WINDOWS call.

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=02h    INT 2F AX=3901    /BL=03


INT 2F AX=3901

2F - Kingswood TSR Windows - CLOSE WINDOW

AX = 3901h
BL = 05h

Return

        AX = error code (0000h if successful)

Notes

      	Close the last opened TSR window.

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=02


INT 2F AX=3901

2F - Kingswood TSR Windows - SET WINDOW TITLE

AX = 3901h
BL = 06h
DS:SI -> title string

Return

        AX = error code (0000h if successful)

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=02


INT 2F AX=3901

2F - Kingswood TSR Windows - POSITION CURSOR

AX = 3901h
BL = 07h
CH = Y coordinate (0-10)
CL = X coordinate (0-39)

Return

        AX = error code (0000h if successful)

Note

     	the hardware cursor is always disabled when a TSR window is opened;
  this call only sets a text position

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=08h    INT 2F AX=3901    /BL=09


INT 2F AX=3901

2F - Kingswood TSR Windows - DISPLAY STRING

AX = 3901h
BL = 08h
DS:SI -> string

Return

        AX = error code (0000h if successful)

Notes

      	The text is not clipped.
This routine understands Tab, NewLine and Carriage Return

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=07


INT 2F AX=3901

2F - Kingswood TSR Windows - SCROLL WINDOW

AX = 3901h
BL = 09h
CL = scroll direction: 00h up, FFh down, 00h clear window

Return

        AX = error code (0000h if successful)

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=07


INT 2F AX=3901

2F - Kingswood TSR Windows - SOUND BEEPER

AX = 3901h
BL = 0Ah
DX = sound divisor, or 0 for silence.
     (divide 1843200 by required frequency to get value for DX)
CL = sound length in 18.2 Hz clock ticks

Return

        AX = error code (0000h if successful)

SeeAlso

    INT 2F AH=39    /BL=00


INT 2F AX=3901

2F - Kingswood TSR Windows - ADD OR REMOVE USER

AX = 3901h
BL = 0Bh
CL = number of users increment: +1 if adding a new user
-1 if removing a user

Return

        AX = error code (0000h if successful)

Note

     	the TSR windows resident module may only be removed when the internal
  user count is zero

SeeAlso

    INT 2F AH=39    /BL=00h    INT 2F AX=3901    /BL=02


INT 2F AX=4000

2F - Windows 3.x (OS/2 2.x???) - GET VIRTUAL DEVICE DRIVER (VDD) CAPABLTIES

AX = 4000h

Return

        AL = 01h does not virtualize video access
     02h virtualizes the video when in text mode
     03h virtualizes the video when in text mode or single plane
 graphics modes
     04h virtualizes the video when in text mode, single plane
 graphics modes, and VGA multiplane modes
     FFh virtualizes the video fully

Note

     	this function is used by display drivers to find out what capabilities
  exist for the VDD driver and also trigger then VDD driver to call
  functions 4005h and 4006h.  This function also gives the Video Driver
  hardware access to the video registers.


INT 2F AX=4001

2F C - OS/2 compatibility box - SWITCHING DOS TO BACKGROUND

AX = 4001h

Note

     	called by OS/2 when the DOS box is about to be placed in the background
  and the video driver should save any necessary state

SeeAlso

    INT 2F AX=4002    INT 2F AX=4005


INT 2F AX=4002

2F C - OS/2 compatibility box - SWITCHING DOS TO FOREGROUND

AX = 4002h

Note

     	called by OS/2 when the DOS box is about to be placed in the foreground
  and the video driver should restore the previously-saved state

SeeAlso

    INT 2F AX=4001    INT 2F AX=4006


INT 2F AX=4003

2F - Windows 3.x - ENTERING VIDEO DRIVER CRITICAL SECTION

AX = 4003h

Note

     	This critical section must be exited within 1 second.

SeeAlso

    INT 2F AX=4004


INT 2F AX=4004

2F - Windows 3.x - EXITING VIDEO DRIVER CRITICAL SECTION

AX = 4004h

SeeAlso

    INT 2F AX=4003


INT 2F AX=4005

2F C - Windows 3.x - SWITCHING DOS TO BACKGROUND

AX = 4005h

Note

     	called by Windows when the DOS box is about to be placed in the
  background and the video driver should save any necessary state
  information

SeeAlso

    INT 2F AX=4001    INT 2F AX=4006


INT 2F AX=4006

2F C - Windows 3.x - SWITCHING DOS TO FOREGROUND

AX = 4006h

Note

     	called by Windows when the DOS box is about to be placed in the
  foreground and the video driver should restore any necessary state
  information

SeeAlso

    INT 2F AX=4002    INT 2F AX=4005


INT 2F AX=4007

2F - Windows 3.x - ENABLE VDD TRAPPING OF VIDEO REGISTERS

AX = 4007h


INT 2F AX=4040

2F - PharLap 286|DOS-Extender Lite v2.5 - ???

AX = 4040h

Return

        BX:CX -> ???


INT 2F AH=41

2F - LAN Manager 2.0 DOS Enhanced NETPOPUP.EXE - NETWORK POP-UP SERVICE

AH = 41h
???

Return

        ???

Note

     	LAN Manager enhanced mode adds features beyond the standard redirector
  file/printer services

SeeAlso

    INT 2F AX=118A    INT 2F AH=42    INT 2F AH=4B


INT 2F AH=42

2F - LAN Manager 2.0 DOS Enhanced MSRV.EXE - MESSENGER SERVICE

AH = 42h
???

Return

        ???

Note

     	LAN Manager enhanced mode adds features beyond the standard redirector
  file/printer services

SeeAlso

    INT 2F AX=118A    INT 2F AH=41    INT 2F AH=4B


INT 2F AX=4300

2F - EXTENDED MEMORY SPECIFICATION (XMS) - INSTALLATION CHECK

AX = 4300h

Return

        AL = 80h XMS driver installed
AL <> 80h no driver

Notes

      	XMS gives access to extended memory and noncontiguous/nonEMS memory
  above 640K
this installation check DOES NOT follow the format used by other
  software

SeeAlso

    INT 2F AX=4310


INT 2F AX=4310

2F - EXTENDED MEMORY SPECIFICATION (XMS) - GET DRIVER ADDRESS

AX = 4310h

Return

        ES:BX -> driver entry point

Note

     	HIMEM.SYS v2.77 chains to previous handler if AH is not 00h or 10h

SeeAlso

    INT 2F AX=4300

Perform a FAR call to the driver entry point with AH set to the function code
AH	function
00h  Get XMS version number
     Return: AX = XMS version (in BCD, AH=major, AL=minor)
     BX = internal revision number
     DX = 0001h if HMA (1M to 1M + 64K) exists
  0000h if HMA does not exist
01h  Request High Memory Area (1M to 1M + 64K)
     DX = memory in bytes (for TSR or device drivers)
  FFFFh if application program
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,90h,91h,92h) (see below)
02h  Release High Memory Area
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,90h,93h) (see below)
03h  Global enable A20, for using the HMA
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,82h) (see below)
04h  Global disable A20
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,82h,94h) (see below)
05h  Local enable A20, for direct access to extended memory
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,82h) (see below)
06h  Local disable A20
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,82h,94h) (see below)
07h  Query A20 state
     Return: AX = 0001h enabled
= 0000h disabled
     BL = error code (00h,80h,81h) (see below)
08h  Query free extended memory, not counting HMA
     BL = 00h (some implementations leave BL unchanged on success)
     Return: AX = size of largest extended memory block in K
     DX = total extended memory in K
     BL = error code (00h,80h,81h,A0h) (see below)
09h  Allocate extended memory block
     DX = Kbytes needed
     Return: AX = 0001h success
   DX = handle for memory block
= 0000h failure
   BL = error code (80h,81h,A0h) (see below)
0Ah  Free extended memory block
     DX = handle of block to free
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,A2h,ABh) (see below)
0Bh  Move extended memory block
     DS:SI -> EMM structure (see below)
     Note: if either handle is 0000h, the corresponding offset is
   considered to be an absolute segment:offset address in
   directly addressable memory
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h-82h,A3h-A9h) (see below)
0Ch  Lock extended memory block
     DX = handle of block to lock
     Return: AX = 0001h success
   DX:BX = 32-bit linear address of locked block
= 0000h failure
   BL = error code (80h,81h,A2h,ACh,ADh) (see below)
0Dh  Unlock extended memory block
     DX = handle of block to unlock
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,A2h,AAh) (see below)
0Eh  Get handle information
     DX = handle for which to get info
     Return: AX = 0001h success
   BH = block's lock count
   BL = number of free handles left
   DX = block size in K
= 0000h failure
   BL = error code (80h,81h,A2h) (see below)
0Fh  Reallocate extended memory block
     DX = handle of block
     BX = new size of block in K
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,81h,A0h-A2h,ABh) (see below)
10h  Request upper memory block (nonEMS memory above 640K)
     DX = size of block in paragraphs
     Return: AX = 0001h success
   BX = segment address of UMB
   DX = actual size of block
= 0000h failure
   BL = error code (80h,B0h,B1h) (see below)
   DX = largest available block
11h  Release upper memory block
     DX = segment address of UMB to release
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,B2h) (see below)
12h  (XMS v3.0) Reallocate upper memory block
     DX = segment address of UMB to resize
     BX = new size of block in paragraphs
     Return: AX = 0001h success
= 0000h failure
   BL = error code (80h,B0h,B2h) (see below)
34h  (QEMM 5.11 only, undocumented) ???
44h  (QEMM 5.11 only, undocumented) ???
88h  (XMS v3.0) Query free extended memory
     Return: EAX = largest block of extended memory, in K
     BL = status
 00h success
 80h not implemented (i.e. on a 286 system)
 81h VDISK detected
 A0h all extended memory allocated
     ECX = physical address of highest byte of memory
(valid even on error codes 81h and A0h)
     EDX = total Kbytes of extended memory (0 if status A0h)
89h  (XMS v3.0) Allocate any extended memory
     EDX = Kbytes needed
     Return: AX = 0001h success
    DX = handle for allocated block (free with AH=0Ah)
= 0000h failure
    BL = status (80h,81h,A0h,A1h,A2h) (see below)
8Eh  (XMS v3.0) Get extended EMB handle information
     DX = handle
     Return: AX = 0001h success
    BH = block's lock count
    CX = number of free handles left
    EDX = block size in K
= 0000h failure
    BL = status (80h,81h,A2h) (see below)
8Fh  (XMS v3.0) Reallocate any extended memory block
     DX = unlocked handle
     EBX = new size in K
     Return: AX = 0001h success
= 0000h failure
    BL = status (80h,81h,A0h-A2h,ABh) (see below)

Notes

      	HIMEM.SYS requires at least 256 bytes free stack space
the XMS driver need not implement functions 10h through 12h to be
  considered compliant with the standard

BUG

    	HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions
  are called

Table Formats

EMM structure:
Error codes returned in BL:
00h successful
80h function not implemented
81h Vdisk was detected
82h an A20 error occurred
8Eh a general driver error
8Fh unrecoverable driver error
90h HMA does not exist
91h HMA is already in use
92h DX is less than the /HMAMIN= parameter
93h HMA is not allocated
94h A20 line still enabled
A0h all extended memory is allocated
A1h all available extended memory handles are allocated
A2h invalid handle
A3h source handle is invalid
A4h source offset is invalid
A5h destination handle is invalid
A6h destination offset is invalid
A7h length is invalid
A8h move has an invalid overlap
A9h parity error occurred
AAh block is not locked
ABh block is locked
ACh block lock count overflowed
ADh lock failed
B0h only a smaller UMB is available
B1h no UMB's are available
B2h UMB segment number is invalid


INT 2F AH=44

2F U - ???

AH = 44h
AL = function (at least 0Bh, 15h, 17h)
???

Return

        ???

Note

     	called by Codeview for Windows

SeeAlso

    INT 2F AH=86


INT 2F AX=4500

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - INSTALLATION CHECK

AX = 4500h

Return

        AL = 01h if PROF.COM installed
AL = 02h if VPROD.386 installed

SeeAlso

    INT 2F AX=4501    INT 2F AX=4502


INT 2F AX=4501

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SETUP PROFILER

AX = 4501h
BX = CSIPS buffer size in KB (first parameter for ProfSetup)
CX = output limit in KB (second parameter for ProfSetup)

Note

     	this call is not supported by PROF.COM

SeeAlso

    INT 2F AX=4502    INT 2F AX=4503


INT 2F AX=4502

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SET SAMPLING RATE

AX = 4502h
BL = sampling rate for PROF.COM (0 < BL <= 13)
    (01h = 8192/s, 04h = 1024/s, 08h = 32/s, 0Dh = 1/s)
CX = sampling rate for VPROD.386

Note

     	for PROF.COM, this programs the CMOS clock by setting BL+2 as the
  low four bits of CMOS register 0Ah.  The interruption rate is
  1 SHL (15 - BL) per second.

SeeAlso

    INT 2F AX=4501    INT 2F AX=4503


INT 2F AX=4503

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - START PROFILING

AX = 4503h

Notes

      	Profiling is also turned on by the key combinations
  LeftShift + RightShift + Alt
  LeftShift + RightShift + Ctrl
for PROF.COM, this call programs the CMOS clock by reading register
  0Ch, and setting bit 6 of register 0Bh.  It then makes sure that IRQ8
  is unmasked

SeeAlso

    INT 2F AX=4504


INT 2F AX=4504

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - STOP PROFILING

AX = 4504h

Notes

      	profiling is also turned off by the key combination
  LeftShift + RightShift
for PROF.COM, this programs the CMOS clock by reading register 0Ch
  and clearing bit 6 of register 0Bh.  It then masks IRQ8.

SeeAlso

    INT 2F AX=4503    INT 2F AX=4505    INT 2F AX=4506    INT 2F AX=4507


INT 2F AX=4505

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - CLEAR PROFILING DATA

AX = 4505h

SeeAlso

    INT 2F AX=4503    INT 2F AX=4504    INT 2F AX=4506


INT 2F AX=4506

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFlush"

AX = 4506h

SeeAlso

    INT 2F AX=4505    INT 2F AX=4507


INT 2F AX=4507

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFinish"

AX = 4507h

Note

     	this call is essentially a "ProfStop" (AX=4504h) followed by
  "ProfFlush" (AX=4506h)

SeeAlso

    INT 2F AX=4504    INT 2F AX=4505    INT 2F AX=4506


INT 2F AX=4508

2F U - Microsoft Profiler (PROF.COM/VPROD.386) - ALTERNATE SEGDEBUG IFACE

AX = 4508h
BX = ordinal (or 0000h)
CX = segment
DX = instance (or 0000h)
SI = type (or 0000h)
ES:DI -> ASCIZ module name

Notes

      	this call is an alternate entry to the profiler's SEGDEBUG
  interface, but only to function 0, for notifying the profiler of
  each new segment loaded.  The SHOWHITS utility then examines the
  profiler's output files (CSIPS.DAT and SEGENTRY.DAT) in conjunction
  with symbol files to provide information in a useful form.
this call does not have a corresponding Windows function

SeeAlso

    INT 2F AX=4500


INT 2F AX=4601

2F U - DOS 5.0 kernel - ???

AX = 4601h

Return

        ???

Note

     	copies the MCB following the caller's PSP memory block into DOS data
  segment

SeeAlso

    INT 2F AX=4602


INT 2F AX=4602

2F U - DOS 5.0 kernel - ???

AX = 4602h

Return

        ???

Note

     	copies previously copied MCB from DOS data segment into MCB following
  caller's PSP memory block

SeeAlso

    INT 2F AX=4601


INT 2F AH=46

2F U - ???

AH = 46h
AL = subfunction (03h,04h)

Return

        ???

Note

     	these two subfunctions are called by MS Windows 3.0


INT 2F AX=4653

2F - F-PROT v1.x only - F-LOCK.EXE

AX = 4653h
CX = 0002h
BX = subfunction
    0000h  installation check
Return: AX = FFFFh
    0001h  uninstall
Return: AX,BX,ES destroyed
    0002h  disable (v1.08 and below only)
    0003h  enable (v1.08 and below only)

Note

     	F-LOCK is part of the F-PROT virus/trojan protection package by Fridrik
  Skulason

SeeAlso

    INT 2F AX=4653    /CX=0003h    INT 2F AX=CA00    INT 21 AX=4BEE


INT 2F AX=4653

2F - F-PROT v1.x only - F-XCHK.EXE

AX = 4653h
CX = 0003h
BX = subfunction
    0000h  installation check
Return: AX = FFFFh
    0001h  uninstall
Return: AX,BX,ES destroyed

Note

     	F-XCHK is part of the F-PROT virus/trojan protection package by Fridrik
  Skulason

SeeAlso

    INT 2F AX=4653    /CX=0002h    INT 2F AX=4653    /CX=0004h    INT 2F AX=CA00


INT 2F AX=4653

2F - F-PROT v1.x only - F-POPUP.EXE

AX = 4653h
CX = 0004h
BX = subfunction
    0000h  installation check
Return: AX = FFFFh
    0001h  uninstall
Return: AX,BX,ES destroyed
    0002h  disable (v1.08 and below only)
   display message (v1.14+)
other registers: ???
    0003h  enable (v1.08 and below only)
   display message (v1.14+)
other registers: ???
Return: AX = key pressed by user

Note

     	F-POPUP is part of the F-PROT virus/trojan protection package by
  Fridrik Skulason

SeeAlso

    INT 2F AX=4653    /CX=0003h    INT 2F AX=4653    /CX=0005h    INT 2F AX=CA00


INT 2F AX=4653

2F - F-PROT v1.x only - F-DLOCK.EXE

AX = 4653h
CX = 0005h
BX = subfunction
    0000h installation check
Return: AX = FFFFh
    0001h uninstall
Return: AX,BX,ES destroyed

Note

     	F-DLOCK is part of the F-PROT virus/trojan protection package by
  Fridrik Skulason

SeeAlso

    INT 2F AX=4653    /CX=0004h    INT 2F AX=CA00


INT 2F AX=4680

2F U - MS Windows v3.0 - INSTALLATION CHECK

AX = 4680h

Return

        AX = 0000h MS Windows 3.0 running in real (/R) or standard (/S) mode,
   or DOS 5 DOSSHELL active
   nonzero  no Windows, Windows prior to 3.0, or Windows3 in enhanced
    mode

Note

     	Windows 3.1 finally provides an installation check which works in all
  modes (see AX=160Ah)

SeeAlso

    INT 2F AX=1600    INT 2F AX=160A


INT 2F AX=4800

2F - DOS v5.0 DOSKEY - INSTALLATION CHECK

AX = 4800h

Return

        AL = nonzero if installed

SeeAlso

    INT 2F AX=4810


INT 2F AX=4810

2F - DOS v5.0 DOSKEY - READ INPUT LINE FROM CONSOLE

AX = 4810h
DS:DX -> line buffer (see INT 21/AH=0Ah)

Return

        AX = 0000h if successful

Notes

      	the first byte (length) of the buffer MUST be 80h, or DOSKEY chains to
  the previous handler
if the user's input is a macro name, no text is placed in the buffer
  even though AX=0000h on return; the program must immediately issue
  this call again to retrieve the expansion of the macro.  Similarly,
  if the user enters a special parameter such as $*, this call must
  be repeated to retrieve the expansion; on the second call, DOSKEY
  overwrites the macro name on the screen with its expansion.

SeeAlso

    INT 2F AX=4800    INT 21 AH=0A


INT 2F AX=4A00

2F CU - DOS v5.0 - SINGLE-FLOPPY LOGICAL DRIVE CHANGE NOTIFICATION

AX = 4A00h
CX = 0000h
DH = new drive number
DL = current drive number

Return

        CX = FFFFh to skip "Insert diskette for drive X:" message

Note

     	called by MSDOS 5.00 IO.SYS just before displaying the message
  "Insert diskette for drive X:" on single-floppy systems


INT 2F AX=4A01

2F - DOS 5.0 - QUERY FREE HMA SPACE

AX = 4A01h

Return

        BX = number of bytes available in HMA (0000h if DOS not using HMA)
ES:DI -> start of available HMA area (FFFFh:FFFFh if not using HMA)

Note

     	called by Windows 3.1 DOSX.EXE

SeeAlso

    INT 2F AX=4310    INT 2F AX=4A02


INT 2F AX=4A02

2F - DOS 5.0 - ALLOCATE HMA SPACE

AX = 4A02h
BX = number of bytes

Return

        ES:DI -> start of allocated HMA block or FFFFh:FFFFh
BX destroyed

Notes

      	this call is not valid unless DOS is loaded in the HMA (DOS=HIGH)
called by Windows 3.1 DOSX.EXE

SeeAlso

    INT 2F AX=4A01


INT 2F AX=4A05

2F U - DOS 5.0 DOSSHELL - TASK SWITCHING API???

AX = 4A05h
SI = function
    0000h reset???
    0001h ???
    0002h ???
    0003h ???
    0004h ???
BL = ???
    0005h ???
    0006h get ???
Return: ES:DI -> ???
    0007h get ???
Return: AX = ???
    0008h get ???
Return: DX:AX -> ???
    0009h get ???
Return: ES = ???
    000Ah ???
BL = ???
ES:DI -> ???
    000Bh get ???
Return: AX = ???
    000Ch ???
BL = ???
Return: DX:AX -> ???

Notes

      	DOSSHELL chains to the previous handler if SI is not one of the values
  listed above
the DOSSWAP.EXE module calls functions 03h,04h,05h,07h,08h,09h,0Ch
the Windows 3.1 DSWAP.EXE and WSWAP.EXE task switchers use these calls

SeeAlso

    INT 2F AX=4B01


INT 2F AX=4A06

2F CU - ??? - GET MEMORY SIZE

AX = 4A06h
DX = segment following last byte of conventional memory

Return

        DX = segment following last byte of memory available for use by DOS

Note

     	called by MSDOS 5.00 IO.SYS startup code if the signature "RPL" is
  present three bytes beyond the INT 2F handler; this call overrides
  the value returned by INT 12

SeeAlso

    INT 12


INT 2F AX=4A10

2F - SMARTDRV v4.00+ - API

AX = 4A10h
BX = command
    0000h installation check and hit ratios
Return: AX = BABEh if installed
    DX:BX = cache hits
    DI:SI = cache misses
    CX = ???
    BP = version (4.00 = 0400h)
    0001h reset cache
    0002h flush buffers
    0003h status
BP = drive # (0=A, 1=B, etc.)
DL = subfunction
    00h only get information
    01h turn on read cache
    02h turn off read cache
    03h turn on write cache
    04h turn off write cache
Return: AX = BABEh if OK
DL = status
    bit 7  not cached
    bit 6  write-through
    bit 5  ???
    bits 0-4 drive # (0=A, 1=B...)
DL = FFh if drive does not exist
Note:	If the read cache is off, reads will not be cached,
  but writes will continue to be cached if the write-
  cache is enabled.
    0004h cache size
Return: AX = ???
BX = largest number of elements
CX = size of elements in bytes
DX = number of elements under Windows
    0005h double-buffer status
BP = drive # (0=A, 1=B...)
Return: AX = BABEh if double-buffered
    0007h ???
Return: DI = random number???
    000Ah get table pointer???
Return: ES:BX -> table of about 10 bytes or 5 words. Seems to
be words pointing to memory addresses
containing info??? (see below)
    1234h signal serious error
pops up a message box saying that a serious error occurred and
  to hit R to retry.
!!!

Note

     	at least partially supported by PC-Cache v8.0 (details not yet known)

SeeAlso

    INT 21 AX=4402"SMARTDRV"    INT 21 AX=4403"SMARTDRV"

Table Formats

Data table:


INT 2F AH=4B

2F - LAN Manager 2.0 DOS Enh NETWKSTA.EXE - NETWORK WORKSTATION REDIRECTOR

AH = 4Bh
???

Return

        ???

Note

     	LAN Manager enhanced mode adds features beyond the standard redirector
  file/printer services

SeeAlso

    INT 2F AX=118A    INT 2F AH=41    INT 2F AH=42


INT 2F AX=4B01

2F C - DOS v5.0 TASK SWITCHER - BUILD CALLOUT CHAIN

AX = 4B01h
CX:DX -> task switcher entry point (see AX=4B02h)
ES:BX = 0000h:0000h

Return

        ES:BX -> callback info structure (see below) or 0000h:0000h

Notes

      	called by the task switcher
this function is hooked by clients which require notification of task
  switcher activities; the call must first be passed on to the prior
  handler with registers unchanged using a simulated interrupt.	 On
  return, the client must build a callback info structure and store
  the returned ES:BX in the "next" field, then return the address of
  its own callback info structure.
a client program must add itself to the notification chain if it
  provides services to other programs; before terminating, it must
  remove itself from the chain by calling the task switcher's entry
  point with AX=0005h (see AX=4B02h)
the task switcher entry point should not be saved, as it is subject to
  change and will be provided on any notification call
the Windows 3.1 Standard Mode supports this API

SeeAlso

    INT 2F AX=160B    INT 2F AX=4B02

Table Formats

Callback info structure:
Notification function is called with:
AX = function
    0000h switcher initialization
Return: AX = 0000h if OK to load
   = nonzero to abort task switcher
    0001h query suspend
BX = session ID
Return: AX = 0000h if OK to switch session
   = 0001h if not
    0002h suspend session
BX = session ID
interrupts disabled
Return: AX = 0000h if OK to switch session
   = 0001h if not
    0003h activate session
BX = session ID
CX = session status flags
bit 0: set if first activation of session
bits 1-15: reserved (0)
interrupts disabled
Return: AX = 0000h
    0004h session active
BX = session ID
CX = session status flags
bit 0: set if first activation of session
bits 1-15: reserved (0)
Return: AX = 0000h
    0005h create session
BX = session ID
Return: AX = 0000h if OK to create session
   = 0001h if not
    0006h destroy session
BX = session ID
Return: AX = 0000h
    0007h switcher termination
BX = flags
    bit 0: set if calling switcher is only switcher loaded
    bits 1-15: reserved (0)
Return: AX = 0000h
ES:DI -> task switcher entry point (see AX=4B02h)

Notes

      	function 0000h is generally called by the program which controls or
  invokes the task switcher, rather than by the task switcher itself;
  the entry point supplied to this function is not necessarily the
  entry point to the task switcher itself, and may be 0000h:0000h.  If
  any client indicates that loading is not possible, all clients will
  be called with function 0007h; thus it is possible for a client to
  receive a termination notice without a corresponding initialization
  notice.
except for functions 0002h and 0003h, the notification handler is
  called with interrupts enabled and may make any INT 21h function
  call; interrupts must not be enabled in functions 0002h and 0003h
function 0007h may be called with ES:DI = 0000h:0000h if the entry
  point is no longer valid


INT 2F AX=4B02

2F - DOS v5.0 TASK SWITCHER - INSTALLATION CHECK

AX = 4B02h
BX = 0000h
ES:DI = 0000h:0000h

Return

        ES:DI = 0000h:0000h if task switcher not loaded
ES:DI -> task switcher entry point (see below) if loaded
    AX = 0000h

Notes

      	the returned entry point is that for the most-recently loaded task
  switcher; the entry points for prior task switchers may be determined
  with the "get version" call (see below)
this function is supported by PC Tools v8+ CPTASK

SeeAlso

    INT 2F AX=4A05    INT 2F AX=4B03

Call task switcher entry point with:
AX = 0000h get version
Return: CF clear if successful
    AX = 0000h
    ES:BX -> task switcher version struct (see below)
CF set if unsupported function
AX = 0001h test memory region
ES:DI -> first byte to be tested
CX = size of region to test
Return: CF clear if successful
    AX = memory type of tested region
0000h global
0001h global and local
0002h local (replaced on session switch)
CF set if unsupported function
AX = 0002h suspend switcher
ES:DI -> new task switcher's entry point
Return: CF clear if successful
    AX = state
0000h switcher has been suspended
0001h switcher not suspended, new switcher must
abort
0002h switcher not suspended, but new switcher
may run anyway
CF set if unsupported function
AX = 0003h resume switcher
ES:DI -> new task switcher's entry point
Return: CF clear if successful
    AX = 0000h
CF set if unsupported function
AX = 0004h hook notification chain
ES:DI -> callback info structure to be added to chain
(see AX=4B01h)
Return: CF clear if successful
    AX = 0000h
CF set if unsupported function
AX = 0005h unhook notification chain
ES:DI -> callback info structure to be removed from chain
(see AX=4B01h)
Return: CF clear if successful
    AX = 0000h
CF set if unsupported function
AX = 0006h query API support
BX = asynchronous API identifier
Return: CF clear if successful
    AX = 0000h
    ES:BX -> API info structure (see below) for the
client which provides the highest
level of
CF set if unsupported function

Table Formats

Task switcher version structure:
API info structure:


INT 2F AX=4B03

2F - DOS v5.0 TASK SWITCHER - ALLOCATE SWITCHER ID

AX = 4B03h
ES:DI -> task switcher entry point (see AX=4B02h)

Return

        AX = 0000h
BX = switcher ID (0001h-000Fh), or 0000h if no more available

Notes

      	if a task switcher has determined that it is the first to be loaded, it
  must allocate an identifier for itself and provide this function to
  all subsequent task switchers; if it is not the first to be loaded,
  it must call this function to allocate an ID.	 The switcher ID is
  used as the high four bits of all session identifiers to ensure
  unique session IDs.
if no more switcher IDs are available, the new task switcher making the
  call must terminate or disable itself
the task switcher providing the identifiers may call the new task
  switcher's entry point as needed
this call is available from within DOSSHELL even if the task switcher
  is not installed
this function is supported by PC Tools v8+ CPTASK, but appears to
  always return an ID of 0000h

SeeAlso

    INT 2F AX=4B02    INT 2F AX=4B04


INT 2F AX=4B04

2F - DOS v5.0 TASK SWITCHER - FREE SWITCHER ID

AX = 4B04h
BX = switcher ID
ES:DI -> task switcher entry point (see AX=4B02h)

Return

        AX = 0000h
BX = status
    0000h successful
    other error (invalid ID or ID not allocated)

Notes

      	called by a task switcher when it exits, unless it was the first loaded
  and is providing the support for AX=4B03h and AX=4B04h
the task switcher providing the identifiers may call the terminating
  task switcher's entry point as needed
this call is available from within DOSSHELL even if the task switcher
  is not installed
this call is supported by PC Tools v8+ CPTASK, but appears to return
  sucessfully no matter which ID is given

SeeAlso

    INT 2F AX=4B02    INT 2F AX=4B03


INT 2F AX=4B05

2F - DOS v5.0 DOSSHELL TASK SWITCHER - IDENTIFY INSTANCE DATA

AX = 4B05h
ES:BX = 0000h:0000h
CX:DX -> task switcher entry point (see AX=4B02h)

Return

        ES:BX -> startup info structure (see below) or 0000h:0000h

Notes

      	called by task switcher
clients with instance data should hook this call, pass it through to
  the previous handler with unchanged registers using a simulated
  interrupt.  On return, the client should create a startup info
  structure (see below), store the returned ES:BX in the "next"
  field, and return the address of the created structure in ES:BX
all MSDOS function calls are available from within this call

SeeAlso

    INT 2F AX=1605    INT 2F AX=160B    INT 2F AX=4B02

Table Formats

Startup info structure:
One instance data record in array:


INT 2F AX=4E53

2F U - SilverNET - API

AX = 4E53h ("SN")
BH = major function class??? (04h and 02h are common)
BL = subclass???
CX = function number???
???

Return

        AX = return value or status
???

Program

         SilverNET is an SMB-compatible peer-to-peer NOS for DOS or
  Windows systems, by Net-Source of Santa Clara, CA.

SeeAlso

    INT 2F AX=B800    INT 2F AX=B809


INT 2F AH=53

2F U - ???

AH = 53h
AL = subfunction (0Bh, maybe others???)

Return

        ???

Note

     	called by MS Windows 3.1 POWER.DRV; hooked by MS Mouse driver v8.20+
  and PC-Cache v8.0

SeeAlso

    INT 2F AH=54    INT 33 AX=002F


INT 2F AH=54

2F U - ???

AH = 54h
AL = subfunction (00h, 01h, maybe others???)

Return

        ???

Note

     	called by MS Windows 3.1 POWER.DRV

SeeAlso

    INT 2F AH=53


INT 2F AX=5453

2F - TesSeRact RAM-RESIDENT PROGRAM INTERFACE

AX = 5453h
BX = subfunction
    00h installation check
CX = 0000h
DS:SI -> 8-char blank-padded name
Return: AX = FFFFh installed
CX = ID number of already-installed copy
   = anything else, not installed
CX = ID number for TSR when installed
    01h get user parameters
CX = TSR ID number
Return: AX = 0000h successful
   ES:BX -> user parameter block (see below)
   = nonzero failed
    02h check if hotkey in use
CL = scan code of hot key
Return: AX = FFFFh hot key conflicts with another TSR
     otherwise safe to use the hotkey
    03h replace default critical error handler
CX = TSR ID number
DS:SI -> new routine for INT 24h
Return: AX = nonzero, unable to install new handler
    04h get internal data area
CX = TSR ID number
Return: AX = 0000h
    ES:BX -> TSR's internal data area (see below)
   = nonzero, TSR not found
    05h set multiple hot keys
CX = TSR ID number
DL = number of additional hot keys to allocate
DS:SI -> table of hot keys
BYTE  hotkey scan code
BYTE  hotkey shift state
BYTE  flag value to pass to TSR (nonzero)
Return: AX = nonzero, unable to install hot keys
    06h - 0Fh reserved
    10h enable TSR
CX = TSR ID number
Return: AX = nonzero, unable to enable
    11h disable TSR
CX = TSR ID number
Return: AX = nonzero, unable to disable
    12h unload TSR
CX = TSR ID number
Return: AX = nonzero, invalid TSR number
Note: if any interrupts used by TSR have been grabbed by
another TSR, the TesSeRact routines will wait until
it is safe to remove the indicated TSR from memory
    13h restart TSR
CX = TSR ID number of TSR which was unloaded but is still in
     memory
Return: AX = nonzero, unable to restart TSR
    14h get status word
CX = TSR ID number
Return: AX = FFFFh invalid ID number
   = other, successful
BX = bit flags
    15h set status word
CX = TSR ID number
DX = new bit flags
Return: AX = nonzero, unable to set status word
    16h get INDOS state at popup
CX = TSR ID number
Return: AX = 0000h successful
    BX = value of INDOS flag
    17h - 1Fh reserved
    20h call user procedure
CX = TSR ID number
ES:DI -> user-defined data
Return: AX = 0000h successful
    21h stuff keystrokes into keyboard buffer
CX = TSR ID number
DL = speed
    00h stuff keystrokes only when buffer is empty
    01h stuff up to four keystrokes per clock tick
    02h stuff up to 15 keystrokes per clock tick
DH = scan code flag
    if zero, buffer contains alternating ASCII and scan codes
    if nonzero, buffer contains only ASCII codes
SI = number of keystrokes
ES:DI -> buffer to stuff
Return: AX = 0000h success
     F0F0h user aborted with ^C or ^Break
     other unable to stuff keystrokes
    22h (v1.10) trigger popup
CX = TSR ID number
Return: AX = 0000h success, TSR will either pop up or beep to
   indicate that it is unable to pop up
     nonzero invalid ID number
    23h (v1.10) invoke TSR's background function
CX = TSR ID number
Return: AX = 0000h success
     FFFFh not safe to call background function
     nonzero invalid ID number
    24h - 2Fh reserved

Notes

      	Borland's THELP.COM popup help system for Turbo Pascal and Turbo C
  (versions 1.x and 2.x only) fully supports the TesSeRact API, as
  do the SWAP?? programs by Innovative Data Concepts.
AVATAR.SYS supports functions 00h and 01h (only the first three fields
  of the user parameter block) using the name "AVATAR  "

SeeAlso

    INT 2F AX=CAFE

Table Formats

User Parameter Block:
TSR internal data area:


INT 2F AX=5500

2F U - DOS v5.0 - COMMAND.COM INTERFACE

AX = 5500h

Return

        AX = 0000h
DS:SI -> entry point table

Notes

      	used to access the shareable portion of COMMAND.COM, which may have
  been moved into the HMA; only the primary COMMAND.COM retains this
  portion
procedures called from a dispatcher in COMMAND's resident portion;
  most assume that the segment address of the resident portion is on
  the stack and are thus not of general use


INT 2F AX=6282

2F U - PC Tools v7.0+ VDEFEND, VSAFE, VWATCH, DATAMON - SET ??? ADDRESS

AX = 6282h
CX:DX -> ??? or 0000h:0000h
DI = 0000h ???
     FFFFh ???
     other segment of ???

Return

        BX = 0062h

Note

     	if CX:DX = 0000h:0000h on entry, the ??? address is not changed
  (DATAMON only)

SeeAlso

    INT 13 AH=FA"VSAFE"    INT 21 AH=FA"VDEFEND"


INT 2F AX=6284

2F U - PC Tools v7.0+ DATAMON - INSTALLATION CHECK

AX = 6284h
BX = 0000h
CX = 0000h

Return

        AX = segment of resident code
BX = 5555h
CX = 5555h


INT 2F AX=6284

2F U - PC Tools v7.0+ DATAMON - GET ???

AX = 6284h
BX = 0001h
CX = 0001h

Return

        AX:BX -> ???
CX = BX


INT 2F AX=6284

2F U - PC Tools v7.0+ DATAMON - GET ???

AX = 6284h
BX = 0002h
CX = 0002h

Return

        AX = ???
BX = ???
CX = AX
DX = BX


INT 2F AX=6284

2F U - PC Tools v7.0+ DATAMON - SET ??? FLAGS

AX = 6284h
BX = 0003h
CX = flags
    bit 12: ???
10: ???
 5: ???
 3: ???
DX = flags
    bit 15: ???


INT 2F AX=6284

2F U - PC Tools v8.0+ DATAMON - ???

AX = 6284h
BX = 0004h
CX = 0004h

Return

        AX = 5555h
BX = ??? (0800h)
CX = ??? (FCCCh)


INT 2F AX=6400

2F - SCRNSAV2.COM - INSTALLATION CHECK

AX = 6400h

Return

        AL = 00h not installed
     FFh installed

Note

     	SCRNSAV2.COM is a screen saver for PS/2's with VGA by Alan Ballard

SeeAlso

    INT 10 AX=5555


INT 2F AX=7000

2F - License Service API - INSTALLATION CHECK

AX = 7000h
CX = license server index (0000h to 001Fh)

Return

        AL = status
    00h not installed
    FFh installed

Notes

      	The License Service API is being maintained by Microsoft but is being
  supported by a large number of companies including Apple, Banyan,
  DEC, HP, Lotus, Microsoft, Novell, Software Publishers Association,
  and Wordperfect (not a complete list!)
Each license service provider must search for the next free index
  slot to use

SeeAlso

    INT 2F AX=7001    INT 2F AX=7003    INT 2F AX=7004    INT 2F AX=7005


INT 2F AX=7001

2F - License Service API - REQUEST License

AX = 7001h
CX = license server index (0000h to 001Fh)
DS:DX -> SLSREQEUST structure (see below)

Return

        AX = status
    0000h success
    else  provider error code
ES:BX = provider specific handle for the license context

SeeAlso

    INT 2F AX=7002    INT 2F AX=7004    INT 2F AX=7005

Table Formats

SLSREQUEST structure:
SLSCHALLENGE structure:


INT 2F AX=7002

2F - License Service API - RELEASE License

AX = 7002h
CX = license server index (0000h to 001Fh)
DS:DX -> SLSRELEASE structure (see below)
ES:BX = provider specific handle for the license context

Return

        AL = status
    00h not installed
    FFh installed

SeeAlso

    INT 2F AX=7001    INT 2F AX=7005

Table Formats

SLSRELEASE structure:


INT 2F AX=7003

2F - License Service API - UPDATE

AX = 7003h
CX = license server index (0000h to 001Fh)
DS:DX -> SLSUPDATE structure
ES:BX = provider specific handle for the license context

Return

        AL = status
    00h not installed
    FFh installed

SeeAlso

    INT 2F AX=7004    INT 2F AX=7005

Table Formats

SLSUPDATE structure:


INT 2F AX=7004

2F - License Service API - GET ERROR

AX = 7004h
CX = license server index (0000h to 001Fh)
DS:DX -> SLSGETERROR structure (see below)
ES:BX = provider specific handle for the license context

Return

        AL = status
    00h not installed
    FFh installed

SeeAlso

    INT 2F AX=7000    INT 2F AX=7001

Table Formats

SLSGETERROR structure:


INT 2F AX=7005

2F - License Service API - QUERY License

AX = 7005h
CX = license server index (0000h to 001Fh)
DS:DX -> SLSQUERY structure (see below)
ES:BX = provider specific handle for the license context

Return

        AL = status
    00h not installed
    FFh installed

SeeAlso

    INT 2F AX=7001    INT 2F AX=7002

Table Formats

SLSQUERY structure:


INT 2F AX=7200

2F - SRDISK v1.30 - INSTALLATION CHECK

AX = 7200h

Return

        AL = FFh if installed
    ES = segment of device driver header (see below)

Note

     	SRDISK is a freeware resizeable RAMdisk by Marko Kohtala

Table Formats

Device driver header:


INT 2F AX=7A00

2F - Novell NetWare - LOW-LEVEL API (IPX) INSTALLATION CHECK

AX = 7A00h

Return

        AL = 00h not installed
   = FFh installed
ES:DI -> FAR entry point for routines accessed exclusively
through INT 7A in NetWare versions through 2.0a.  Call
with same values as INT 7A

SeeAlso

    INT 2F AX=7AFF    /BX=0000h    INT 2F AX=D800    INT 64Novell"    INT 7ANovell


INT 2F AX=7A10

2F - Novell NetWare - TBMI v2.0 - GET TBMI STATUS

AX = 7A10h

Return

        DH = major TBMI version number
DL = minor TBMI version number
CX = segment address of TBMI resident part
BX = status word of TBMI
bit 0: INT2F intercepted by TBMI
bit 1: INT7A intercepted by TBMI
bit 2: INT64 intercepted by TBMI
bits 3-14: reserved or unused ???
bit 15: outstanding task ID was detected

Note

     	TBMI is the Task-Switched Buffer Manager Interface

SeeAlso

    INT 2F AX=7A11    INT 2F AX=7A12    INT 2F AX=7A13    INT 2F AX=7A14


INT 2F AX=7A11

2F - Novell NetWare - TBMI v2.0 - GET INT2F HANDLERS

AX = 7A11h

Return

        ES:BX -> old INT 2F handler
DS:DX -> TBMI INT 2F handler

SeeAlso

    INT 2F AX=7A10    INT 2F AX=7A12    INT 2F AX=7A13


INT 2F AX=7A12

2F - Novell NetWare - TBMI v2.0 - GET INT64 HANDLERS

AX = 7A12h

Return

        ES:BX -> old INT 64 handler
DS:DX -> TBMI INT 64 handler

SeeAlso

    INT 2F AX=7A10    INT 2F AX=7A11    INT 2F AX=7A13


INT 2F AX=7A13

2F - Novell NetWare - TBMI v2.0 - GET INT7A HANDLERS

AX = 7A13h

Return

        ES:BX = old INT 7A handler
DS:DX = TBMI INT 7A handler

SeeAlso

    INT 2F AX=7A10    INT 2F AX=7A11    INT 2F AX=7A12


INT 2F AX=7A14

2F - Novell NetWare - TBMI v2.0 - GET STATISTICS

AX = 7A14h
CX = statistic to retrieve
    0000h available diagnostic functions???
Return: CX = maximum available function??? (000Ch for v2.0)
    0001h buffers in use
Return: CX = TBMI buffers currently in use
    0002h maximum buffers used
Return: CX = maximum number of buffers ever in use
    0003h unavailable buffers
Return: CX = count of unavailable TBMI buffers
    0004h old interrupt usage
Return: CX = TBMI accesses to intercepted old vectors INT 2F,
INT 64, and INT 7A
    0005h far call usage
Return: CX = TBMI accesses to IPX/SPX far call handler (not
including internal accesses)
    0006h task buffering
Return: CX = TBMI task buffering status (enabled/disabled or
disable/enable switch count???)
    0007h current task ID
Return: CX = TBMI current task ID number (0000h if ???)
    0008h outstanding ID count
Return: CX = number of outstanding TBMI IDs
    0009h configured ECBs
Return: CX = number of TBMI Event Control Blocks configured
    000Ah configured data ECBs
Return: CX = number of TBMI data ECBs configured
    000Bh configured sockets
Return: CX = number of TBMI sockets configured (from NETCFG)
    000Ch current sockets
Return: CX = number of TBMI sockets currently in use

SeeAlso

    INT 2F AX=7A10


INT 2F AX=7A1B

2F - Novell NetWare - TBMI v2.0 - RESERVED???

AX = 7A1Bh

Note

     	this call merely performs an IRET


INT 2F AX=7A20

2F - Novell NetWare - NetWare 4.0 DOS Requester - GET CALL ADDRESS

AX = 7A20h
BX = 0000h

Return

        AX = 0000h on success
    ES:BX -> far call address for DOS Requester

Note

     	the DOS Requester replaces the NetWare Shell (ANETx, NETx) on
  NetWare LAN's as of the release of NetWare 4.0.  It is backward
  compatible with NetWare 2.1x through 3.11 servers as well.


INT 2F AX=7A80

2F C - Novell NetWare - SHELL 3.01d BROADCAST - ABNORMAL EXIT

AX = 7A80h

Return

        nothing

Notes

      	called on abnormal exit of the NetWare shell to notify other Novell
  TSRs that it is unsafe to call the shell in the future.
must be passed through so that all interested programs see the exit
on receiving this call, IPXODI clears an internal pointer to a
  default value; Novell's NETBIOS.EXE clears its INT 21h pointer to
  0000h:0000h and stops calling it

SeeAlso

    INT 2F AX=7A81


INT 2F AX=7A81

2F - Novell NetWare - SHELL 3.01d BROADCAST - SET SHELL INT 21 HANDLER

AX = 7A81h
CX:DX -> shell's INT 21h entry point

Return

        nothing

Notes

      	the shell calls this function as it loads to allow interested TSRs
  and drivers to make a local copy of the shell's entry point
must be passed through so that all interested programs see it


INT 2F AX=7A85

2F - Novell NetWare - shell 3.01 - BROADCAST INFORM

AX = 7A85h
CX = broadcast server number

Return

        CX = 0000h if broadcast message handled by another program
CX unchanged if broadcast not handled


INT 2F AX=7A90

2F U - Novell NetWare - NETBIOS.EXE 3+ - INSTALLATION CHECK

AX = 7A90h

Return

        AL = 00h if present
    BX = ???
    CX = PSP segment of NETBIOS resident code

SeeAlso

    INT 2F AX=7AFE


INT 2F AX=7AFE

2F - Novell NetWare - DOSNP.EXE - INSTALLATION CHECK

AX = 7AFEh

Return

        AL = FFh if present
    ES = (data???) segment of DOSNP

Program

         DOSNP.EXE provides "named pipes" support for DOS workstations running
   NetWare

Note

     	the NetWare shell calls this function and refuses to load if DOSNP is
  present

SeeAlso

    INT 2F AX=7A90


INT 2F AX=7AFF

2F - Novell NetWare - TBMI v2.0 - INSTALLATION CHECK???

AX = 7AFFh
BX = 0000h
CX = 4E65h ("Ne")
DX = 7457h ("tW")
ES:DI -> IPX/SPX special handler (XMS/EMS ???)

Return

        AL = FFh if installed
    CX = configured sockets (14h)
    DS:SI -> data table ???
    ES:DI -> IPX far call handler

Note

     	for IPX/SPX this call reportedly returns DS:DI pointing to the table
  of pointers to service events queue head and tail

SeeAlso

    INT 2F AX=7AFF    /BX=0001


INT 2F AX=7AFF

2F - Novell NetWare - TBMI v2.0, shell v3.01d - INSTALLATION CHECK???

AX = 7AFFh
BX = 0001h
CX = 4E65h ("Ne")
DX = 7457h ("tW")

Return

        AL = FFh if installed
    CX = ???  (8000h)
    SI = ??? (or -> ???) (0002h)
    ES:DI -> IPX far call handler
    ES:DX -> 6-byte data area ???

SeeAlso

    INT 2F AX=7AFF    /BX=0000


INT 2F AX=7F24

2F - Multiplex - ???

AX = 7F24h
???

Return

        ???

Note

     	called by PC/370, an IBM 370 emulator by Donald S. Higgins


INT 2F AX=7F26

2F - Multiplex - ???

AX = 7F26h
???

Return

        ???

Note

     	called by PC/370, an IBM 370 emulator by Donald S. Higgins


INT 2F AX=8000

2F - EASY-NET - INSTALLATION CHECK

AX = 8000h

Return

        AL = 00h not installed
     FFh installed

Note

     	EASY-NET is a shareware two-machine serial-port network


INT 2F AX=8000

2F - Nanosoft, Inc. TurboNET server - INSTALLATION CHECK

AX = 8000h

Return

        AL = FFh if installed
    BX = CS of resident code
    CX = ??? (03FCh)

Note

     	TurboNET is a NetBIOS-based file redirector and server; a demonstration
  version may be downloaded from Nanosoft's BBS

SeeAlso

    INT 2F AX=8100


INT 2F AX=8000

2F - FaxBIOS interface - INSTALLATION CHECK

AX = 8000h
DX = 0000h
DI = 0000h

Return

        AL = FFh if installed
DX:DI -> signature "FaxBiosjpc"

Note

     	FaxBIOS may use any multiplex number from 80h through FFh; to determine
  whether it is installed, it is necessary to poll all multiplex
  numbers for one which returns the above signature

SeeAlso

    INT 2F AH=2A    INT 2F AX=80FB


INT 2F AX=8001

2F - Nanosoft, Inc. TurboNET server - ???

AX = 8001h
DS:SI -> 16-byte buffer for ???

Return

        AH = status
    00h successful
    01h error

Note

     	makes NetBIOS calls


INT 2F AX=80FB

2F - FaxBIOS interface - COMMAND SUBMISSION

AX = 80FBh
BX = function number (see below)
DX:DI -> command buffer (see below)

Return

        AL = FFh if submitted OK
CX = result code (see below)

Note

     	FaxBIOS may use any multiplex number from 80h through FFh

SeeAlso

    INT 2F AX=8000"FaxBIOS"    INT 2F AX=CBDD

Values for function number:
 0001h	SYS_LOGIN
 0002h	SYS_LOGOUT
 0003h	SYS_GET_FAXAPP_INFO
 0004h	STAT_IO_GET
 0005h	STAT_FAXBIOS_GET
 0006h	PDIR_OPEN
 0007h	PDIR_CLOSE
 0008h	PDIR_READ_PERSON
 0009h	PDIR_PARTIAL_READ
 000Ah	PDIR_READ_GROUP
 000Bh	PDIR_READ_MEMBER_LIST
 000Ch	PDIR_WRITE_PERSON
 000Dh	PDIR_WRITE_GROUP
 000Eh	PDIR_DELETE_PERSON
 000Fh	PDIR_DELETE_GROUP
 0010h	PDIR_READ_GROUP_LIST
 0011h	PDIR_IN_GROUP
 0012h	PDIR_OUT_GROUP
 0013h	SCHED_OPEN
 0014h	SCHED_ADD_DEST
 0015h	SCHED_ADD_FILE
 0016h	SCHED_SET_PARAMS
 0017h	SCHED_CANCEL
 0018h	SCHED_CLOSE
 0019h	SLOG_OPEN
 001Ah	SLOG_CLOSE
 001Bh	SLOG_SHORT_ENV_STAT
 001Ch	SLOG_LONG_ENV_STAT
 001Dh	SLOG_DEST_STAT
 001Eh	SLOG_FILE_STAT
 001Fh	SLOG_CANCEL_ENV
 0020h	RLOG_OPEN
 0021h	RLOG_CLOSE
 0022h	RLOG_READ
 0023h	GRAPH_GET_FILE_TYPE
 0024h	GRAPH_EXPORT_FILE
 0025h	GRAPH_GET_LAYOUT_INFO
 0026h	GRAPH_CREATE_FILE
 0027h	GRAPH_CLOSE_FILE
 0028h	GRAPH_CREATE_PAGE
 0029h	GRAPH_WRITE
 002Ah	GRAPH_END_PAGE
 002Bh	GRAPH_OPEN_FILE
 002Ch	GRAPH_GOTO_PAGE
 002Dh	GRAPH_READ
 002Eh	IOCTL_GET
 002Fh	IOCTL_SET
 0030h	IOCTL_ANSWER_FAX
 0031h	IOCTL_DIAL

Values for result code:
 0000h	successful
 0001h	not prepared or servicing another client (busy)
 0002h	call failed due to sharing (LOCKED)
 0003h	logged-in client limit reached (FULL)
 0004h	transport denied (TRANSPORT_DENIED)
 0005h	not implemented (NOT_IMPLEMENTED)
 0006h	aborted while in progress (ABORTED)
 0007h	permissions denied (PERMISSION_DENIED)
 0008h	requested data is no longer valid (NO_LONGER_VALID)
 0080h	unspecified system error occurred
 0081h	an internal file was not found
 0082h	an internal file could not be created
 0083h	an internal file could not be opened
 0084h	an internal file could not be closed
 0085h	error occurred writing to an internal file
 0086h	error occurred reading from an internal file
 0087h	bad or corrupted file encountered
 0088h	an access violation occurred
 0089h	an internal file is empty
 008Ah	insufficient memory to process request
 008Bh	FaxBIOS was unable to issue a handle
 008Ch	an error internal to FaxBIOS occurred
 008Dh	no room on disk
 0100h	unspecified error accessing client file
 0101h	file not found
 0102h	creation fault
 0103h	open fault
 0104h	close fault
 0105h	write fault
 0106h	read fault
 0107h	file corrupted
 0108h	access violation
 0109h	empty file
 0200h	unspecified argument error
 0201h	bad function
 0202h	bad option
 0203h	bad structure size
 0204h	bad buffer size
 0205h	bad client ID
 0300h	unspecified error with token
 0301h	cover sheet token was invalid
 0302h	logo token was invalid
 0303h	signature token was invalid
 0304h	font token was invalid
 0305h	phone directory token was invalid
 0306h	outbound route token was invalid
 0307h	priority token was invalid
 0308h	sort token was invalid
 0309h	billing token was invalid
 0400h	unspecified handle error
 0401h	bad Phone Directory handle
 0402h	bad scheduling handle
 0403h	bad read send log handle
 0404h	bad read receive log handle
 0405h	bad graphics handle
 0500h	data passed in structure was invalid
 0501h	name field given is invalid
 0502h	phone number given is invalid
 0503h	poll code submitted is invalid
 0504h	file type constant was invalid
 0505h	BFT constant not defined or supported
 0506h	resolution not defined or supported
 0507h	page length not defined or supported
 0508h	page width not defined or supported
 0509h	date & time requested are ridiculous
 050Ah	Subject text was not an ASCIIZ string
 050Bh	From text was not an ASCIIZ string
 050Ch	requested envelope ID was not found
 050Dh	requested envelope ID is not valid
 050Eh	envelope requested was not found
 050Fh	destination index is out of range
 0510h	file index is out of range
 0511h	index into receive log is out of range
 0512h	file name specified was incomplete or invalid
 0513h	page selected was out of range
 0514h	bit width more than byte width
 0515h	mode for open is not defined
 0516h	person index is out of range
 0517h	person ID is out of range
 0518h	group index out of range or invalid
 0519h	group ID out of range or invalid
 051Ah	range of indices to read is invalid
 051Bh	group name given is invalid
 051Ch	field_to_use is badly specified
 051Dh	predicate invalid for field specified
 0600h	unspecified client procedure error
 0601h	device of interest is not present
 0602h	device of interest has been removed
 0603h	device of interest is not responding
 0604h	device of interest is disabled
 0605h	could not dial because device was in use
 0606h	maximum destination limit exceeded
 0607h	maximum file limit exceeded
 0608h	scheduling closed with no destination
 0609h	scheduling closed with no files or poll
 060Ah	scheduling closed with no parameters specified
 060Bh	file type specified does not match file
 060Ch	file type specified is not supported
 060Dh	file submitted is not exportable
 060Eh	file type specified is not imageable
 060Fh	error converting file
 0610h	envelope could not be cancelled
 0611h	Phone Directory is full
 0612h	record is already in the Phone Directory
 0613h	selected group in Phone Directory is full
 0614h	person is already in the group
 0615h	person is not in the group & cannot be removed
 0616h	a graphics file to be created already exists
 0617h	a grphics file to be read is empty
 0618h	GRAPH_CREATE_PAGE called before GRAPH_END_PAGE
 0619h	graph read or write attempted without goto or create
 061Ah	graph page contains no data
 061Bh	Phone Directory is already open for this client
 061Ch	schedule log is already open for this client
 061Dh	receive log is aready open for this client
 061Eh	Phone Directory function requires write mode
 0800h	denied exclusive use of the API

Table Formats

SYS_LOGIN command buffer:
SYS_LOGOUT command buffer:
SYS_GET_FAXAPP_INFO command buffer:
STAT_IO_GET command buffer:
STAT_FAXBIOS_GET command buffer:
SCHED_OPEN, SCHED_CANCEL command buffer:
SCHED_ADD_FILE command buffer:
SCHED_CLOSE command buffer:
SLOG_OPEN, SLOG_CLOSE, RLOG_OPEN, RLOG_CLOSE command buffer:
GRAPH_GET_FILE_TYPE command buffer:
GRAPH_CREATE_FILE command buffer:
GRAPH_CLOSE_FILE, GRAPH_END_PAGE command buffer:
GRAPH_CREATE_PAGE command buffer:
GRAPH_WRITE_PAGE command buffer:
GRAPH_OPEN_FILE command buffer:
GRAPH_GOTO_PAGE command buffer:
GRAPH_READ_PAGE command buffer:
IOCTL_ANSWER_FAX command buffer:


INT 2F AX=8100

2F U - Nanosoft, Inc. TurboNET redirector - INSTALLATION CHECK

AX = 8100h

Return

        AL = FFh if installed

Note

     	TurboNET is a NetBIOS-based file redirector and server; a demonstration
  version may be downloaded from Nanosoft's BBS

SeeAlso

    INT 2F AX=8000"TurboNET"


INT 2F AX=8101

2F U - Nanosoft, Inc. TurboNET redirector - ???

AX = 8101h

Return

        AL = ???
DL = ???


INT 2F AX=8102

2F U - Nanosoft, Inc. TurboNET redirector - ???

AX = 8102h

Return

        AL = ???
DL = ???


INT 2F AX=8103

2F U - Nanosoft, Inc. TurboNET redirector - GET MACHINE NAME???

AX = 8103h
ES:DI -> 17-byte buffer

Return

        buffer filled


INT 2F AX=8104

2F U - Nanosoft, Inc. TurboNET redirector - ???

AX = 8104h
BL = ???
BH = ???
CX = ???
DX = ???
DS:SI -> 16-byte buffer containing ???

Return

        AL = 00h ???


INT 2F AX=8105

2F U - Nanosoft, Inc. TurboNET redirector - ???

AX = 8105h
CX = ??? (don't change current value if 0000h)
DX = ??? (don't change current value if 0000h)

Return

        AL = 00h successful


INT 2F AH=82

2F U - Nanosoft, Inc. TurboNET - ???

AH = 82h
???

Return

        ???

Note

     	called by TNR.EXE, the TurboNET redirector configuration program

SeeAlso

    INT 2F AX=8100


INT 2F AX=8200

2F - RESPLAY - SAMPLE/PLAYBACK

AX = 8200h
DX:DI -> start of sample space
CX:BX = length in bytes

Return

        AX = status
    1000h successful
    2000h not initialized (see AX=8210h)
    other RESPLAY not installed

Note

     	RESPLAY is a freeware sound sampling/playback utility by Mark J. Cox

SeeAlso

    INT 2F AX=8201    INT 2F AX=8210


INT 2F AX=8201

2F - RESPLAY - INSTALLATION CHECK

AX = 8201h

Return

        AX = 7746h if installed

SeeAlso

    INT 2F AX=8202


INT 2F AX=8202

2F - RESPLAY - UNINSTALL

AX = 8202h

Return

       	AX = status
    1000h successful

SeeAlso

    INT 2F AX=8201


INT 2F AX=8210

2F - RESPLAY - INITIALIZE

AX = 8210h
BL = sound device
    00h printer port LPT1
    01h printer port LPT2
    02h prototype board at I/O address 0300h
    03h printer port (alternative LPT1)
    04h internal speaker
BH = sample rate in multiples of 250 Hz (14h to A0h)
CL = direction
    00h playback
    01h sample

Return

        AX = status
    1000h successful
    2000h parameter out of range
    other RESPLAY not installed

SeeAlso

    INT 2F AX=8200


INT 2F AH=86

2F U - ???

AH = 86h
AL = function (at least 06h and 07h)
???

Return

        ???

Note

     	called by Codeview for Windows

SeeAlso

    INT 2F AH=44


INT 2F AX=8900

2F - WHOA!.COM - INSTALLATION CHECK

AX = 8900h

Return

        AL = 00h not installed
   = FFh installed

Note

     	WHOA!.COM is a system slow-down utility by Brad D Crandall

SeeAlso

    INT 2F AX=8901    INT 2F AX=8902


INT 2F AX=8901

2F - WHOA!.COM - UNINSTALL

AX = 8901h

Return

        AL = FDh successful
   = FEh error

Note

     	WHOA!.COM is a system slow-down utility by Brad D Crandall

SeeAlso

    INT 2F AX=8900


INT 2F AX=8902

2F - WHOA!.COM - SET DELAY COUNT

AX = 8902h
BX = delay count (larger values slow system down more)

Return

        AL = FDh successful
   = FEh error

Note

     	WHOA!.COM is a system slow-down utility by Brad D Crandall

SeeAlso

    INT 2F AX=8900


INT 2F AX=9000

2F U - RAID - INSTALLATION CHECK

AX = 9000h

Return

        AL = FFh if installed

Note

     	RAID (Resident AID) is a TSR utility program by Ross Neilson Wentworth
  that resides mostly in EMS


INT 2F AX=9001

2F U - RAID - GET ???

AX = 9001h

Return

        DX:AX -> ???

SeeAlso

    INT 2F AX=9000


INT 2F AX=9002

2F U - RAID - GET RESIDENT SEGMENT

AX = 9002h

Return

        AX = segment of resident (conventional memory) portion

SeeAlso

    INT 2F AX=9000


INT 2F AX=9003

2F U - RAID - UNINSTALL

AX = 9003h

Return

        ???

SeeAlso

    INT 2F AX=9000


INT 2F AX=9004

2F U - RAID - GET ???

AX = 9004h

Return

        AX = first available paragraph past end of resident portion???
CX destroyed

SeeAlso

    INT 2F AX=9000


INT 2F AH=92

2F - Couriers LAN E-Mail - API

AH = 92h
AL = function
    00h installation check
    01h uninstall
    02h pop down MICRO.EXE notification window
    03h ???
    04h ???
    05h ???

Return

        ???

SeeAlso

    INT 2F AH=9C


INT 2F AH=92

2F U - PC Tools v8.0 DRIVEMAP - ???

AH = 92h
AL = function (00h-1Eh)
???

Return

        ???
AX = FFFFh if not a valid function number in AL

SeeAlso

    INT 16 AX=FF70


INT 2F AH=93

2F - InnerMission v1.7+ - INSTALLATION CHECK

AH = 93h
BX = CX = AX

Return

        AL = FFh if installed and BX=CX=AX on entry
    BX = segment of resident code
   = 01h if installed but BX or CX differ from AX

Note

     	InnerMission is a shareware graphical screen blanker by Kevin Stokes


INT 2F AH=9C

2F - Couriers LAN E-Mail OPERATOR.EXE - API

AH = 9Ch
AL = subfunction
    01h uninstall

Return

        ???

SeeAlso

    INT 2F AH=92


INT 2F AH=A1

2F - Ergo DOS extenders - INSTALLATION CHECK

AH = A1h
BX = 0081h
AL = which
    FEh OS/286,OS/386
    FFh HummingBoard DOS extender
ES:DI -> 16-byte buffer

Return

        if installed, first four bytes of ES:DI buffer are "IABH"

Note

     	since TKERNEL is a licensed version, it is likely that subfunctions
  BX=0082h and BX=0084h are present and function identically to the
  AX=FBA1h/BX=008xh calls

SeeAlso

    INT 2F AX=ED00    INT 2F AX=FBA1    INT 15 AX=BF02


INT 2F AX=A189

2F U - Biologic HRAMDEV.SYS - API

AX = A189h
BX = subfunction
    0000h set ???
    0001h remove ???
    0002h get status ???
    0003h enable ???
    0004h disable ???
    0005h set ??? flag
    0006h clear ??? flag
    0007h set ??? flag
    0008h clear ??? flag
    0009h set ???
ES:DI -> function-specific arguments
if func 0000h: 20-byte buffer containing ???
if func 0001h: 20-byte buffer for returned ???
if func 0002h: 16-byte buffer for returned ???
if func 0009h: WORD containing ???

Return

        BX = A189h if installed
AH = status
    00h successful
    FFh failed or invalid function number

Notes

      	HRAMDEV.SYS is a part of the shareware package HRAM by Biologic which
  provides improved high memory access under MSDOS 5.0
functions 00h and 01h use a stack of four entries; function 01h always
  removes the values stored with the most recent function 00h call
  which has not yet been matched with a function 01h call.


INT 2F AX=A4E0

2F - Futurus Team - INSTALLATION CHECK

AX = A4E0h

Return

        AL = 52h ("R") if installed
    AH = major version plus 30h ("0")
    ES:BX -> ??? (INT A4 handler???)

Note

     	older versions of Right Hand Man (from which Team evolved) store the
  signature "RH" at offset 103h in the INT 2F handler's segment

SeeAlso

    INT A4Right Hand Man


INT 2F AX=A900

2F - METZTSR.COM - INSTALLATION CHECK

AX = A900h
CF set

Return

        CF clear if resident
    AX = 97FFh
CF set if not present

Notes

      	METZTSR.COM prevents METZ applications (such as the MAGIC screen
  saver) inactivity timeout while running a DOSapp under MS Windows.
the default multiplex number is A9h, but may be set to any value from
  80h to FFh with a commandline switch

SeeAlso

    INT 2F AX=A901    INT 2F AX=A902


INT 2F AX=A901

2F - METZTSR.COM - GET TIME OF LAST KEYBOARD ACTIVITY

AX = A901h
CF set

Return

        CF clear if successful
    AX:DX = BIOS time at which INT 09 was last invoked
CF set if not present

SeeAlso

    INT 09INT 1A/AH=00


INT 2F AX=A902

2F - METZTSR.COM - SET METZ Ctrl-Alt-Del FLAG

AX = A902h
BL = new value
    00h Ctrl-Alt-Del not allowed
    else Ctrl-Alt-Del allowed (startup default is 01h)
CF set

Return

        CF clear if successful
    AX = 97FFh
CF set if not resident

SeeAlso

    INT 2F AX=A903


INT 2F AX=A903

2F - METZTSR.COM - GET METZ Ctrl-Alt-Del FLAG

AX = A903h
CF set

Return

        CF clear if successful
    AX = 97FFh if Ctrl-Alt-Del allowed
    AX = 0000h if Ctrl-Alt-Del not allowed
CF set if not resident

SeeAlso

    INT 2F AX=A902


INT 2F AX=AA00

2F - VIDCLOCK.COM - INSTALLATION CHECK

AX = AA00h

Return

        AL = 00h not installed
     FFh installed

Note

     	VIDCLOCK.COM is a memory-resident clock by Thomas G. Hanlin III


INT 2F AX=AB00

2F - Btrieve Multi-User - INSTALLATION CHECK

AX = AB00h

Return

        AL = 4Dh if installed

SeeAlso

    INT 2F AX=AB01    INT 2F AX=AB02    INT 7BBtrieve


INT 2F AX=AB01

2F - Btrieve Multi-User - EXECUTE Btrieve OPERATION

AX = AB01h
BX = process ID
DS:DX -> 38-byte parameter record (see INT 7B"Btrieve")

Return

        AL = 00h OK
   = other retry after calling INT 7F/AX=0200h

SeeAlso

    INT 2F AX=AB00    INT 2F AX=AB02    INT 7BBtrieve"    INT 7F AX=0200


INT 2F AX=AB02

2F - Btrieve Multi-User - GET NEW PROCESS ID

AX = AB02h

Return

        AL = 00h succesful
    BX = process ID
AL > 00h failed, retry after calling INT 7F/AX=0200h

SeeAlso

    INT 2F AX=AB00    INT 2F AX=AB01    INT 7BBtrieve"    INT 7F AX=0200


INT 2F AX=AC00

2F - DOS 4.01+ GRAPHICS.COM - INSTALLATION CHECK

AX = AC00h

Return

        AX = FFFFh
ES:DI -> ??? (graphics data?) (not documented)

Note

     	this installation check was moved here to avoid the conflict with the
  CD-ROM extensions that occurred in DOS 4.00

SeeAlso

    INT 2F AX=1500"GRAPHICS"


INT 2F AX=AD00

2F U - DOS 3.3+ DISPLAY.SYS internal - INSTALLATION CHECK

AX = AD00h

Return

        AL = FFh if installed
    BX = ??? (0100h in MS-DOS 3.30, PCDOS 4.01)

Note

     	DOS 5.0 DISPLAY.SYS chains to previous handler if AL is not one of the
  subfunctions listed here


INT 2F AX=AD01

2F U - DOS 3.3+ DISPLAY.SYS internal - SET ACTIVE CODE PAGE

AX = AD01h
BX = new code page

Return

        CF clear if successful
    AX = 0001h
CF set on error (unsupported code page)
    AX = 0000h

SeeAlso

    INT 2F AX=AD02


INT 2F AX=AD02

2F U - DOS 3.3+ DISPLAY.SYS internal - GET ACTIVE CODE PAGE

AX = AD02h

Return

        CF set if code page never set
    AX = 0001h
    BX = FFFFh (assume first hardware code page)
CF clear if successful
    BX = current code page

SeeAlso

    INT 2F AX=AD01    INT 2F AX=AD03


INT 2F AX=AD03

2F U - DOS 3.3+ DISPLAY.SYS internal - GET CODE PAGE INFORMATION

AX = AD03h
ES:DI -> buffer for code page information (see below)
CX = size of buffer in bytes

Return

        CF set if buffer too small
CF clear if successful
    ES:DI buffer filled

SeeAlso

    INT 2F AX=AD01    INT 2F AX=AD02

Table Formats

DOS 5.0 code page information:


INT 2F AX=AD04

2F U - DOS 4.x only DISPLAY.SYS internal - ???

AX = AD04h
???

Return

        ???


INT 2F AX=AD10

2F U - DOS 4.x DISPLAY.SYS internal - INSTALLATION CHECK???

AX = AD10h
???

Return

        AX = FFFFh
BX = ??? (0100h in PCDOS 4.01)


INT 2F AX=AD10

2F U - DOS 5.0 DISPLAY.SYS internal - ???

AX = AD10h
???

Return

        CF clear if successful
CF set on error

Note

     	this function is a NOP if the active code page has never been set
  (AX=AD02h returns BX=FFFFh); its purpose otherwise is not known


INT 2F AX=AD40

2F - DOS 4.0 - ???

AX = AD40h
DX = ???
???

Return

        ???

Note

     	called by PCDOS 4.01 PRINT.COM


INT 2F AX=AD80

2F u - DOS 3.3+ KEYB.COM internal - INSTALLATION CHECK

AX = AD80h

Return

        AL = FFh if installed
    BX = version number (BH = major, BL = minor)
    ES:DI -> internal data (see below)

Notes

      	MSDOS 3.30, PCDOS 4.01, and MSDOS 5.00 all report version 1.00.
undocumented prior to the release of DOS 5.0

Table Formats

KEYB internal data:
Code page table list entries:
Translation data:


INT 2F AX=AD81

2F - DOS 3.3+ KEYB.COM - SET KEYBOARD CODE PAGE

AX = AD81h
BX = code page (see INT 21/AX=6601h)

Return

        CF set on error
    AX = 0001h (code page not available)
CF clear if successful

Notes

      	called by DISPLAY.SYS
undocumented prior to the release of DOS 5.0

SeeAlso

    INT 2F AX=AD82


INT 2F AX=AD82

2F - DOS 3.3+ KEYB.COM - SET KEYBOARD MAPPING

AX = AD82h
BL = new state
    00h US keyboard (Control-Alt-F1)
    FFh foreign keyboard (Control-Alt-F2)

Return

        CF set on error (BL not 00h or FFh)
CF clear if successful

Note

     	undocumented prior to the release of DOS 5.0

SeeAlso

    INT 2F AX=AD81    INT 2F AX=AD83


INT 2F AX=AD83

2F - DOS 5.0 KEYB.COM - GET KEYBOARD MAPPING

AX = AD83h

Return

        BL = current state
    00h US keyboard
    FFh foreign keyboard

SeeAlso

    INT 2F AX=AD82


INT 2F AX=AE00

2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - INSTALLATION CHECK

AX = AE00h
DX = FFFFh
CH = FFh
CL = length of command line tail (4DOS v4.0)
DS:BX -> command line buffer (see below)
DS:SI -> command name buffer (see below)
DI = 0000h (4DOS v4.0)

Return

        AL = FFh if this command is a TSR extension to COMMAND.COM
AL = 00h if the command should be executed as usual

Notes

      	This call provides a mechanism for TSRs to install permanent
  extensions to the command repertoire of COMMAND.COM.	It appears
  that COMMAND.COM makes this call before executing the current
  command line, and does not execute it itself if the return is FFh.
APPEND hooks this call, to allow subsequent APPEND commands to
  execute without re-running APPEND

Table Formats

Command line buffer:
Command name buffer:


INT 2F AX=AE01

2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - EXECUTE

AX = AE01h
DX = FFFFh
CH = 00h
CL = length of command name (4DOS v4.0)
DS:SI -> command name buffer (see AX=AE00h)
DS:BX -> command line buffer (see AX=AE00h)

Return

        DS:SI buffer updated
  if length byte is nonzero, the following bytes contain the uppercase
  internal command to execute and the command line buffer contains the
  command's parameters (the first DS:[SI] bytes are ignored)

Notes

      	this call requests execution of the command which a previous call to
  AX=AE00h indicated was resident
APPEND hooks this call


INT 2F AX=B000

2F - DOS 3.3+ GRAFTABL.COM - INSTALLATION CHECK

AX = B000h

Return

        AL = 00h not installed, OK to install
   = 01h not installed, not OK to install
   = FFh installed

Notes

      	called by DISPLAY.SYS
documented for DOS 5.0, but undocumented in prior versions

SeeAlso

    INT 2F AX=B001


INT 2F AX=B001

2F - DOS 3.3+ GRAFTABL.COM - GET GRAPHICS FONT TABLE

AX = B001h
DS:BX -> DWORD buffer for address of 8x8 font table

Return

        buffer filled
AL = FFh

Note

     	PCDOS 3.30/4.01 set the font table offset to 0130h, MSDOS 3.30 to 0030h

SeeAlso

    INT 2F AX=B000


INT 2F AX=B400

2F - IBM PC3270 EMULATION PROG v3 - INSTALLATION CHECK

AX = B400h

Return

        AL = FFh if installed


INT 2F AX=B401

2F - IBM PC3270 EMULATION PROG v3 - GET HOST BUFFER ADDRESS

AX = B401h

Return

        ES -> host screen buffer (PC ASCII format)
ES unchanged if communications not started


INT 2F AX=B402

2F - IBM PC3270 EMULATION PROG v3 - ???

AX = B402h
BX = ???

Return

        ???


INT 2F AX=B403

2F - IBM PC3270 EMULATION PROG v3 - ???

AX = B403h
???

Return

        ???


INT 2F AX=B404

2F - IBM PC3270 EMULATION PROG v3 - ???

AX = B404h
???

Return

        ???


INT 2F AX=B405

2F - IBM PC3270 EMULATION PROG v3 - ???

AX = B405h
???

Return

        ???


INT 2F AX=B700

2F - APPEND - INSTALLATION CHECK

AX = B700h

Return

        AL = status
    00h not installed
    FFh installed

Note

     	MSDOS 3.30 APPEND refuses to install itself when run inside TopView or
  a TopView-compatible environment


INT 2F AX=B701

2F U - APPEND - ???

AX = B701h
???

Return

        ???

Note

     	MSDOS 3.30 APPEND displays "Incorrect APPEND Version" and aborts caller


INT 2F AX=B702

2F - APPEND - VERSION CHECK

AX = B702h

Return

        AX = FFFFh if not DOS 4.0 APPEND (also if DOS 5.0 APPEND)
AL = major version number
AH = minor version number, otherwise

SeeAlso

    INT 2F AX=B710


INT 2F AX=B703

2F U - DOS 3.3, DOS 5.0 APPEND - HOOK INT 21

AX = B703h
ES:DI -> INT 21 handler APPEND should chain to

Return

        ES:DI -> APPEND's INT 21 handler

Note

     	each invocation of this function toggles a flag which APPEND uses to
  determine whether to chain to the user handler or the original
  INT 21


INT 2F AX=B704

2F - DOS 3.3+ APPEND - GET APPEND PATH

AX = B704h

Return

        ES:DI -> active APPEND path (128 bytes max)


INT 2F AX=B706

2F - DOS 4+ APPEND - GET APPEND FUNCTION STATE

AX = B706h

Return

        BX = APPEND state
    bit 0: set if APPEND enabled
    bits 1-11 reserved
    bit 12: (DOS 5.0) set if APPEND applies directory search even if a
drive has been specified
    bit 13: set if /PATH flag active
    bit 14: set if /E flag active (environment var APPEND exists)
    bit 15: set if /X flag active


INT 2F AX=B707

2F - DOS 4+ APPEND - SET APPEND FUNCTION STATE

AX = B707h
BX = APPEND state bits (see AX=B706h)


INT 2F AX=B710

2F U - DOS 3.3+ APPEND - GET VERSION INFO

AX = B710h

Return

        AX = current APPEND state (see AX=B706h)
BX = ??? (0000h in MSDOS 3.30 and 5.00)
CX = ??? (0000h in MSDOS 3.30 and 5.00)
DL = major version
DH = minor version

SeeAlso

    INT 2F AX=B702


INT 2F AX=B711

2F - DOS 4+ APPEND - SET RETURN FOUND NAME STATE

AX = B711h

Note

     	if the next INT 21h call (and ONLY the next) is function 3Dh, 43h, or
6Ch (also 4B03h and 4Eh if /X active), the fully qualified filename is
written over top of the filename passed to the INT 21h call.  The
application must provide a sufficiently large buffer.  This state is
reset after the next INT 21h call processed by APPEND.

BUG

    	DOS 4.0 APPEND reportedly overwrites DS:DX instead of DS:SI for
  INT 21/AH=6Ch

SeeAlso

    INT 21 AH=4E


INT 2F AX=B800

2F - network - INSTALLATION CHECK

AX = B800h

Return

        AL = status
    00h	    not installed
    nonzero installed
      BX = installed component flags (test in this order!)
   bit 6   server
   bit 2   messenger
   bit 7   receiver
   bit 3   redirector
   bit 1   LANPUP (LANtastic 4.0)

Notes

      	this function is supported by SilverNET
LANtastic and NetWare Lite use only BL for the return value, preserving
  BH; LAN Manager and DOS LAN Requester return BH=0.  This permits
  differentiation between those two groups by setting BH to a nonzero
  value before the call and checking its value on return.

SeeAlso

    INT 2F AX=4E53    INT 2F AX=B809


INT 2F AX=B803

2F - network - GET NETWORK EVENT POST HANDLER

AX = B803h

Return

        ES:BX -> event post handler (see AX=B804h)

SeeAlso

    INT 2F AX=B804    INT 2F AX=B903


INT 2F AX=B804

2F - network - SET NETWORK EVENT POST HANDLER

AX = B804h
ES:BX -> new event post handler

Notes

      	used in conjunction with AX=B803h to hook into the network event post
  routine
The specified handler is called on any network event.  Two events are
  defined: message received and critical network error.

SeeAlso

    INT 2F AX=B803    INT 2F AX=B904

Values post routine is called with:
AX = 0000h single block message
    DS:SI -> ASCIZ originator name
    DS:DI -> ASCIZ destination name
    ES:BX -> text header (see below)
AX = 0001h start multiple message block
    CX = block group ID
    DS:SI -> ASCIZ originator name
    DS:DI -> ASCIZ destination name
AX = 0002h multiple block text
    CX = block group ID
    ES:BX -> text header (see below)
AX = 0003h end multiple block message
    CX = block group ID
AX = 0004h message aborted due to error
    CX = block group ID
AX = 0101h server received badly formatted network request
    Return: AX = FFFFh (PC LAN will process error)
AX = 0102h unexpected network error
    ES:BX -> NCB (see INT 5C)
AX = 0103h server received INT 24 error
    other registers as for INT 24, except AH is in BH
    Return: as below, but only 0000h and FFFFh allowed

Return

       	AX = response code
    0000h user post routine processed message
    0001h PC LAN will process message, but message window not displayed
    FFFFh PC LAN will process message

Table Formats

Text header:


INT 2F AX=B807

2F - Network - GET NetBIOS NAME NUMBER OF MACHINE NAME

AX = B807h

Return

        CH = NetBIOS name number of the machine name

SeeAlso

    INT 21 AX=5E00


INT 2F AX=B808

2F U - Network - RELINK KEYBOARD HANDLER

AX = B808h
ES:BX -> INT 09 handler network should call after it finishes INT 09

Notes

      	this call replaces the address to which the network software chains on
  an INT 09 without preserving the original value.  This allows a prior
  handler to unlink, but does not allow a new handler to be added
  such that the network gets the INT 09 first unless the new handler
  completely takes over INT 09 and never chains.
called by DOS 3.2 KEYBxx.COM

SeeAlso

    INT 2F AX=B908


INT 2F AX=B809

2F - LANtastic Network, NetWare Lite - VERSION CHECK

AX = B809h

Return

        AH = major version
AL = minor version (decimal)

Note

     	this function is also supported by SilverNET

SeeAlso

    INT 2F AX=4E53    INT 2F AX=B800    INT 2F AX=B809"LAN Manager"


INT 2F AX=B809

2F - PC LAN Program, LAN Manager, DOS LAN Requester - VERSION CHECK

AX = B809h

Return

        AH = minor version (decimal)
AL = major version

SeeAlso

    INT 2F AX=4E53    INT 2F AX=B800    INT 2F AX=B809"LANtastic"


INT 2F AX=B80F

2F - DOS LAN Requester - GET START PARAMETERS

AX = B80Fh
CX = size of return data buffer
ES:DI -> return data buffer

Return

        AX = status
     00h     network started
     nonzero network not started
CX = number of bytes returned in buffer
ES:DI buffer filled

Table Formats

Return data buffer:


INT 2F AX=B900

2F - PC Network RECEIVER.COM - INSTALLATION CHECK

AX = B900h

Return

        AL = 00h if not installed
     FFh if installed


INT 2F AX=B901

2F - PC Network RECEIVER.COM - GET RECEIVER.COM INT 2F HANDLER ADDRESS

AX = B901h

Return

        AL = ???
ES:BX -> RECEIVER.COM INT 2F handler

Note

     	allows more efficient execution by letting the caller bypass any other
  INT 2F handlers which have been added since RECEIVER.COM was
  installed


INT 2F AX=B903

2F - PC Network RECEIVER.COM - GET RECEIVER.COM POST ADDRESS

AX = B903h

Return

        ES:BX -> POST handler

SeeAlso

    INT 2F AX=B803    INT 2F AX=B904


INT 2F AX=B904

2F - PC Network RECEIVER.COM - SET RECEIVER.COM POST ADDRESS

AX = B904h
ES:BX -> new POST handler

SeeAlso

    INT 2F AX=B804    INT 2F AX=B903


INT 2F AX=B905

2F - PC Network RECEIVER.COM - GET FILENAME

AX = B905h
DS:BX -> 128-byte buffer for filename 1
DS:DX -> 128-byte buffer for filename 2

Return

        buffers filled from RECEIVER.COM internal buffers

Note

     	use of filenames is unknown, but one appears to be for storing messages

SeeAlso

    INT 2F AX=B906


INT 2F AX=B906

2F - PC Network RECEIVER.COM - SET FILENAME

AX = B906h
DS:BX -> 128-byte buffer for filename 1
DS:DX -> 128-byte buffer for filename 2

Return

        RECEIVER.COM internal buffers filled from user buffers

Note

     	use of filenames is unknown, but one appears to be for storing messages

SeeAlso

    INT 2F AX=B905


INT 2F AX=B908

2F - PC Network RECEIVER.COM - UNLINK KEYBOARD HANDLER

AX = B908h
ES:BX -> INT 09 handler RECEIVER should call after it finishes INT 09

Note

     	this call replaces the address to which RECEIVER.COM chains on an
  INT 09 without preserving the original value.	 This allows a prior
  handler to unlink, but does not allow a new handler to be added
  such that RECEIVER gets the INT 09 first.

SeeAlso

    INT 2F AX=B808


INT 2F AX=BC00

2F - Windows 3.0, DOS 5.0 EGA.SYS - INSTALLATION CHECK

AX = BC00h

Return

        AL = 00h not installed, OK to install
   = 01h not installed, not OK to install
   = FFh installed
BX = 5456h ("TV")

Note

     	AH=BCh is the default value, which may be changed by a command line
  parameter to any value between 80h and FFh

SeeAlso

    INT 2F AX=BC06    INT 10 AH=FA"EGA"


INT 2F AX=BC06

2F U - MS Windows 3.0, DOS 5.0 EGA.SYS - GET VERSION INFO

AX = BC06h

Return

        BX = 5456h ("TV")
CH = major version
CL = minor version
DL = revision

SeeAlso

    INT 2F AX=BC00    INT 10 AH=FA"EGA"


INT 2F AX=BE00

2F - REDVIEW - INSTALLATION CHECK

AX = BE00h

Return

        AL = FFh if installed

Note

     	REDVIEW is a public-domain TSR by Alexandr Novy and Petr Horak which
  copies data sent to standard output to standard error when the
  former has been redirected to a file, thus allowing the data to
  be seen on the screen at the same time it is captured in a file


INT 2F AX=BF00

2F - PC LAN PROGRAM REDIRIFS.EXE internal - INSTALLATION CHECK

AX = BF00h

Return

        AL = FFh if installed


INT 2F AX=BF01

2F U - PC LAN PROGRAM REDIRIFS.EXE internal - ???

AX = BF01h
???

Return

        ???


INT 2F AX=BF80

2F - PC LAN PROG REDIR.SYS internal - SET REDIRIFS ENTRY POINT

AX = BF80h
ES:DI -> FAR entry point to IFS handler in REDIRIFS

Return

        AL = FFh if installed
    ES:DI -> internal workspace

Note

     	all future IFS calls to REDIR.SYS are passed to the ES:DI entry point


INT 2F AH=C0

2F - MTEZ XpressFax Hardware TSR (CLASS2) - API

AH = C0h
AL = function code (01h to 15h)

Return

        ???

SeeAlso

    INT 2F AX=C000"MTEZ"    INT 2F AX=CB00"MTEZ"


INT 2F AX=C000

2F - Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK

AX = C000h

Return

        AL = FFh
ES:BX -> FAR entry point
ES:SI -> signature string "LINKSUP$"

Note

     	LSL.COM may use any multiplex number between C0h and FFh; it searches
  for itself in that range, and installs using the first free multiplex
  number in the range if not already loaded.

Call entry point with:
BX = 0002h get entry points
ES:SI -> buffer for entry point record (see below)
Return: ES:SI buffer filled

Table Formats

Entry point record:


INT 2F AX=C000

2F - MTEZ XpressFax Hardware TSR (CLASS2) - INSTALLATION CHECK

AX = C000h
BX = 444Bh
CX = 4A4Eh

Return

        AL = status
    00h not installed, OK to install
    FFh installed
BX = 646Bh
CX = 6A6Eh

Note

     	this TSR will use any free multiplex number from C0h to FFh

SeeAlso

    INT 2F AH=C0"MTEZ"


INT 2F AX=C000

2F - AD-DOS - INSTALLATION CHECK

AX = C000h

Return

        AL = FFh if installed
    BX = 4144h ('AD')
    CX = 2D44h ('-D')
    DX = 4F53h ('OS')

Program

         AD-DOS is the DOS version of the After Dark screen blanker for
  MS Windows

Note

     	AH=C0h is the default multiplex number; if this is already in use,
  After Dark will try successive values up to AH=FFh

SeeAlso

    INT 2F AX=C001    INT 2F AX=C003    INT 2F AX=C005    INT 2F AX=C007    INT 2F AX=C009    INT 2F AX=C020


INT 2F AX=C001

2F - AD-DOS - GET RESIDENT CODE SEGMENT

AX = C001h
ES = 0000h

Return

        AL = 00h if successful
    ES = AD-DOS TSR Code Segment

SeeAlso

    INT 2F AX=C000"AD-DOS"


INT 2F AX=C002

2F - AD-DOS - CHECK FOR NEW INPUT

AX = C002h

Return

        AL = 00h if succesful
    BX = status
0000h no input since last check
0001h new input available

Note

     	this call also resets the new-input flag

SeeAlso

    INT 2F AX=C000"AD-DOS"    INT 2F AX=C004


INT 2F AX=C003

2F - AD-DOS - SET MINUTES TO WAIT

AX = C003h
BX = minutes to wait before blanking screen

Return

        AL = 00h if successful

Program

         AD-DOS is the DOS version of the After Dark screen blanker for
  MS Windows

Notes

      	AH=C0h is the default multiplex number; if this is already in use,
  After Dark will try successive values up to AH=FFh
this call also resets the delay timer

SeeAlso

    INT 2F AX=C000"AD-DOS"    INT 2F AX=C004


INT 2F AX=C004

2F - AD-DOS - GET MINUTES TO WAIT

AX = C004h

Return

        AL = 00h if succesful
    BX = minutes to wait before blanking screen

SeeAlso

    INT 2F AX=C000"AD-DOS"    INT 2F AX=C003


INT 2F AX=C005

2F - AD-DOS - SET BLANKER STATUS

AX = C005h
BX = new state (0000h inactive, 0001h active) (default 0001h)

Return

        AL = 00h if successful

SeeAlso

    INT 2F AX=C006


INT 2F AX=0C06

2F - AD-DOS - GET BLANKER STATUS

AX = C006h

Return

        AL = 00h if successful
    BX = current state of screen blanker (0000h inactive, 0001h active)

Program

         AD-DOS is the DOS version of the After Dark screen blanker for
  MS Windows

Note

     	AH=C0h is the default multiplex number; if this is already in use,
  After Dark will try successive values up to AH=FFh

SeeAlso

    INT 2F AX=C000"AD-DOS"    INT 2F AX=C005


INT 2F AX=0C07

2F - AD-DOS - SET HOT KEY

AX = C007h
BX = hot key
CL = hot key shift status

Return

        AL = 00h if successful

SeeAlso

    INT 2F AX=C008


INT 2F AX=0C08

2F - AD-DOS - GET CURRENT HOT KEY

AX = C008h

Return

        AX = status
    0000h successful
BX = Hot Key
CL = Hot Key Shift Status
    0008h otherwise

SeeAlso

    INT 2F AX=C000"AD-DOS"    INT 2F AX=C007


INT 2F AX=0C09

2F - AD-DOS - UNBLANK MONITOR

AX = C009h

Return

        AL = 00h if successful

Program

         AD-DOS is the DOS version of the After Dark screen blanker for
  MS Windows

Notes

      	AH=C0h is the default multiplex number; if this is already in use,
  After Dark will try successive values up to AH=FFh
this function works by simulating keyboard activity


INT 2F AX=0C0A

2F - AD-DOS - ???

AX = C00Ah

Return

        AX = status
    0000h successful
BH = ??
BL = ??
    000Ah failed


INT 2F AX=0C0B

2F - AD-DOS - ???

AX = C00Bh

Return

        AX = status
    0000h successful
    000Bh failed


INT 2F AX=0C0C

2F - AD-DOS - SET ??? INTERNAL FLAG TO 01h

AX = C00Ch

Return

        AX = status
    0000h successful
    000Ch failed

Program

         AD-DOS is the DOS version of the After Dark screen blanker for
  MS Windows

Note

     	AH=C0h is the default multiplex number; if this is already in use,
  After Dark will try successive values up to AH=FFh


INT 2F AX=0C0E

2F - AD-DOS - SET PASSWORD STATUS

AX = C00Eh
BX = new state (0000h disabled, 0001h enabled)

Return

        ???

SeeAlso

    INT 2F AX=C000"AD-DOS"    INT 2F AX=C00F


INT 2F AX=0C0F

2F - AD-DOS - GET PASSWORD STATUS

AX = C00Fh

Return

        BX = current state (0000h disabled, 0001h enabled)

SeeAlso

    INT 2F AX=C00E


INT 2F AX=0C20

2F - AD-DOS - GET AND RESET VxD API STATUS

AX = C020h

Return

        AL = 00h if successful
    BX = VxD API Status
0000h no error
0001h error
0100h neither Windows 3.X enhanced mode nor
Windows/386 2.x is running
0200h VM API entry point not found (VxD not installed)

Notes

      	AH=C0h is the default multiplex number; if this is already in use,
  After Dark will try successive values up to AH=FFh
this call resets the VxD API Status to zero

SeeAlso

    INT 2F AX=1602    INT 2F AX=1607


INT 2F AX=C050

2F U - Explosiv 2.00 - INSTALLATION CHECK

AX = C050h

Return

        AL = 51h if installed

Notes

      	Explosiv is a shareware animated screen blanker for DOS and Windows 3
  by Reidar Gresseth and Chris Hook
AH=C0h is the default multiplex number, but may be reconfigured to
  any value from C0h to C9h

SeeAlso

    INT 2F AX=C052


INT 2F AX=C052

2F U - Explosiv 2.00 - UNINSTALL

AX = C052h
DX:BX = address to return to on successful uninstall

Return

        at specified address if successful
AL = 53h on error

Note

     	specified return address must have the segment of the caller's PSP

SeeAlso

    INT 2F AX=C050


INT 2F AX=C054

2F U - Explosiv 2.00 - GET ???

AX = C054h

Return

        AL = ???

Note

     	returns value set by AX=C057h

SeeAlso

    INT 2F AX=C057


INT 2F AX=C055

2F U - Explosiv 2.00 - SET BLANKING INTERVAL

AX = C055h
BX = new interval in clock ticks


INT 2F AX=C056

2F U - Explosiv 2.00 - SET ???

AX = C056h
BL = ???


INT 2F AX=C057

2F U - Explosiv 2.00 - SET ???

AX = C057h
BL = ???

SeeAlso

    INT 2F AX=C054


INT 2F AX=C058

2F U - Explosiv 2.00 - SET ???

AX = C058h
BL = ???


INT 2F AX=C059

2F U - Explosiv 2.00 - CLEAR ???

AX = C059h

Note

     	clears flag set by AX=C05Ah

SeeAlso

    INT 2F AX=C05A


INT 2F AX=C05A

2F U - Explosiv 2.00 - SET ???

AX = C05Ah
BL = ???

Note

     	sets flag cleared by AX=C059h then stores BL

SeeAlso

    INT 2F AX=C059    INT 2F AX=C05B


INT 2F AX=C05B

2F U - Explosiv 2.00 - SET ???

AX = C05Bh
BL = ???

SeeAlso

    INT 2F AX=C05A    INT 2F AX=C05C


INT 2F AX=C05C

2F U - Explosiv 2.00 - SET ???

AX = C05Ch
BL = ???

SeeAlso

    INT 2F AX=C05B


INT 2F AX=C900

2F U - ThunderByte??? - INSTALLATION CHECK

AX = C900h
BP = 0000h

Return

        AL = FFh if installed
    BP >= 0014h

Note

     	called by TBSCANX

SeeAlso

    INT 2F AX=C987    INT 2F AX=CA00


INT 2F AX=C987

2F U - ThunderByte??? - DISINFECT FILE???

AX = C987h
BX:DX -> filename
BX:CX -> virus name

Return

        AX = status
    0000h successful???

Note

     	called by TBSCANX

SeeAlso

    INT 2F AX=CA00


INT 2F AX=C9FF

2F C - STACKMAN - INSTALLATION BROADCAST

AX = C9FFh
BL = BCD version number
CX = number of stacks
DX = stack size in bytes

Notes

      	called by STACKMAN when it goes resident to inform interested TSRs that
  its API is available
the installation check consists of testing for the string "STACKXXX" at
  offset 0Ah from the INT B4 handler

SeeAlso

    INT B4STACKMAN"    INT B5STACKMAN


INT 2F AX=CA00

2F - TBSCANX - INSTALLATION CHECK

AX = CA00h
BX = 5442h ('TB')

Return

       	AL = 00h not installed
   = FFh installed
BX = 7462h ('tb') if BX was 5442h on entry

Note

     	TBSCANX is a resident virus scanning module by Frans Veldman.  Programs
  may perform virus checks on themselves, other program files, or their
  data files by invoking the TBSCANX API.

SeeAlso

    INT 2F AX=4653    INT 2F AX=C900


INT 2F AX=CA01

2F - TBSCANX - GET STATUS

AX = CA01h

Return

        AH = BCD version number (v2.2+)
   = CAh for versions before 2.2
AL = state (00h = disabled, 01h = enabled)
CX = number of signatures which will be searched
---v2.0---
BX = EMS handle, 0000h if not using EMS
---v2.3+---
BX = segment of swap area, 0000h if not swapped
DX = EMS or XMS handle (XMS handle if BX=0000h), FFFFh if not using EMS

SeeAlso

    INT 2F AX=CA02


INT 2F AX=CA02

2F - TBSCANX - SET STATE

AX = CA02h
BL = new state (00h = disabled, 01h = enabled)

SeeAlso

    INT 2F AX=CA01


INT 2F AX=CA03

2F - TBSCANX - SCAN BUFFER

AX = CA03h
CX = size of buffer
DS:DX -> buffer containing data to scan

Return

        CF clear if no virus signatures found
    BX,ES destroyed
CF set if signature found
    ES:BX -> ASCIZ virus name (v2.3+)
    DS:DX -> ASCIZ virus name (v2.0)
AX,CX,DX destroyed (v2.3+)
all other registers except CS:IP and SS:SP destroyed (v2.0)

SeeAlso

    INT 2F AX=CA04


INT 2F AX=CA04

2F - TBSCANX - SCAN FILE

AX = CA04h
DS:DX -> filename

Return

        CF clear if no virus signatures found
    BX,ES destroyed
CF set if signature found
    ES:BX -> ASCIZ virus name
AX,CX,DX destroyed

Note

     	this function requires at least 4K free memory

SeeAlso

    INT 2F AX=CA03


INT 2F AX=CAFE

2F U - THELP v3.0 - INSTALLATION CHECK

AX = CAFEh
BX = 0000h

Return

        BX = segment of resident code if installed
   = 0000h if not installed

SeeAlso

    INT 2F AX=5453


INT 2F AX=CB00

2F - Communicating Applications Specification - INSTALLATION CHECK

AX = CB00h

Return

        AL = status
    00h not installed, OK to install
    01h not installed, not OK to install
    FFh installed

Note

     	AH = CBh is the default identifier, but may be reconfigured

SeeAlso

    INT 2F AH=2A    INT 2F AX=8000"FaxBIOS"    INT 2F AX=CB0E    INT 2F AX=CBDC


INT 2F AX=CB00

2F - MTEZ XpressFax CASMGR - INSTALLATION CHECK

AX = CB00h
BX = 4D53h
CX = 4949h

Return

        AL = status
    00h not installed, OK to install
    01h not installed, not OK to install
    FFh installed
BX = 6D73h
CX = 6969h

Note

     	this function is equivalent to the standard CASMGR installation check,
  but uses the additional magic values to identify which CAS is
  installed

SeeAlso

    INT 2F AH=2A    INT 2F AX=8000"FaxBIOS"    INT 2F AX=C000"MTEZ"    INT 2F AX=CB0E    INT 2F AX=CB16


INT 2F AX=CB01

2F - Communicating Applications Specification - SUBMIT A TASK

AX = CB01h
DS:DX -> ASCIZ name of task control file

Return

        AX >= 0: event handle
   < 0: error code

Note

     	files needed for an event must be kept until task is complete or error

SeeAlso

    INT 2F AX=CB0B    INT 2F AX=CB15

Error codes (AH = class, AL = subcode, value passed back is 2's complement):
  Class 00h	--- FAX warnings
Subcode 00h	no error
02h	bad scanline count
03h	page sent with errors, could not retransmit
04h	received data lost
05h	invalid or missing logo file
06h	filename does not match nonstandard format (NSF) header
07h	file size does not match NSF header
  Class 01h	--- DOS warnings (data was sent)
Subcode 01h	invalid function
05h	access denied
06h	invalid handle
others	see INT 21/AH=59h
  Class 02h	--- fatal errors (data not sent)
Subcode	00h	multiplex handler failed
01h	unknown command
02h	bad event handle
03h	FIND NEXT attempted before FIND FIRST
04h	no more events
07h	invalid queue type
08h	bad control file
09h	communication board busy
0Ah	invalid command parameter
0Bh	can't uninstall resident code
0Ch	file exists
80h	unknown task type
81h	bad phone number
82h	bad .PCX file header
83h	unexpected EOF
84h	unexpected disconnect
85h	too many dialing retries
86h	no file specified for send
87h	communication board timeout
88h	received too many pages (>1023) of data
89h	manual connect initiated too long ago
8Ah	hardware command set error
8Bh	bad NonStandard Format (NSF) header file
  Class 03h	--- fatal DOS errors
Subcode 02h	file not found
03h	path not found
others	see INT 21/AH=59h
  Class 04h	--- FAX errors
Subcode 01h	remote unit not Group 3 compatible
02h	remote unit did not send capabilities
03h	other FAX machine incompatible
04h	other FAX incapable of file transfers
05h	exceeded retrain or FAX resend limit
06h	line noise or failure to agree on bit rate
07h	remote disconnected after receiving data
08h	no response from remote after sending data
09h	remote's capabilities incompatible
0Ah	no dial tone (v1.2+)
0Bh	invalid response from remote unit after sending data
0Dh	phone line dead or remote unit disconnected
0Eh	timeout while waiting for secondary dial tone (v1.2+)
11h	invalid command from remote after receiving data
15h	tried to receive from incompatible hardware
5Ch	received data overflowed input buffer
5Dh	remote unexpectedly stopped sending data
5Eh	other FAX machine jammed (no data sent)
5Fh	remote took too long to send fax scan line
63h	can't get through to remote unit
64h	user canceled event
  Class 05h	--- application-specific (v1.2+)
  ---Intel FAXPOP.EXE
Subcode 00h	tried to send while in graphics mode
01h	insufficient disk space
02h	internal buffer overflow
  Class 06h	--- CAS implementation-specific (v1.2+)


INT 2F AX=CB02

2F - Communicating Applications Specification - ABORT CURRENT EVENT

AX = CB02h

Return

        AX >= 0: event handle of aborted event
   < 0: error code (see AX=CB01h)

Note

     	termination could take up to 30 seconds

SeeAlso

    INT 2F AX=CB08    INT 2F AX=CB10


INT 2F AX=CB05

2F - Communicating Applications Specification - FIND FIRST QUEUE ENTRY

AX = CB05h
CX = status of events to find
    0000h successful completion
    0001h waiting to be processed
    0002h number has been dialed
    0003h connection established, sending
    0004h connection established, receiving
    0005h event aborted
    FFFFh find any event, regardless of status
    other negative values, match error code
DH = direction
    00h chronological order, earliest to latest
    01h reverse chronological order, latest to earliest
DL = queue to search
    00h task queue
    01h receive queue
    02h log queue

Return

        AX = 0000h successful
    BX = event handle for found event
   < 0	   error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB06    INT 2F AX=CB07


INT 2F AX=CB06

2F - Communicating Applications Specification - FIND NEXT QUEUE ENTRY

AX = CB06h
DL = queue to search
    00h task queue
    01h receive queue
    02h log queue

Return

        AX = 0000h successful
    BX = event handle for found event
   < 0	   error code (see AX=CB01h)

Note

     	direction of search is same as preceding FIND FIRST call

SeeAlso

    INT 2F AX=CB05


INT 2F AX=CB07

2F - Communicating Applications Specification - OPEN FILE

AX = CB07h
BX = event handle from find (AL=05h,06h) or submit task (AL=01h)
CX = receive file number (ignored for task queue and log queue)
    0000h  open receive control file
    N	   open Nth received data file
DL = queue
    00h task queue
    01h receive queue control file or received file, as given by CX
    02h log queue
    03h group file in task queue (v1.2+)
    04h group file in log queue (v1.2+)

Return

        AX = 0000h successful
    BX = DOS file handle for requested file
   < 0	   error code (see AX=CB01h)

Note

     	the returned file handle has been opened in read-only mode and should
  be closed with INT 21/AH=3Eh after use

SeeAlso

    INT 2F AX=CB01    INT 2F AX=CB05    INT 2F AX=CB14


INT 2F AX=CB08

2F - Communicating Applications Specification - DELETE FILE

AX = CB08h
BX = event handle
CX = receive file number
    0000h delete ALL received files and receive control file
    N	  delete Nth received file
DL = queue
    00h delete control file in task queue and corresponding group file
if it exists
    01h delete file in receive queue, as given by CX
    02h delete control file in log queue (individual deletions not
recommended, to maintain integrity of log) and corresponding
group file if it exists

Return

        AX = 0000h successful
   < 0	   error code (see AX=CB01h)\

SeeAlso

    INT 2F AX=CB02    INT 2F AX=CB09


INT 2F AX=CB09

2F - Communicating Applications Specification - DELETE ALL FILES IN Q

AX = CB09h
DL = queue
    00h delete all control files in task queue, including all group
files
    01h delete all files in receive queue
    02h delete all control files in log queue, including all group
files

Return

        AX = 0000h successful
   < 0	   error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB08


INT 2F AX=CB0A

2F - Communicating Applications Specification - GET EVENT DATE

AX = CB0Ah
BX = event handle
DL = queue
    00h task queue
    01h receive queue
    02h log queue

Return

        AX = 0000h successful
CX = year
DH = month
DL = day
   < 0	   error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB0B    INT 2F AX=CB0C


INT 2F AX=CB0B

2F - Communicating Applications Specification - SET TASK DATE

AX = CB0Bh
BX = event handle (task event only)
CX = year
DH = month
DL = day

Return

        AX = 0000h successful
   < 0	   error code (see AX=CB01h)

Note

     	setting a task's date and time to before the current date and time
  causes it to execute immediately

SeeAlso

    INT 2F AX=CB01    INT 2F AX=CB0A    INT 2F AX=CB0D


INT 2F AX=CB0C

2F - Communicating Applications Specification - GET EVENT TIME

AX = CB0Ch
BX = event handle
DL = queue
    00h task queue
    01h receive queue
    02h log queue

Return

        AX = 0000h successful
CH = hour
CL = minute
DH = second
DL = 00h
   < 0	   error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB0A    INT 2F AX=CB0D


INT 2F AX=CB0D

2F - Communicating Applications Specification - SET TASK TIME

AX = CB0Dh
BX = event handle (task events only)
CH = hour
CL = minute
DH = second
DL unused

Return

        AX = 0000h successful
   < 0	   error code (see AX=CB01h)

Note

     	setting a task's date and time to before the current date and time
  causes it to execute immediately

SeeAlso

    INT 2F AX=CB0B    INT 2F AX=CB0C    INT 2F AX=CB10


INT 2F AX=CB0E

2F - Communicating Applications Specification - GET EXTERNAL DATA BLOCK

AX = CB0Eh
DS:DX -> 256-byte buffer

Return

        AX = 0000h successful
buffer filled
   < 0	   error code (see AX=CB01h)

Table Formats

External data block:


INT 2F AX=CB0F

2F - Communicating Applications Specification - GET/SET AUTORECEIVE

AX = CB0Fh
DL = subfunction
    00h get current autoreceive state
    01h set autoreceive state
DH = number of rings before answer, 00h = never

Return

        AX = 0000h autoreceive disabled
   = N	   number of rings before answer
   < 0	   error code (see AX=CB01h)


INT 2F AX=CB10

2F - Communicating Applications Specification - GET CURRENT EVENT STATUS

AX = CB10h
DS:DX -> 512-byte buffer

Return

        AX = 0000h successful
BX = event handle of current event or negative error code if
no current event
buffer filled
   < 0	   error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB02    INT 2F AX=CB0D

Table Formats

Status area:
File transfer record:


INT 2F AX=CB11

2F - Communicating Applications Specification - GET QUEUE STATUS

AX = CB11h
DL = queue to get status of
    00h task queue
    01h receive queue
    02h log queue
    03h send events (v1.2+)
    04h receive events (v1.2+)

Return

        AX >= 0	 total number of changes made to queue, modulo 32768
BX = number of control files currently in queue
CX = number of received files (zero for task and log queues)
AX < 0	error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB12


INT 2F AX=CB11

2F - Communicating Applications Spec v1.2+ - GET NUMBER OF SEND EVENTS

AX = CB11h
DL = 03h

Return

        AX = number of successful sends since resident manager started
BX = number of unsuccessful sends, including warnings

SeeAlso

    INT 2F AX=CB11    /DL=04


INT 2F AX=CB11

2F - Communicating Applications Spec v1.2+ - GET NUMBER OF RECEIVE EVENTS

AX = CB11h
DL = 04h

Return

       	AX = number of received file events since resident manager started
BX = number of received FAX events

SeeAlso

    INT 2F AX=CB11    /DL=03


INT 2F AX=CB12

2F - Communicating Applications Specification - GET HARDWARE STATUS

AX = CB12h
DS:DX -> 128-byte status buffer

Return

        AX = 0000h successful
buffer filled with hardware-dependent status information
   < 0	   error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB10    INT 2F AX=CB11

Table Formats

Status buffer for Intel Connection CoProcessor:
Status buffer for Intel SatisFAXtion board:


INT 2F AX=CB13

2F - Communicating Applications Specification - GET DIAGNOSTICS RESULTS

AX = CB13h
DL = 00h

Return

        AX = 0040h in progress
   >= 0	   passed
   < 0	   hardware-dependent failure code (see below)

SeeAlso

    INT 2F AX=CB13    /DL=01

Intel Connection CoProcessor failure codes:
bit 3: 9600 bps FAX modem module failed
bit 2: SDLC chip failed
bit 1: RAM failed
bit 0: ROM checksum failed

Intel SatisFAXtion failure codes:
bit 1: 2400 bps data modem failed
bit 0: 9600 bps FAX modem failed


INT 2F AX=CB13

2F - Communicating Applications Specification - START DIAGNOSTICS

AX = CB13h
DL = 01h

Return

        AX = 0000h successfully started
   < 0	   error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB13    /DL=00


INT 2F AX=CB14

2F - Communicating Applications Specification - MOVE RECEIVED FILE

AX = CB14h
BX = event handle
CX = receive file number
     0001h first received file
     N	   Nth received file
DS:DX -> ASCIZ string specifying new name for file (must not exist)

Return

        AX = 0000h successful
   < 0	   error code (see AX=CB01h)


INT 2F AX=CB15

2F - Communicating Applications Specification - SUBMIT FILE TO SEND

AX = CB15h
DS:DX -> variable-length data area (see below)

Return

        AX >= 0	event handle
   < 0	error code (see AX=CB01h)

SeeAlso

    INT 2F AX=CB01

Table Formats

Data area:


INT 2F AX=CB16

2F - Communicating Applications Spec v1.2+ - UNLOAD RESIDENT MANAGER

AX = CB16h
BX = 1234h
CX = 5678h
DX = 9ABCh

Return

        AX = 0000h successful
   < 0	   error code

Note

     	the MTEZ XpressFax CASMGR ignores the values in BX,CX, and DX

SeeAlso

    INT 2F AX=C000"MTEZ"    INT 2F AX=CB00


INT 2F AX=CB17

2F - Communicating Applications Spec v1.2+ - SET COVER PAGE STATUS

AX = CB17h
BX = event handle
CL = cover page status
    00h not read
    01h read by user

Return

        AX = 0000h successful
   < 0	   error code


INT 2F AX=CB80

2F - Intel SatisFAXtion CASMGR - ???

AX = CB80h
???

Return

        ???


INT 2F AX=CB81

2F - Intel SatisFAXtion CASMGR - ???

AX = CB81h
???

Return

        ???


INT 2F AX=CB82

2F - Intel SatisFAXtion CASMGR - ???

AX = CB82h
???

Return

        ???


INT 2F AX=CBDC

2F - Comwave Microfax Specification - GET STATUS ARRAY

AX = CBDCh
BL = 56h
BH = line number (starts with 1)
CX:DX -> 32-byte status buffer or 80 character string

Return

        AX = number of cards installed, or FFFFh on error

Program

         Comwave manufacturers the Microfax line of fax cards which are a high-
  performance multi-card FAX solution for OEMs.

Note

     	defaults to AH=CBh but can be changed

SeeAlso

    INT 2F AX=CBDD    INT 2F AX=DA00


INT 2F AX=CBDD

2F - Comwave Microfax Specification - COMMAND SUBMISSION

AX = CBDDh
BL = 56h
BH = ?
CX:DX -> command to execute

Return

        AX = status
    0000h success
    FFFFh on error

SeeAlso

    INT 2F AH=2A    INT 2F AX=CBDC    INT 2F AX=80FB


INT 2F AH=CC

2F U - Qualitas Qcach v4.00

AH = CCh
SI = 5453h or 7473h
AL = ???
DL = 00h or ???

Return

        SI = 7473h
???


INT 2F AX=CD00

2F - Intel Image Processing Interface - INSTALLATION CHECK

AX = CD00h

Return

        AL = 00h not installed, OK to install
     01h not installed, not OK to install
     FFh installed

SeeAlso

    INT 2F AX=CD02"Image"


INT 2F AX=CD00

2F - SWELL.EXE - INSTALLATION CHECK

AX = CD00h

Return

        AX = 00FFh installed
    BH = major version
    BL = minor version

Note

     	SWELL.EXE is a TSR which swaps programs to disk when they EXEC a child
  process with INT 21/AH=4Bh


INT 2F AX=CD01

2F - Intel Image Processing Interface - SET DEVICE NAME

AX = CD01h
CX:BX -> ASCIZ character device name ("LPTn", "COMn", "PRN")

Return

        AL = 00h successful
CX:BX -> internal character device name
   = 80h error


INT 2F AX=CD01

2F - SWELL.EXE - SUSPEND ONCE

AX = CD01h

Return

        AX = 0000h

SeeAlso

    INT 2F AX=CD02"SWELL"


INT 2F AX=CD02

2F - Intel Image Processing Interface - GET VERSION NUMBER

AX = CD02h

Return

        AL = 00h/01h successful
BH = major version number (BCD)
BL = minor version number (BCD)
   = 80h error

Note

     	if return AL = 01h, the IPI supports network redirection

SeeAlso

    INT 2F AX=CD00"Image"


INT 2F AX=CD02

2F - SWELL.EXE - SUSPEND

AX = CD02h

Return

        AX = 0000h

SeeAlso

    INT 2F AX=CD03"SWELL"


INT 2F AX=CD03

2F - Intel Image Processing Interface - SELECT SCAN LINE

AX = CD03h
BX = scan line
CX = requested density in dots per inch (300, 600, or 1200)

Return

        AL = 00h succesful
CX = density at which scan line was mapped
ES:DI -> start of scan line
AL = 80h unsuccessful
   = 81h scan line out of range
   = 82h unsupported scan line density
   = 83h out of memory

SeeAlso

    INT 2F AX=CD04"Image"


INT 2F AX=CD03

2F - SWELL.EXE - ACTIVATE

AX = CD03h

Return

        AX = 0000h

SeeAlso

    INT 2F AX=CD02"SWELL"


INT 2F AX=CD04

2F - Intel Image Processing Interface - MOVE BITMAP TO SCANLINE

AX = CD04h
CX:BX -> structure (see below)

Return

        AL = 00h successful
   = 80h unsuccessful
   = 81h scan line out of range
   = 82h unsupported scan line density
   = 83h out of memory
   = 84h unrecognized source
   = 85h initialization error

SeeAlso

    INT 2F AX=CD03"Image"

Table Formats

Structure:


INT 2F AX=CD04

2F - SWELL.EXE - TURN OFF VERBOSE MODE

AX = CD04h

Return

        AX = 0000h

SeeAlso

    INT 2F AX=CD05"SWELL"


INT 2F AX=CD05

2F - Intel Image Processing Interface - PRINT PAGE

AX = CD05h

Return

        AL = 00h successful
   = 80h unsuccessful

Note

     	page image is retained, so multiple calls will print multiple copies of
  the page

SeeAlso

    INT 2F AX=CD06"Image"


INT 2F AX=CD05

2F - SWELL.EXE - TURN ON VERBOSE MODE

AX = CD05h

Return

        AX = 0000h

SeeAlso

    INT 2F AX=CD04"SWELL"


INT 2F AX=CD06

2F - Intel Image Processing Interface - CLEAR PAGE

AX = CD06h

Return

        AL = 00h successful
   = 80h unsuccessful

Note

     	palette is reset to default

SeeAlso

    INT 2F AX=CD09"Image"


INT 2F AX=CD06

2F - SWELL.EXE - UNINSTALL

AX = CD06h

Return

        AX = 0000h uninstalled
   = 8002h programs still swapped, not uninstalled


INT 2F AX=CD07

2F - Intel Image Processing Interface - reserved

AX = CD07h


INT 2F AX=CD07

2F - SWELL.EXE - GET INFO

AX = CD07h
ES:BX -> 32-byte buffer for info

Return

        AX = 0000h successful
    ES:BX buffer filled
   = 8001h buffer wrong size

Table Formats

Info buffer:


INT 2F AX=CD08

2F - Intel Image Processing Interface - SCREEN IMAGE

AX = CD08h
CX:BX -> structure (see below)

Return

        AL = 00h successful
   = 80h unsuccessful
   = 81h scan line out of range
   = 82h unsupported scan line density
   = 83h out of memory
   = 84h unrecognized source
   = 85h initialization error

SeeAlso

    INT 2F AX=CD05"Image"    INT 2F AX=CD09"Image"

Table Formats

Structure:


INT 2F AX=CD08

2F - SWELL.EXE - UNUSED

AX = CD08h

Return

        AX = FFFFh (error)


INT 2F AX=CD09

2F - Intel Image Processing Interface - LOAD SCREEN

AX = CD09h
CX:BX -> structure (see below)

Return

        AL = 00h successful
   = 80h unsuccessful

SeeAlso

    INT 2F AX=CD06"Image Processing"    INT 2F AX=CD0A"Image Processing"

Table Formats

Structure:


INT 2F AX=CD09

2F - SWELL.EXE - TURN OFF "BORLAND SUPPORT"

AX = CD09h

Return

        AX = 0000h

SeeAlso

    INT 2F AX=CD0A"SWELL"


INT 2F AX=CD0A

2F - Intel Image Processing Interface - LOAD PALETTE

AX = CD0Ah
CX:BX -> palette structure (see below)

Return

        AL = 00h successful
   = 80h unsuccessful

SeeAlso

    INT 2F AX=CD09"Image Processing"

Table Formats

Palette structure:


INT 2F AX=CD0A

2F - SWELL.EXE - TURN ON "BORLAND SUPPORT"

AX = CD0Ah

Return

        AX = 0000h

SeeAlso

    INT 2F AX=CD09"SWELL"


INT 2F AX=CF00

2F - TEMPLEXX - INSTALLATION CHECK

AX = CF00h

Return

        AL = FFh if installed

Program

         TEMPLEXX is a popup keyboard template by Henson Scientific, Inc.

Note

     	values in AL other than 00h cause an immediate return without modifying
  any registers


INT 2F AX=D000

2F - MDEBUG display driver - GET DRIVER STATUS

AX = D000h

Return

        CF set on error
    all other registers must be unchanged)
CF clear if successful
    AL = FFh
    AH = driver semaphor
00h driver is not active
01h driver is active
    BX = CS of the driver
    CX = driver version (CH = major, CL = minor, must be >= 013Ch)
    DL = buffer semaphor
00h driver is not pending
01h driver is pending between functions 02h and 03h
    DH = show semaphor
00h driver is not pending
01h driver is pending between functions 04h and 05h

Notes

      	MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer,
  including a memory monitor, an interpreter and a disassembler
MDEBUG can use any two consecutive multiplex numbers between C0h and
  FFh; the default is D0h for the display driver and D1h for the
  command driver (see INT 60/AH=00h"MDEBUG" for the actual multiplex
  numbers used)
this function MUST be reentrant, as MDEBUG calls it after every popup
  before any other actions.  The handler should not change any
  registers if the display is in an unsupported mode or in a mode
  MDEBUG supports itself, e.g. a normal text mode with at least 80x25
  characters (i.e. 80x43 or 132x44 (v1.60+)). In this case MDEBUG will
  not call any of the other functions for this popup session.
MDEBUG will not call the other functions if the returned version is
  less than the actual version of MDEBUG.
if the driver is reentrant, DL and DH should be 00h

SeeAlso

    INT 2F AX=D001    INT 2F AX=D002    INT 2F AX=D003    INT 2F AX=D004    INT 2F AX=D005


INT 2F AX=D000

2F - ZWmous - INSTALLATION CHECK

AX = D000h

Return

        AX = 5A57h ("ZW") if installed
    BX = segment of resident code

Note

     	ZWmous is a shareware TSR by Zen Wu which permits the use of a mouse
  with many non-mouse applications by entering the letter under the
  mouse cursor on button presses

SeeAlso

    INT 33 AX=0003


INT 2F AX=D000

2F - Lotus CD/Networker - INSTALLATION CHECK

AX = D000h

Return

        AL = FF if CD/Networker TSR is loaded
BX = 4D44h ("MD") signature
CX = Windows mode word (from INT 2F/AX=1600h) at time of TSR load
DX = bitmap identifying all loaded CD/Networker TSRs.

Notes

      	INT 2F/AH=D0h is used by CD/Networker to communicate between a
  resident redirector TSR and a transient program that controls the
  TSR's CD-ROM drive emulation (volume attachments, caching, etc).
At present there is only one CD/Networker TSR; the bitmap always = 4.

SeeAlso

    INT 2F AX=D002"Lotus"    INT 2F AX=1500"CD-ROM"


INT 2F AX=D001

2F - MDEBUG display driver - INITIALIZE DRIVER

AX = D001h

Return

        CF set on error
AL = driver semaphor
AH = buffer semaphor

Notes

      	MDEBUG calls this function after every succesful call of the function
  00h. The function should reset all internal data and the status of
  the driver. If this function returns an error, MDEBUG will not call
  the other functions in this popup session.
MDEBUG can use any two consecutive multiplex numbers between C0h and
  FFh; the default is D0h for the display driver and D1h for the
  command driver

SeeAlso

    INT 2F AX=D000


INT 2F AX=D002

2F - MDEBUG display driver - SAVE GRAPHIC DATA

AX = D002h

Return

        CF set on error
CF clear if successful
    display memory saved and display switched to one of the text modes
      02h, 03h or 07h.

Note

     	MDEBUG calls this function only once every popup session before
  displaying its windows.

SeeAlso

    INT 2F AX=D000    INT 2F AX=D003


INT 2F AX=D002

2F - Multiplex - Lotus CD/Networker GET DATA AREA

AX = D002h
BX = 4D44h
DX = bitmap identifying one loaded CD/Networker TSR

Return

        ES:DI -> data area owned by TSR

Note

     	the format of the data area changes with each minor revision, so it
  cannot be counted on

SeeAlso

    INT 2F AX=D000"Lotus"


INT 2F AX=D003

2F - MDEBUG display driver - RESTORE GRAPHIC DATA

AX = D003h

Return

        CF set on error
CF clear if successful
    display restored to the mode it was in before calling AX=D002h and
      the display memory is restored

Note

     	MDEBUG calls this function only once every popup session just before
 it exits to normal DOS.

SeeAlso

    INT 2F AX=D000    INT 2F AX=D002


INT 2F AX=D004

2F - MDEBUG display driver - SHOW SAVED DATA

AX = D004h

Return

        CF set on error
CF clear if successful
    display switched to mode it was in before calling AX=D002h and the
      display memory is restored

Note

     	This function needn't save the display memory before changing it.

SeeAlso

    INT 2F AX=D000    INT 2F AX=D005


INT 2F AX=D005

2F - MDEBUG display driver - SWITCH BACK TO TEXT SCREEN

AX = D005h

Return

        CF set on error
CF clear if successful
    display restored to mode it was in before calling AX=D004h

Note

     	This function needn't save or change the display memory

SeeAlso

    INT 2F AX=D000    INT 2F AX=D004


INT 2F AH=D0

2F - MDEBUG display driver - RESERVED FUNCTION NUMBERS

AH = D0h
AL = 06h-7Fh

Note

     	these functions are reserved for future use


INT 2F AH=D0

2F - MDEBUG display driver - USER DEFINED FUNCTION NUMBERS

AH = D0h
AL = 80h-FFh

Note

     	these functions numbers are reserved for user defined features (e.g.
  communication between the transient und resident parts of the driver)


INT 2F AX=D100

2F C - MDEBUG command driver - GET STATUS

AX = D100h
BX = version of MDEBUG (BH = major, BL = minor)
CX = command driver counter
---v1.60+---
DS:SI -> MDEBUG identification table (see below)
ES = segment of display memory used by MDEBUG
DI = size of video mode used by MDEBUG
    (high byte = lines, low byte = columns)

Return

        DL = FFh
BX = version number of the driver if it is less than the version in BX,
     else unchanged
CX incremented

Notes

      	MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer,
  including a memory monitor, an interpreter, and a disassembler
called by MDEBUG at start of popup session; if the version number
  returned in BX is less than 1.52 (1.60 for MDEBUG v1.70), MDEBUG will
  not call any of the other functions during this popup session
MDEBUG can use any two consecutive multiplex numbers between C0h and
  FFh; the default is D0h for the display driver and D1h for the
  command driver (see INT 60/AH=00h"MDEBUG" for the multiplex numbers
  actually used)
this function must end with a far call to the old INT 2F handler after
  changing the registers
this function MUST be reentrant
command drivers must also declare the following data at the given
  offsets in the code segment
100h  3 BYTEs	JMP-command in .COM-files
103h	BYTE	NOP-command (90h)
104h 26 BYTEs	signature "Kommandotreiber für MDEBUG"
11Eh 12 BYTEs	name of driver, e.g. "MDHISDRV.COM"
each driver must have a unique name
MDEBUG will pass every key and command to the command driver(s) before
  checking for a valid internal command

SeeAlso

    INT 2F AX=D000    INT 2F AX=D101

Table Formats

MDEBUG identification table:


INT 2F AX=D101

2F - MDEBUG command driver - INITIALIZE DRIVER

AX = D101h
CX = command driver counter

Return

        DL = FFh if successful
CX incremented
     else error: all registers unchanged

Note

     	this function must end with a  far call to the old INT 2F handler after
  changing the registers
this function must be reentrant


INT 2F AX=D102

2F - MDEBUG command driver - EXECUTE INTERPRETER COMMAND

AX = D102h
BL = first character of the interpreter command
BH = last character of the interpreter command (or blank)
DS:SI -> parameter for the interpreter command as ASCIZ string
DS:DI -> MDEBUG data structure (see below)

Return

        AL = FFh
CF set on error
    AH = error number
01h syntax error
02h first shell of the command.com is activ
03h esc pressed
04h break pressed
05h DOS is busy
06h command ended
07h division by zero
08h invalid display driver
09h invalid command driver
0Ah error 8 and 9
0Bh unknown error
0Ch new error
    DS:SI -> ASCIZ error message (max 30 characters)
       else unknown error
CF clear if successful
    AH = return code
00h continue processing the command line
01h leave MDEBUG popup session
02h leave MDEBUG popup session and automatically popup again
    if the InDOS flag is zero
03h not used (same as 00h)
04h not used (same as 00h)
05h put new command line into the input buffer,
    DS:SI -> new command line (ASCIZ string, max 66 chars)
06h process new command line
    DS:SI -> new command line (ASCIZ string, max 66 chars)
       else unknown status, but continue processing commmand line

Note

     	this function must end with a far call to the old INT 2F handler (with
  registers unchanged) if the driver does not support the interpreter
  command in BX.  Otherwise, the driver must not chain to the old
  INT 2F.

Table Formats

MDEBUG data structure:


INT 2F AX=D103

2F - MDEBUG command driver - EXECUTE KEY IN THE MONITOR

AX = D103h
BX = key code (like result of an interrupt 16h call)
CX = 0 -> the cursor is in the ASCII column of the monitor
CX = 1 -> the cursor is in one of the hex fields of the monitor
DS:SI -> MDEBUG data structure (see AX=D102h)
ES:DI -> actual byte in the monitor

Return

        AL = FFh
AH = return code
    00h key processed, read next key
    01h leave MDEBUG popup session
    02h leave MDEBUG popup session and automatically popup again if DOS
is not busy
    03h signal an error (beep)
    04h driver has redefined the key, proceed with the new key
BX = new key code
MDEBUG will not pass the new key to the command driver(s)
   else treat like code 00h

Note

     	this function must end with a far call to the old INT 2F handler (with
  registers unchanged) if the driver does not support the key in BX.
  Otherwise, the driver must not chain to the old INT 2F.

SeeAlso

    INT 2F AX=D104


INT 2F AX=D104

2F - MDEBUG command driver - EXECUTE KEY IN THE INTERPRETER

AX = D104h
DS:SI -> MDEBUG data structure (see AX=D102h)

Return

        AL = FFh
AH = return code
    00h key processed, read next key
    01h leave MDEBUG popup session
    02h leave MDEBUG popup session and automactically popup again if
DOS is not busy
    03h signal an error (beep)
    04h driver has redefined the key, proceed with the new key
BX = new key code
MDEBUG won't pass the new key to the command driver(s)
    05h put new command line into the input buffer
DS:SI -> new command line (ASCIZ string, max 66 chars)
    06h process new command line
DS:SI -> new command line (ASCIZ string, max 66 chars)
   else treat like code 00h

Note

     	this function must end with a far call to the old INT 2F handler if the
  driver does not support the key in BX.  Otherwise, the driver must
  not chain to the old INT 2F.

SeeAlso

    INT 2F AX=D103


INT 2F AH=D1

2F - MDEBUG command driver - RESERVED FUNCTIONS

AH = D1h
AL = 05h-0Ah

Note

     	these functions are reserved for future use


INT 2F AX=D110

2F - MDEBUG command driver - GET ADDRESS OF THE OLD INT 2F

AX = D110h

Return

        DL = FFh
ES:BX -> next program in the chain for INT 2F
CX = code segment of this driver
DI = offset of driver identification table (see below) (v1.60+)

Notes

      	only called by the transient part of the driver
must be reentrant and the driver must not chain this function to the
  old INT 2F

Table Formats

The driver identification table:


INT 2F AX=D111

2F - MDEBUG command driver - START DRIVER

AX = D111h

Return

        DL = FFh

Notes

      	only called by the transient part of the driver to inform the resident
  part that it is installed
the function must be reentrant and the driver mustn't chain this
  function to the old INT 2F

SeeAlso

    INT 2F AX=D101    INT 2F AX=D112


INT 2F AX=D112

2F - MDEBUG command driver - END DRIVER

AX = D112h

Return

        DL = FFh

Notes

      	only called by the transient part of the driver to inform the resident
  part that it will be released after this function
the function must be reentrant and the driver mustn't chain this
  function to the old INT 2F

SeeAlso

    INT 2F AX=D101    INT 2F AX=D111


INT 2F AH=D1

2F - MDEBUG command driver - RESERVED FUNCTIONS

AH = D1h
AL = 13h-7Fh

Note

     	these functions are reserved for future use


INT 2F AH=D1

2F - MDEBUG command driver - USER DEFINED FUNCTIONS

AH = D1h
AL = 80h-FFh

Note

     	these functions are reserved for user defined features (e.g.
  communication between the transient und resident parts of the	driver)


INT 2F AX=D200

2F U - Quarterdeck - QEMM/QRAM/VIDRAM/MANIFEST v5.0+ - INSTALLATION CHECK

AX = D200h
BX = 5144h ("QD")
CX = 4D45h ("ME")
DX = 4D30h ("M0")

Return

        AL = FFh installed
if BX,CX,DX registers were as specified on entry:
    BX = 4D45h ("ME")
    CX = 4D44h ("MD")
    DX = 5652h ("VR")

Notes

      	QEMM/QRAM/VIDRAM/MANIFEST/etc will search for a free AH value from D2h
  through FFh, then C0h through D1h
for AL <> 0, if the BX/CX/DX values don't match a the identifier of a
  Quarterdeck product, it just chains to the previous INT 2F handler


INT 2F AX=D201

2F U - Quarterdeck - GET QD HIMEM PRESENCE

AX = D201h
BX = 4849h ("HI")
CX = 4D45h ("ME")
DX = 4D51h ("MQ")

Return

        BX = 4F4Bh ("OK")
ES:DI -> HIMEM entry point

Notes

      	QEMM/QRAM/VIDRAM/MANIFEST will search for a free AH value from D2h
  through FFh, then C0h through D1h

SeeAlso

    INT 2F AX=D201    /BX=5145


INT 2F AX=D201

2F U - Quarterdeck - QEMM/QRAM v5.0+ - GET HIRAM MEMORY CHAIN

AX = D201h
BX = 4849h ("HI")
CX = 5241h ("RA")
DX = 4D30h ("M0")

Return

        BX = 4F4Bh ("OK")
CX = segment of start of HIRAM chain
DX = QEMM/QRAM code segment

Notes

      	QEMM/QRAM/VIDRAM/MANIFEST will search for a free AH value from D2h
  through FFh, then C0h through D1h
QEMM and QRAM both responded the same
the HIRAM memory chain has the same format as the regular DOS 4.0
  memory chain (see INT 21/AH=52h), except that XMS Upper Memory Blocks
  have the block header program name field set to "UMB"; blocks whose
  "owner" field is set to the QEMM/QRAM code segment returned in DX
  are locked out regions such as video memory and ROMs.


INT 2F AX=D201

2F U - Quarterdeck - MANIFEST v1.0+ - INSTALLATION CHECK

AX = D201h
BX = 4D41h ("MA")
CX = 4E49h ("NI")
DX = 4645h ("FE")

Return

        BX = 5354h ("ST")

Note

     	QEMM/QRAM/VIDRAM/MANIFEST will search for a free AH value from D2h
  through FFh, then C0h through D1h


INT 2F AX=D201

2F U - Quarterdeck - DVDOS4GX.DVR - ???

AX = D201h
BX = 4D45h ("ME")
CX = 5155h ("QU")
DX = 5044h ("PD")

Return

        ???

Notes

      	AH=D2h is the default; use the Quarterdeck installation check described
  under AX=D200h
called by QEMM 6.03


INT 2F AX=D201

2F U - Quarterdeck - QEMM v5.0+ - INSTALLATION CHECK

AX = D201h
BX = 5145h ("QE")
CX = 4D4Dh ("MM")
DX = 3432h ("42")

Return

        BX = 4F4Bh ("OK")
ES:DI -> QEMM API entry point (see INT 67/AH=3Fh)

Notes

      	QEMM/QRAM/VIDRAM/MANIFEST will search for a free AH value from D2h
  through FFh, then C0h through D1h
this call is not available under QEMM v6.00 unless Windows3 support
  has been disabled with the NW3 switch to QEMM386.SYS

SeeAlso

    INT 2F AX=D201    /BX=4849h    INT 67 AH=3F


INT 2F AX=D201

2F U - Quarterdeck - VIDRAM v5.0+ - INSTALLATION CHECK

AX = D201h
BX = 5649h ("VI")
CX = 4452h ("DR")
DX = 414dh ("AM")

Return

        BX = 4F4Bh ("OK")
ES:DI -> VIDRAM entry point

Note

     	QEMM/QRAM/VIDRAM/MANIFEST will search for a free AH value from D2h
  through FFh, then C0h through D1h

Call VIDRAM entry point with:
AH = 00h get status
Return: AL = VIDRAM state (see below)
BL = extra RAM status
    00h VIDRAM does not use extra RAM
    01h VIDRAM uses EMS as extra RAM
    02h VIDRAM uses EGA as extra RAM
BH = feature flags
    bit 0: override enabled
    bit 1: mapped memory detected in A000h-B000h range
    bit 2: top of memory not at 640K
    bit 3: MDA detected
    bit 4: high RAM exists in video area
    bit 5: mapped memory detected in video area
    bits 6-7: reserved???
CL = current monitor (01h = mono, 80h = color)
SI = current top of memory (paragraph)
DI = segment of start of HiRAM chain
AH = 01h setup
AL = VIDRAM state (00h off, 01h no EGA graphics, 02h no graph)
BL = extra RAM status (see above)
BH = feature flags (see above)
CL = monitor (01h = monochrome, 80h = color)
SI = new top of memory (paragraph)
DI = segment of start of HiRAM chain
AH = 02h get end address of VIDRAM code
Return: ES:DI -> VIDRAM partial map context (see below)

Return

        CF set on error
CF clear if successful

Table Formats

Partial map context (EMS 3.2):
Partial map context (EMS 4.0):


INT 2F AX=D300

2F U - TeleReplica - INSTALLATION CHECK

AX = D300h
BX = 4562h
CX = 2745h
DX = serial port I/O base address??? (03F8h for v3.9)

Return

        SI = segment of resident code
AX = 251Dh
BX = DF21h
CX = F321h
DX = ???


INT 2F AX=D3CB

2F U - LapLink Quick Connect v6 - API

AX = D3CBh
CX = function
    0002h get ???
Return: BX:AX -> ???
CL = ???
CH = ???
DX = ???
DI = COM1 I/O port???
SI = COM2 I/O port???
    0003h initialization???
    0004h ???
    0005h initialization???
    0006h reset/clear ???
Return: AX = 0000h
ES:DI -> next byte after ??? cleared by this call
    0007h initialization???
    0008h uninstall
Return: BX = status
    0000h successful
    FFFFh incomplete, stub remains in memory

Return

        CX = 534Bh (except function 0002h)


INT 2F AX=D44D

2F - 4DOS.COM v2.1+ - API

AX = D44Dh
BH = function
    00h installation check
Return: AX = 44DDh
BL = minor version number
BH = major version number
CX = PSP segment address for current invocation
DL = 4DOS shell number (0 for the first (root) shell,
     updated each time a new copy is loaded)
    01h (internal, v2.1-3.03) terminate current copy of 4DOS
Return: nothing
(internal, v4.0) ???
Return: ES:BX -> data area (see below)
    02h ???
DX = ???
---v2.1-3.03 only---
    03h EXEC program
CX:DX -> EXEC record
    FEh deallocate shell number (passed through to root shell)
???
    FFh allocate shell number (passed through to root shell)

Note

     	bug in v3.00 will crash system if unrecognized value in BH

SeeAlso

    INT 2F AX=D44E    INT 2F AX=E44D    INT 21 AX=4403

Table Formats

EXEC record:
4DOS v4.0 data area:


INT 2F AX=D44E

2F - 4DOS v3.0+ - AWAITING USER INPUT

AX = D44Eh
---4DOS v3.01+---
BX = 0000h 4DOS is ready to display prompt
   = 0001h 4DOS has displayed the prompt, about to accept user input

Return

        handler must preserve SI, DI, BP, SP, DS, ES, and SS

Note

     	v3.00 only makes the call corresponding to BX=0001h, does not set BX

SeeAlso

    INT 2F AX=D44D


INT 2F AX=D44F

2F - 4DOS v4.0+ - KSTACK.COM - INSTALLATION CHECK

AX = D44Fh
BX = 0000h

Return

        AX = 44DDh if installed

SeeAlso

    INT 2F AX=D44F    /BX=0001


INT 2F AX=D44F

2F - 4DOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK

AX = D44Fh
BX = 0001h
CX = number of keystrokes (01h-FFh)
DS:DX -> keystroke list (one word per keystroke)

Return

        AX = status
    0000h successful
    nonzero failed
BX,CX,DX destroyed

Notes

      	the keystrokes are the exact values to return from subsequent calls to
  INT 16 with AH=00h,01h,10h, or 11h, with the following exceptions:
0000h causes subfunctions 01h and 11h to indicate an empty
keyboard buffer
FFFFh is followed by a word indicating the number of clock
ticks to delay before the next faked keystroke
v4.00 KSTACK overwrites any unread keystrokes from the previous
  invocation, and does not range-check CX; it will overwrite memory
  following the resident portion if CX is greater than 100h.

SeeAlso

    INT 2F AX=D44F    /BX=0000h    INT 16 AH=00    INT 21 AX=4403


INT 2F AX=D600

2F - HEART.COM - INSTALLATION CHECK

AX = D600h

Return

        AX = 0303h (two hearts) if installed
    ES:DI -> buffer (see below)

Program

         HEART.COM is a CPU lock-up/critical indicator utility by Mitch Davis.

Notes

      	Once the host program has identified the address of the data area, it
  can change this to indicate safe/critical, alternate colours, etc.
The entries for the color table are in char/attrib form.  Every two
  entries form a pair which is alternated between 68 times a minute.
  The first half of the table is for color videos, the second mono.
  Within each half, the first half is for the safe chars, and the
  second for the critical chars.

Table Formats

Buffer:


INT 2F AX=D600

2F U - VEDIT VSWAP - INSTALLATION CHECK

AX = D600h

Return

        AL = D6h if installed

Note

     	VSWAP is the resident portion of VEDIT's "swapper" capability.
VEDIT is a programmer's text editor by Greenview Data.

SeeAlso

    INT 2F AX=D601    INT 2F AX=D602


INT 2F AX=D601

2F U - VEDIT VSWAP - ???

AX = D601h
BL = subfunction number???

Return

        BL = return code ???
ES = resident portion's data??? segment
DX = resident portion's code segment

SeeAlso

    INT 2F AX=D600"VSWAP"


INT 2F AX=D602

2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP

AX = D602h
other registers set as for INT 21/AX=4B00h

Return

        CF set on error
    AL = error code
82h = failure due to ???
CF clear on success

SeeAlso

    INT 2F AX=D600"VSWAP"    INT 21 AH=4B"EXEC"


INT 2F AX=D701

2F - BANYAN VINES v4+ - GET BANV INTERRUPT NUMBER

AX = D701h
BX = 0000h

Return

        AX = 0000h installed
    BX = interrupt number (60h to 66h)
   nonzero not present

Note

     	if AX is nonzero, VINES 3.x or earlier may be installed, thus it is
  necessary to examine the four bytes preceding the handlers for
  INT 60 through INT 66 for the string "BANV"

SeeAlso

    INT 2F AX=D702    INT 2F AX=D703    INT 2F AX=D704


INT 2F AX=D702

2F U - BANYAN VINES v4+ - PCPRINT interface

AX = D702h
BX = function
???

Return

        ???

SeeAlso

    INT 2F AX=D701    INT 2F AX=D703    INT 61 AX=0005"Banyan"


INT 2F AX=D703

2F U - BANYAN VINES v4+ - MAIL interface

AX = D703h
BX = function
???

Return

        ???

SeeAlso

    INT 2F AX=D702    INT 2F AX=D704


INT 2F AX=D704

2F U - BANYAN VINES v4+ - Streettalk Directory Assistance interface

AX = D704h
BX = function
???

Return

        ???

SeeAlso

    INT 2F AX=D703    INT 61 AX=0007"Banyan"


INT 2F AX=D800

2F - Novell NetWare Lite - CLIENT.EXE - INSTALLATION CHECK

AX = D800h

Return

       	AL = FFh if installed
    DX = version number??? (0100h in 1.00)
    BX = data segment of resident copy???
    ES:DI = FAR entry point for API routines
    Load BX = function number and call for various
    functions.	Functions 00h - 10h supported in 1.00.

SeeAlso

    INT 2F AX=7A00    INT 2F AX=D880


INT 2F AX=D880

2F - Novell NetWare Lite - SERVER.EXE - INSTALLATION CHECK

AX = D880h

Return

       	AL = FFh if installed
    DX = version number??? (0100h in 1.00)
    BX = Data segment of resident copy???
    CL = 01h if SERVER is active
       = 00h if SERVER is disabled

SeeAlso

    INT 2F AX=7A00    INT 2F AX=D800


INT 2F AX=DA00

2F - ZyXEL ZFAX - INSTALLATION CHECK

AX = DA00h

Return

        AH = enabled state (00h = enabled, 01h = disabled)
AL = 5Ah installed

Note

     	ZFAX is the bundled FAX software which comes with the ZyXEL model
  fax modems.

SeeAlso

    INT 2F AX=CBDC    INT 2F AX=DA01    INT 2F AX=DA02    INT 2F AX=DA03


INT 2F AX=DA01

2F - ZyXEL ZFAX - UNINSTALL

AX = DA01h

Return

        AL = 00h Success
     01h Failure

SeeAlso

    INT 2F AX=DA00


INT 2F AX=DA02

2F - ZyXEL ZFAX - DISABLE

AX = DA02h

Return

        AL = 00h

SeeAlso

    INT 2F AX=DA03


INT 2F AX=DA03

2F - ZyXEL ZFAX - ENABLE

AX = DA03h

Return

        AL = 00h

SeeAlso

    INT 2F AX=DA02


INT 2F AX=DA55

2F U - TRAP.COM - INSTALLATION CHECK

AX = DA55h
DL = interrupt number
DH = ???

Return

        if installed
    AH = interrupt number
    AL = ???
    ES:BX -> ???

Notes

      	TRAP is an interrupt call tracer by Patrick Phillipot/Udo Chrosziel
a separate copy of TRAP is loaded for each interrupt to be traced; thus
  the interrupt number is part of the installation check


INT 2F AX=DC00

2F - GOLD.COM - INSTALLATION CHECK

AX = DC00h

Return

        AL = 00h not installed
   = FFh installed

Note

     	GOLD is a TSR by Bob Eager which makes the NumLock key return the code
  for F1; the purpose is to improve Kermit's VTxxx emulation


INT 2F AX=DC01

2F - GOLD.COM - GET STATE

AX = DC01h

Return

       	AL = status
    00h off
    01h on

SeeAlso

    INT 2F AX=DC00    INT 2F AX=DC02


INT 2F AX=DC02

2F - GOLD.COM - SET STATE

AX = DC02h
DL = new state
    00h off
    01h on

Return

        AL = 00h (OK)

SeeAlso

    INT 2F AX=DC01


INT 2F AH=DD

2F - SoftCom programs - API

AH = DDh
AL = FEh get info
    Return: ES:BX -> TSR info list (see below)
AL = program identifier
    BH = function
FDh get version
    Return: BX = version
FFh installation check
    Return: AL = FFh if installed
BX = version
ES = segment of resident code
others vary by program

Return

        AL = status
    bit 7 set on error
    AL = 81h unknown function

Table Formats

TSR info list:


INT 2F AX=DE00

2F - DESQview v2.26+ External Device Interface - INSTALLATION CHECK

AX = DE00h
BX = 4445h ("DE")
CX = 5844h ("XD")
DX = 4931h ("I1")

Return

        AL = FFh if installed (even if other registers do not match)
if BX,CX, and DX were as specified on entry,
    BX = 4845h ("HE")
    CX = 5245h ("RE")
    DX = 4456h ("DV")

Notes

      	AH=DEh is the default XDI multiplex number, but may range from C0h-FFh
programs should check for XDI starting at DEh to FFh, then C0h to DDh
the XDI handler should not issue any DOS or BIOS calls, nor should it
  issue DESQview API calls other than those allowed from hardware ints

SeeAlso

    INT 2F AX=DE02    INT 15 AX=5400


INT 2F AX=DE01

2F - DESQview v2.26+ External Device Interface - DRIVER CUSTOM SUBFUNCTION

AX = DE01h
BX = driver ID
other registers as needed by driver

Notes

      	XDI drivers should pass this call through to previous handler if ID
  does not match
DESQview never calls this function


INT 2F AX=DE01

2F U - Quarterdeck QDPMI.SYS v1.0 - INSTALLATION CHECK

AX = DE01h
BX = 4450h ("DP")
CX = 4D49h ("MI")
DX = 3039h ("09")

Return

        AL = FFh if installed
    BX = 4D42h ("MB")
    CX = 4921h ("I!")
    DX = 8F4Fh
    ES:DI -> filename of DPMI host overlay

Note

     	the installation check consists of testing for the existence of the
  character device QDPMI$$$


INT 2F AX=DE01

2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, Ralf Brown's XDI drivers

AX = DE01h
BX = 5242h ("RB")
CX:DX = program identifier
656F7000h ("eop",0) for DVeop

Return

        AX = 5242h ("RB") if installed
    ES:BX -> data or entry point
    CX = version number (CH = major, CL = minor)

Call DVeop entry point with:
ES:DI -> callback address or 0000h:0000h to remove callback

Return

        AX = status
    0000h failed (callback table full or attempted to remove non-
existent callback)
    0001h successful
ES:DI -> chaining address
BX,CX,DX destroyed

Notes

      	the callback function is called with a simulated interrupt when the
  DESQview window containing it is closed; it should perform all
  necessary cleanup and then perform a FAR jump to the chaining address
  or an IRET if the chaining address is 0000h:0000h
if the program wishes to remove itself before the window is closed, it
  should call the DVeop entry point with the previously returned
  chaining address and ignore the returned chaining address.


INT 2F AX=DE01

2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVTXDI.COM

AX = DE01h
BX = 7474h
CL = function
    00h installation check
Return: AL = FFh
    01h get process handle
DX = keys on Open Window menu (DL = first, DH = second)
Return: AX = process handle or 0000h if not running
    02h (v1.3+) set TMAN handle
DX = TMAN process handle
    03h (v1.3+) set open keys to ignore on next CL=01h call
DX = keys on Open Window menu (DL = first, DH = second)

Return

        BX = 4F4Bh ("OK")
DL destroyed

Note

     	DVTXDI is distributed as part of the shareware products DVTree (DOS
 shell/DESQview process manager) and DVTMAN by Mike Weaver


INT 2F AX=DE01

2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVSIXDI.COM

AX = DE01h
BX = 7575h
CX = function
    0000h installation check
Return: AX = 00FFh if installed
    0001h turn on notification (currently unused)
Return: AX = 0001h
    0002h turn off notification (currently unused)
Return: AX = 0001h
    0003h get process information
Return: AX = status
    0000h failed
    0001h successful
BX = last instantaneous time slice
in 1/100s (v1.10)
in 1/18s (v1.11+)
CX = number of processes
DX = number of "(starting)" records (v2.00+)
SI = number of records in process info array
     (v2.00+) (always 15 for v1.x)
ES:DI -> process info array (see below)
    0004h get version
Return: AH = major version
AL = minor version
    0005h (v1.10+) get time since DESQview started
Return: DX:AX = 1/100s since DV start (v1.10)
DX:AX = 1/18s since DV start (v1.11+)
    0006h (v1.10+) get number of task switches
Return: DX:AX = total task switches
CX = task switches in last instantaneous interval

Notes

      	DVSIXDI is part of the DVSI (DESQview System Information) package by
  Daniel J. Bodoh
for v1.00, function 0003h allocates common memory, which the caller
  must deallocate after reading the process information; only the
  currently used records are placed in the buffer
for v1.10+, function 0003h merely returns a pointer to the internal
  array of process information; the caller should make a copy of the
  array while inside a critical section (see INT 15/AX=101Bh).	Only
  those records with bit 7 of the first byte set are valid.

Table Formats

Information for one process (v1.00):
Information for one process (v1.10-v2.00):


INT 2F AX=DE01

2F U - DESQview v2.26+ XDI - DVXMS.DVR - ???

AX = DE01h
BX = FFFEh
CX = 4D47h ("MG")
DX = 0052h (0,"R")

Return

        AL = FFh
DX = 584Dh


INT 2F AX=DE02

2F C - DESQview v2.26+ External Dev Interface - DV INITIALIZATION COMPLETE

AX = DE02h
BX = mapping context of DESQview
DX = handle of DESQview system task

Note

     	driver should pass this call to previous handler after doing its work

SeeAlso

    INT 2F AX=DE03    INT 2F AX=DE0F    INT 15 AX=5400


INT 2F AX=DE03

2F C - DESQview v2.26+ External Dev Interface - DV TERMINATION

AX = DE03h
BX = mapping context of DESQview
DX = handle of DESQview system task

Notes

      	driver should pass this call to previous handler before doing its work
DESQview makes this call when it is exiting, but before unhooking any
  interrupt vectors

SeeAlso

    INT 2F AX=DE02    INT 2F AX=DE0F    INT 15 AX=5407


INT 2F AX=DE04

2F C - DESQview v2.26+ External Dev Interface - ADD PROCESS

AX = DE04h
BX = mapping context of new process
DX = handle of process

Return

        nothing

Notes

      	XMS XDI handler (installed by default) allocates a 22-byte record
  (see below) from "common" memory to control access to XMS memory
all DOS, BIOS, and DV API calls are valid in handler
driver should pass this call to previous handler after processing it

SeeAlso

    INT 2F AX=DE05    INT 2F AX=DE06    INT 15 AX=5401

Table Formats

XMS XDI structure:


INT 2F AX=DE05

2F C - DESQview v2.26+ External Dev Interface - REMOVE PROCESS

AX = DE05h
BX = mapping context of process
DX = handle of last task in process

Return

        nothing

Notes

      	XMS XDI handler releases the structure allocated by AX=DE04h
driver should pass this call to previous handler before processing it
all DOS, BIOS, and DV API calls except those generating a task switch
  are valid in handler

SeeAlso

    INT 2F AX=DE04    INT 2F AX=DE07    INT 15 AX=5402


INT 2F AX=DE06

2F C - DESQview v2.26+ External Dev Interface - CREATE TASK

AX = DE06h
BX = mapping context of process containing task
DX = handle of new task

Notes

      	driver should pass this call to previous handler after processing it
all DOS, BIOS, and DV API calls are valid in handler


INT 2F AX=DE07

2F C - DESQview v2.26+ External Dev Interface - TERMINATE TASK

AX = DE07h
BX = mapping context of process containing task
DX = handle of task

Notes

      	driver should pass this call to previous handler before processing it
all DOS, BIOS, and DV API calls except those generating a task switch
  are valid in handler

SeeAlso

    INT 2F AX=DE04    INT 2F AX=DE06    INT 2F AX=DE10


INT 2F AX=DE08

2F C - DESQview v2.26+ External Dev Interface - SAVE STATE

AX = DE08h
BX = mapping context of task being switched from
DX = handle of task being switched from

Notes

      	invoked prior to task swap, interrupts, etc
driver should pass this call to previous handler after processing it

SeeAlso

    INT 2F AX=DE09    INT 15 AX=5403    INT 15 AX=DE27


INT 2F AX=DE09

2F C - DESQview v2.26+ External Dev Interface - RESTORE STATE

AX = DE09h
BX = mapping context of task being switched to
DX = handle of task being switched to

Notes

      	state is restored except for interrupts
driver should pass this call to previous handler before processing it

SeeAlso

    INT 2F AX=DE08    INT 15 AX=5404    INT 15 AX=DE27


INT 2F AX=DE0A

2F C - DESQview v2.26+ External Dev Interface - CHANGE KEYBOARD FOCUS

AX = DE0Ah
BX = mapping context of task receiving focus
DX = handle of running task

Notes

      	driver should pass this call to previous handler before processing it
this call often occurs inside a keyboard interrupt

SeeAlso

    INT 15 AX=DE26    INT 15 AX=DE2F


INT 2F AX=DE0B

2F C - DESQview v2.26+ External Dev Interface - DVP PROCESSING COMPLETE

AX = DE0Bh
BX = mapping context of DESQview system task
CX = number of system memory paragraphs required for the use of all
XDI drivers (DV will add this to system memory in DVP buffer)
DX = handle of DESQview system task
SI = mapping context of new process if it starts
ES:DI -> DVP buffer

Return

        CX incremented as needed

Notes

      	once DV invokes this function, the DVP buffer contents may be changed
driver should pass this call to previous handler before processing it


INT 2F AX=DE0C

2F C - DESQview v2.26+ External Dev Interface - SWAP OUT PROCESS

AX = DE0Ch
BX = mapping context of task being swapped out
DX = handle of DESQview system task

Note

     	driver should pass this call to previous handler after processing it


INT 2F AX=DE0D

2F C - DESQview v2.26+ External Dev Interface - SWAP IN PROCESS

AX = DE0Dh
BX = mapping context of process just swapped in
DX = handle of DESQview system task

Note

     	driver should pass this call to previous handler before processing it


INT 2F AX=DE0E

2F C - DESQview v2.26+ External Dev Interface - DVP START FAILED

AX = DE0Eh
BX = mapping context of DESQview system task
DX = handle of DESQview system task
SI = mapping context of failed process (same as for call to AX=DE0Bh)

Note

     	driver should pass this call to previous handler after processing it


INT 2F AX=DE0F

2F C - DESQview v2.50+ External Dev Interface - INITIALIZE DV

AX = DE0Fh

Note

     	DESQview 2.50+ calls this function just before it completes its
  initialization.  At the time of the call, DESQview has not yet
  changed any interrupt vectors

SeeAlso

    INT 2F AX=DE02


INT 2F AX=DE10

2F C - DESQview v2.50+ External Dev Interface - FREE TASK

AX = DE10h
BX = mapping context of process
DX = task handle of process

Note

     	DESQview 2.50+ calls this function before it frees the task; it is
  similar to AX=DE07h but allows the XDI handler to make calls which
  cause context switches

SeeAlso

    INT 2F AX=DE06    INT 2F AX=DE07


INT 2F AX=DF00

2F - HyperWare programs - INSTALLATION CHECK

AX = DF00h
BX = product code
    4248h ('BH') HyperStb
    4448h ('DH') HyperDisk v4.20+
    4B48h ('KH') HyperKey
    5348h ('SH') HyperScreen
CX = 0000h
DX = 0000h

Return

        AL = status
    00h not installed
    FFh multiplex number in use
CX = 5948h ('YH') if selected product installed
---HyperDisk---
BX = code segment of resident portion
DX = HyperDisk local data version

Program

         HyperDisk is a shareware disk cache by HyperWare (Roger Cross)

Note

     	AH=DFh is the default; if it is already in use by some other program,
  HyperWare programs then scan multiplex numbers from C0h through FFh

SeeAlso

    INT 13 AX=8EED


INT 2F AX=E000

2F - SETDRVER.COM v2.10+ - INSTALLATION CHECK

AX = E000h

Return

        AX = 4A52h ("JR") if present

Program

         SETDRVER is a public domain TSR by Jacob Rieper which sets the
  apparent DOS version analogously to MSDOS SETVER

Note

     	this installation check differs from the usual one of returning AL=FFh

SeeAlso

    INT 2F AX=E001    INT 21 AH=52


INT 2F AX=E001

2F - SETDRVER.COM v2.10+ - GET SETDRVER VERSION

AX = E001h

Return

        AH = major version
AL = minor version

SeeAlso

    INT 2F AX=E000


INT 2F AX=E002

2F - SETDRVER.COM v2.10+ - GET ORIGINAL DOS VERSION INFO

AX = E002h

Return

        AL = FFh if successful
    BH = major DOS version
    BL = minor DOS version
    CH = DOS version flag
    CL = OEM number
    DH = major DR-DOS version number (FFh if unknown)
    DL = minor DR-DOS version number (FFh if unknown)

SeeAlso

    INT 2F AX=E003    INT 2F AX=E007    INT 21 AH=30


INT 2F AX=E003

2F - SETDRVER.COM v2.10+ - RESET INTERNAL VARIABLES

AX = E003h
BH = new major DOS version
BL = new minor DOS version
CH = new DOS version flag
CL = new DOS revision number
DH = new OEM number

SeeAlso

    INT 2F AX=E002


INT 2F AX=E004

2F - SETDRVER.COM v2.10+ - ENABLE TSR

AX = E004h

Return

        AL = FFh if successful

SeeAlso

    INT 2F AX=E000    INT 2F AX=E005    INT 2F AX=E006


INT 2F AX=E005

2F - SETDRVER.COM v2.10+ - DISABLE TSR

AX = E005h

Return

        AL = FFh if successful

SeeAlso

    INT 2F AX=E000    INT 2F AX=E004    INT 2F AX=E006


INT 2F AX=E006

2F - SETDRVER.COM v2.10+ - GET TSR STATUS

AX = E006h

Return

        AL = FFh if successful
    BL = status
01h resident and active
02h resident and inactive


INT 2F AX=E007

2F - SETDRVER.COM v2.10+ - GET TaskMAX STATUS AT INSTALLATION

AX = E007h

Return

        AL = FFh if successful
    BL = status
00h if TaskMAX not loaded before SETDRVER
FFh if TaskMAX was loaded before SETDRVER

SeeAlso

    INT 2F AX=E003


INT 2F AH=E0

2F - SETDRVER.COM - RESERVED FOR FUTURE USE

AH = E0h
AL = 08h-10h


INT 2F AX=E300

2F - ANARKEY.COM - INSTALLATION CHECK

AX = E300h

Return

        AL = 00h not installed
     FEh if installed but suspended (v3.0+)
     FFh installed

Notes

      	ANARKEY.COM is a commandline recall program by Steven Calwas
E3h is the default function number, but can be set to any value from
  C0h to FFh

SeeAlso

    INT 2F AX=E301    INT 2F AX=E302    INT 2F AX=E303    INT 2F AX=E304    INT 2F AX=E305    INT 2F AX=E306    INT 2F AX=E307


INT 2F AX=E301

2F U - ANARKEY.COM v2+ - GET ???

AX = E301h

Return

        DX:BX -> ???

SeeAlso

    INT 2F AX=E300

Table Formats

Returned data structure for ANARKEY v2.0:
Returned data structure for ANARKEY v3+:


INT 2F AX=E302

2F U - ANARKEY.COM v3+ - ???

AX = E302h
BL = ???

Return

        ???

SeeAlso

    INT 2F AX=E300


INT 2F AX=E303

2F U - ANARKEY.COM v3+ - ANARKMD API

AX = E303h
BL = function
    01h	toggle insert mode
    02h	display contents of history buffer
    03h	write history buffer to file
ES:DX -> file name
    04h	clear history buffer
    05h	undefine all aliases
    06h	show aliases
    07h	list programs using Unix switchar
    08h	jump to bottom of history buffer
    09h (v4.0) add string to history buffer
ES:DX -> ASCIZ string
    0Ah (v4.0) ???
ES:DX -> ???
    0Bh (v4.0) copy string to edit buffer for use as next input line
ES:DX -> ASCIZ string
    0Ch (v4.0) ???
    0Dh (v4.0) copy ??? to ???
    0Eh (v4.0) ???
    0Fh (v4.0) ???
    10h (v4.0) set ??? flag
    11h (v4.0) display error message about running in EMS under Windows

Return

        ???

SeeAlso

    INT 2F AX=E300


INT 2F AX=E304

2F U - ANARKEY.COM v2+ - ???

AX = E304h
BL = ???

Return

        ???

SeeAlso

    INT 2F AX=E300


INT 2F AX=E305

2F U - ANARKEY.COM v3+ - ENABLE/SUSPEND ANARKEY

AX = E305h
BL = new state
    01h suspended
    00h enabled

SeeAlso

    INT 2F AX=E300


INT 2F AX=E306

2F U - ANARKEY.COM v4.0 - GET ???

AX = E306h

Return

        AX = ???

SeeAlso

    INT 2F AX=E300


INT 2F AX=E307

2F U - ANARKEY.COM v4.0 - GET ???

AX = E307h

Return

        AX = ???
BL = ???

SeeAlso

    INT 2F AX=E300


INT 2F AX=E44D

2F - NDOS - API

AX = E44Dh

Note

     	as NDOS is a licensed version of 4DOS v3.03, the API is identical to
  that for 4DOS, except that AH=E4h instead of D4h and the installation
  check returns AX=44EEh instead of AX=44DDh

SeeAlso

    INT 2F AX=D44D    INT 2F AX=E44E


INT 2F AX=E44E

2F - NDOS - AWAITING USER INPUT

AX = E44Eh
BX = 0000h NDOS is ready to display prompt
   = 0001h NDOS has displayed the prompt, about to accept user input

Return

        handler must preserve SI, DI, BP, SP, DS, ES, and SS

SeeAlso

    INT 2F AX=E44D


INT 2F AX=ED00

2F - Phar Lap DOS EXTENDERS - INSTALLATION CHECK

AX = ED00h
BL = DOS extender
    01h 286dosx v1.3+ (Software Development Kit)
    02h 286dosx v1.3+ (Run-Time Kit)
    03h 386dosx v4.0+ (SDK)
    04h 386dosx v4.0+ (RTK)

Return

        AL = status
    00h not installed
    FFh installed
SI = 5048h ("PH")
DI = 4152h ("AR")
CH = major version number
CL = minor version number
DX = flags
    bit 0: running under DPMI
1: running under Phar Lap VMM

SeeAlso

    INT 2F AH=A1    INT 2F AX=F100    INT 2F AX=FBA1


INT 2F AX=ED80

2F - Phar Lap 286|DOS Extender Lite v2.5 - ???

AX = ED80h
BL = DOS extender ID (see AX=ED00h)
SI = 5048h ("PH")
DI = 4152h ("AR")
???

Return

        ???


INT 2F AX=EE00

2F - GRIDLOC.EXE - INSTALLATION CHECK

AX = EE00h

Return

        AL = FFh if installed

Note

     	GRIDLOC is a PC security program by Intelligent Security Systems, Inc.


INT 2F AX=F000

2F U - 4MAP - INSTALLATION CHECK

AX = F000h

Return

        AX = 00FFh

Notes

      	returns AX=00FFh for any value of AL not listed here
4MAP is a keybinding program for 4DOS (see AX=D44Dh) by Ho-Ping Tseng


INT 2F AX=F001

2F U - 4MAP - GET KEY MAPPINGS

AX = F001h

Return

        ES:BX -> key mappings

SeeAlso

    INT 2F AX=F000


INT 2F AX=F002

2F U - 4MAP - INSERT CHARACTER INTO ???

AX = F002h
BL = character to insert

Return

        AX = status
    0000h successful
    0001h buffer full

SeeAlso

    INT 2F AX=F000    INT 2F AX=F003


INT 2F AX=F003

2F U - 4MAP - INSERT CHARACTER INTO ???

AX = F003h
BL = character to insert

Return

        AX = status
    0000h successful
    0001h buffer full

SeeAlso

    INT 2F AX=F000    INT 2F AX=F002


INT 2F AH=F1

2F U - MIN-MEM v2.11 - INSTALLATION CHECK

AH = F1h
AL <> F1h

Return

        AL = F1h if installed

Note

     	MIN-MEM is a shareware TSR manager by Biologic which permits up to 24
  popup TSRs to be loaded but swapped out to disk, EMS, or XMS.	 One
  TSR at a time is brought back into memory at the user's request.


INT 2F AX=F100

2F - DOS EXTENDER INSTALLATION CHECK

AX = F100h

Return

        AL = FFh if DOS extender present
    SI = 444Fh ("DO")
    DI = 5358h ("SX")

Note

     	supported or soon to be supported by Phar Lap, Rational, Ergo, and IGC

SeeAlso

    INT 2F AH=A1    INT 2F AX=ED00    INT 2F AX=FBA1    /BX=0081h    INT 15 AX=BF02


INT 2F AX=F700

2F - AUTOPARK.COM - INSTALLATION CHECK

AX = F700h

Return

        AL = 00h not installed
     FFh installed

Note

     	AUTOPARK.COM is a resident hard disk parker by Alan D. Jones


INT 2F AX=F701

2F - AUTOPARK.COM - SET PARKING DELAY

AX = F701h
BX:CX = 32-bit count of 55ms timer ticks


INT 2F AX=F800

2F U - SuperStor PRO 2XON.COM - INSTALLATION CHECK

AX = F800h
CX = 4455h ("DU")
DL = 45h ("E")

Return

        AL = FFh if installed
    ES:BX -> ASCII signature "Universal Data Exchange"

Program

         SuperStor is a disk-compression program by Addstor.

Note

     	returns AX=0001h if AL is not 00h or 01h

SeeAlso

    INT 2F AX=1001    INT 2F AX=F801


INT 2F AX=F801

2F U - SuperStor PRO 2XON.COM - UNINSTALL

AX = F801h
CX = 4455h ("DU")
DL = 45h ("E")
ES:BX = return address if successful

Return

        at specified address if successfully removed from memory
else
    AL = error code
    ???

Program

         SuperStor is a disk-compression program by Addstor.

Note

     	returns AX=0001h if AL is not 00h or 01h

SeeAlso

    INT 2F AX=1001    INT 2F AX=F800


INT 2F AH=FB

2F - Multiplex - RESERVED BY BORLAND INTERNATIONAL

AH = FBh


INT 2F AX=FB00

2F U - AutoBraille v1.1A - INSTALLATION CHECK

AX = FB00h

Return

        AX = 00FFh if installed

Note

     	AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.

SeeAlso

    INT 10 AH=38    INT 14 AX=F0F1


INT 2F AX=FB00

2F U - Jot-It! v1.50 - INSTALLATION CHECK

AX = FB00h

Return

        AX = FFFFh if installed
    BX = version (BCD, BH=major, BL=minor)

SeeAlso

    INT 2F AX=FB03"Jot-It"    INT 2F AX=FB01"Jot-It"


INT 2F AX=FB01

2F U - AutoBraille v1.1A - ???

AX = FB01h
???

Return

        ???


INT 2F AX=FB01

2F U - Jot-It! v1.50 - GET USER NAME

AX = FB01h

Return

        DX:BX -> ASCIZ user name

SeeAlso

    INT 2F AX=FB02"Jot-It"


INT 2F AX=FB02

2F U - AutoBraille v1.1A - ???

AX = FB02h

Return

        AH = ???
AL = ???


INT 2F AX=FB02

2F U - Jot-It! v1.50 - GET MESSAGE DIRECTORY

AX = FB02h

Return

        DX:BX -> ASCIZ name of directory in which messages are stored

SeeAlso

    INT 2F AX=FB01"Jot-It"


INT 2F AX=FB03

2F U - AutoBraille v1.1A - GET NEXT ???

AX = FB03h

Return

        AX = ???


INT 2F AX=FB03

2F U - Jot-It! v1.50 - UNINSTALL

AX = FB03h

Return

        resident code removed from memory

Note

     	CAUTION: NO checks are performed to ensure that the interrupt vectors
  being unhooked (08h,09h,28h,2Fh) actually point at the Jot-It! code

SeeAlso

    INT 2F AX=FB00"Jot-It"


INT 2F AH=FB

2F U - AutoBraille v1.1A - SET ???

AH = FBh
AL = 04h-08h

Return

        AX = 0000h


INT 2F AH=FB

2F U - AutoBraille v1.1A - SET ???

AH = FBh
AL = 09h-0Fh (???, 0Eh = COM1, 0Fh = COM2)

Return

        ???

Note

     	AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.


INT 2F AH=FB

2F U - AutoBraille v1.1A - SET ???

AH = FBh
AL = 10h-1Fh
???

Return

        ???


INT 2F AX=FB20

2F U - AutoBraille v1.1A - SET ??? FLAGS

AX = FB20h
BL = flags to set

SeeAlso

    INT 2F AX=FB21"AutoBraille"


INT 2F AX=FB21

2F U - AutoBraille v1.1A - CLEAR ??? FLAGS

AX = FB21h
BL = flags to clear

SeeAlso

    INT 2F AX=FB20"AutoBraille"


INT 2F AX=FB22

2F U - AutoBraille v1.1A - SET ???

AX = FB22h
BL = ???

Note

     	AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.


INT 2F AX=FB28

2F U - AutoBraille v1.1A - ???

AX = FB28h
BX = ???
???

Return

        ???

SeeAlso

    INT 2F AX=FB29"AutoBraille"


INT 2F AX=FB29

2F U - AutoBraille v1.1A - ???

AX = FB29h
BX = ???
???

Return

        ???

SeeAlso

    INT 2F AX=FB28"AutoBraille"


INT 2F AH=FB

2F U - AutoBraille v1.1A - SET ???

AH = FBh
AL = 2Bh-34h
BX = ???


INT 2F AX=FB35

2F U - AutoBraille v1.1A - SET ???

AX = FB35h
BL = ???


INT 2F AX=FB36

2F U - AutoBraille v1.1A - SET ???

AX = FB36h
BL = ???


INT 2F AX=FB37

2F U - AutoBraille v1.1A - SET ???

AX = FB37h
BL = ???

Note

     	AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.


INT 2F AX=FB42

2F PU - Borland C++ DPMILOAD.EXE - INSTALLATION CHECK???

AX = FB42h
BX = 0001h

Return

        AX = version number??? (AL=major, AH=minor)
CX = next-selector increment
---BC2.0---
ES:BX -> 80-byte buffer for ???
DX = DPMI version
---BC3.0---
BX = ??? (0000h)
DX = ???
ES:SI -> list of valid selectors ???

Notes

      	The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  as version 1.000, while the version distributed with BC++ 3.0
  identifies itself as version 1.0; the former is 10864 bytes, the
  latter 22180 bytes.  The BC2.0 version is a DPMI loader, while
  the BC3.0 version also adds a DPMI host and DOS extender
the BC++ 2.0 version displays an error message if called with BX
  values other than 0001h-0008h


INT 2F AX=FB42

2F PU - Borland C++ 2.0 DPMILOAD.EXE - ALLOCATE MEMORY

AX = FB42h
BX = 0002h
CX = size in bytes
DX = bit flags
    bit 2: set to allocate DOS memory, clear for DPMI memory
SI = selector of descriptor to be modified to access allocated memory
DI = selector of a second descriptor to be modified

Return

        AX = ??? or 0000h on error
CX:DX = linear base address of DPMI memory block
SI:DI = handle for DPMI memory block or FFFFh:FFFFh
???

Note

     	two segment descriptors may be set if a code and an aliased data
  segment are required; if only one descriptor is needed, SI should
  equal DI on entry

BUG

    	when allocating DOS memory, the code computes the linear address by
  multiplying the segment number by 4 rather than shifting by 4

SeeAlso

    INT 2F AX=FB42    /BX=0003h    INT 2F AX=FB42    /BX=0008


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ALLOCATE MEMORY

AX = FB42h
BX = 0002h
ES:SI -> memory block info (see below)

Return

        ???

Note

     	The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  as version 1.000, while the version distributed with BC++ 3.0
  identifies itself as version 1.0; the former is 10864 bytes, the
  latter 22180 bytes.

SeeAlso

    INT 2F AX=FB42    /BX=0003h    INT 2F AX=FB42    /BX=0008

Table Formats

Memory block info:


INT 2F AX=FB42

2F PU - Borland C++ DPMILOAD.EXE - GET AVAILABLE MEMORY

AX = FB42h
BX = 0003h

Return

        DX:AX = size of largest free block in paragraphs
0000h:0000h on error (BC3.0 version only)

Note

     	AX and DX are destroyed on error, but no other error indicator is
  returned, under the BC++ 2.0 version of DPMILOAD

SeeAlso

    INT 2F AX=FB42    /BX=0002


INT 2F AX=FB42

2F PU - Borland C++ DPMILOAD.EXE - LOAD PROTECTED-MODE EXECUTABLE???

AX = FB42h
BX = 0004h
DS:DX -> ASCIZ filename of protected-mode executable

Return

        CX = selector of ??? or 0000h
---BC3.0---
DX = status (0000h,FFF4h,others???) (see below)

Note

     	the filename may also be terminated by a CR rather than a NUL under the
  BC++ 3.0 version of DPMILOAD

Values for status:
 0000h	successful
 0001h	??? failure
 0002h	invalid selector
 0004h	unknown error
 0008h	no more LDT descriptors available???
 FFDEh	unable to set descriptor
 FFDFh	unable to get segment base address
 FFE0h	???
 FFF2h	invalid parameter value
 FFF4h	component of filename too long (name not in 8.3 format)
 FFF5h	pathname too long (>79 chars)
 FFF6h	???
 FFF8h	???
 FFF9h	index out of range
 FFFAh	???
 FFFCh	invalid access to code segment???
 FFFEh	???
 FFFFh	general error


INT 2F AX=FB42

2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NAME

AX = FB42h
BX = 0005h
CX = selector of DPMILOAD data (see below)
DS:DX -> ASCIZ or CR-terminated name of ??? (case ignored)

Return

        DX = status (see AX=FB42h/BX=0004h)
    0000h successful
AX:BX -> ??? FAR function (called with two words on top of stk)
    else
BX destroyed

SeeAlso

    INT 2F AX=FB42    /BX=0006h    INT 2F AX=FB42    /BX=000E

Table Formats

DPMILOAD data:
Name list entry [array]:
6-byte objects:
Memory control record:


INT 2F AX=FB42

2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NUMBER

AX = FB42h
BX = 0006h
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)
DX = 1-based index into array of ??? 6-byte objects

Return

        DX = status (see AX=FB42h/BX=0004h)
    0000h successful
AX:BX -> ??? FAR function (called with two words on top of stk)
    else
BX destroyed

SeeAlso

    INT 2F AX=FB42    /BX=0005h    INT 2F AX=FB42    /BX=000E


INT 2F AX=FB42

2F PU - Borland C++ 2.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0007h
CX = selector of ???

Return

        ???

Note

     	The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  as version 1.000, while the version distributed with BC++ 3.0
  identifies itself as version 1.0; the former is 10864 bytes, the
  latter 22180 bytes.


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0007h
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)
???

Return

        DX = status (see AX=FB42h/BX=0004h)
    0000h successful
AX = ???


INT 2F AX=FB42

2F PU - Borland C++ 2.0 DPMILOAD.EXE - FREE MEMORY BLOCK

AX = FB42h
BX = 0008h
CX = bit flags
    bit 2: set if DPMI memory, clear if DOS memory
DX = selector of DOS memory block
SI:DI = handle of DPMI memory block

Return

        DX = 0000h on error, unchanged if succcessful

Note

     	The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  as version 1.000, while the version distributed with BC++ 3.0
  identifies itself as version 1.0; the former is 10864 bytes, the
  latter 22180 bytes.

SeeAlso

    INT 2F AX=FB42    /BX=0002


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE MEMORY BLOCK

AX = FB42h
BX = 0008h
ES:SI -> memory block info (see AX=FB42h/BX=0002h"3.0")

Return

        ???

SeeAlso

    INT 2F AX=FB42    /BX=0009


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - RESIZE MEMORY BLOCK

AX = FB42h
BX = 0009h
ES:SI -> memory block info (see AX=FB42h/BX=0002h"3.0")
???

Return

        ???

SeeAlso

    INT 2F AX=FB42    /BX=0008h"3.0


INT 2F AX=FB42

2F RU - Borland C++ 3.0 DPMILOAD.EXE - INIT DPMI HOST AND SPAWN SUBSHELL

AX = FB42h
BX = 000Ah
CX = 0001h
DX = ???
SI = ???

Return

        after user exits subshell

Notes

      	this call is used by DPMIRES; unlike most of the DPMILOAD calls, this
  function is not available in protected mode.
the BC2.0 version of DPMILOAD is purely a DPMI loader, while the BC3.0
  version also adds a DPMI host and DOS extender.

SeeAlso

    INT 2F AX=FB42    /BX=0004h    INT 2F AX=FB42    /BX=0015


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - UNUSED

AX = FB42h
BX = 000Bh


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE DESCRIPTORS FOR MEMORY BLOCK???

AX = FB42h
BX = 000Ch ???
ES:SI -> memory block info ??? (see AX=FB42h/BX=0002h"3.0")

Return

        DX = status???

SeeAlso

    INT 2F AX=FB42    /BX=000F


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - SIMULATE REAL MODE INTERRUPT

AX = FB42h
BX = 000Dh
CX = number of words to copy from protected-mode to real mode stack
DL = interrupt number
DH = flags
    bit 0: reset the interrupt controller and A20 line
ES:DI -> real-mode call structure (see INT 31/AX=0300h)

Return

        CX = status
    0000h successful
    0001h failed

SeeAlso

    INT 31 AX=0300


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???

AX = FB42h
BX = 000Eh
DS:DX -> ASCIZ or CR-terminated name of ???

Return

        CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h) corresponding to
name, 0000h on error

SeeAlso

    INT 2F AX=FB42    /BX=0006h    INT 2F AX=FB42    /BX=001F


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - REALLOCATE LDT DESCRPS TO MEMBLK???

AX = FB42h
BX = 000Fh
ES:SI -> memory block info (see AX=FB42h/BX=0002h"3.0")

Return

        ???

SeeAlso

    INT 2F AX=FB42    /BX=000C


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SEGMENT TO SELECTOR

AX = FB42h
BX = 0010h
DX = segment number

Return

        CX = status (see also AX=FB42h/BX=0004h)
    0000h successful
DX = selector number for descriptor
    0008h failed

SeeAlso

    INT 2F AX=FB42    /BX=0023


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0011h
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)
???

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
AX:BX -> ??? name
    0002h invalid selector
    FFFEh ??? error


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0012h
CX = selector for ???

Return

        CX = selector for ???


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0013h
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)
DX = 1-based index of ???

Return

        CX = status (see also AX=FB42h/BX=0004h)
    0000h successful
BX = ??? or 0000h
    0002h invalid selector
    FFF9h ??? error


INT 2F AX=FB42

2F RU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0014h ???
CX = 0001h
Return: BX = 0000h

Note

     	unlike most of the DPMILOAD functions, this call is available only in
  real or V86 mode

SeeAlso

    INT 2F AX=FB42    /BX=000A


INT 2F AX=FB42

2F RU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0015h uninstall
CX = 0001h

Return

        ???

Note

     	unlike most of the DPMILOAD functions, this call is available only in
  real or V86 mode

SeeAlso

    INT 2F AX=FB42    /BX=000A


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???

AX = FB42h
BX = 0016h
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
CX = ???


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0017h
CX = ???
DX = ???
???

Return

        DX = status (0000h,0001h) (see below)


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET ???

AX = FB42h
BX = 0018h
CX = ???


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0019h
CX = selector for ???
???

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
CX = selector for ???


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 001Ah
CX = selector for ???
???

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
    0004h failed
CX:BX -> ???


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 001Bh
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)
DX = offset of ???

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
BX = selector for ???
CX = selector for ???
    0002h invalid selector


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 001Ch
ES = selector for DPMILOAD data (see AX=FB42h/BX=0005h)
CX = 1-based index of ???
DX = 1-based index of ???

Return

        DX = status (0000h,0002h,FFF9h) (see AX=FB42h/BX=0004h)


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???

AX = FB42h
BX = 001Dh

Return

        CX:DX = ???


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 001Eh
CX = ???
???

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
    FFF7h ??? error
CX:BX -> ???


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???

AX = FB42h
BX = 001Fh
DS:DX -> 8-character name of ???
???

Return

        CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h) for ???
0000h on error

SeeAlso

    INT 2F AX=FB42    /BX=000E


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION???

AX = FB42h
BX = 0020h

Return

        DX = ??? (always 0000h)


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROCESSOR EXCEPTION HANDLER VECT

AX = FB42h
BX = 0021h
CL = exception number (00h-1Fh)

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
AX:BX = selector:offset of handler
    FFF2h unable to get exception handler vector

SeeAlso

    INT 2F AX=FB42    /BX=0022h    INT 2F AX=FB42    /BX=0024h    INT 31 AX=0202


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROCESSOR EXCEPTION HANDLER VECT

AX = FB42h
BX = 0022h
CL = exception number (00h-1Fh)
SI:DX = selector:offset of new handler

Return

        DX = status (0000h,0004h,FFF2h) (see AX=FB42h/BX=0004h)

SeeAlso

    INT 2F AX=FB42    /BX=0021h    INT 2F AX=FB42    /BX=0025h    INT 31 AX=0203


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SELECTOR TO SEGMENT NUMBER

AX = FB42h
BX = 0023h
CX = selector

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
CX = real-mode segment number
    FFF2h descriptor has invalid base address for real-mode segment

SeeAlso

    INT 2F AX=FB42    /BX=0010


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROTECTED-MODE INTERRUPT VECTOR

AX = FB42h
BX = 0024h
CL = interrupt number

Return

        DX = status (0000h) (see also AX=FB42h/BX=0004h)
AX:BX = selector:offset of handler

SeeAlso

    INT 2F AX=FB42    /BX=0025h    INT 31 AX=0204


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROTECTED-MODE INTERRUPT VECTOR

AX = FB42h
BX = 0025h
CL = interrupt number
SI:DX = selector:offset of new handler

Return

        DX = status (0000h,0004h,FFF2h) (see AX=FB42h/BX=0004h)

SeeAlso

    INT 2F AX=FB42    /BX=0024h    INT 31 AX=0205


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???

AX = FB42h
BX = 0026h
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)
DX = 1-based index of ???
???

Return

        DX = status (0000h,0002h,FFF9h) (see AX=FB42h/BX=0004h)
    0000h successful
BX = offset of ??? within data structure


INT 2F AX=FB42

2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???

AX = FB42h
BX = 0027h
CX = selector of DPMILOAD data (see AX=FB42h/BX=0005h)
DX = offset of ???

Return

        DX = status (see also AX=FB42h/BX=0004h)
    0000h successful
BX = ???


INT 2F AX=FB42

2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE

AX = FB42h
BX = 0080h
???

Return

        AX = ???
???


INT 2F AX=FB42

2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE

AX = FB42h
BX = 0081h
???

Return

        AX = ???
???


INT 2F AX=FB43

2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION

AX = FB43h
BX = subfunction (at least 0000h-000Eh)

Notes

      	this function is only present in protected mode; it does nothing but
  an immediate IRET
DPMILOAD.EXE itself calls various subfunctions:
    subfunction 0004h is called with CX=selector of ???, DI=selector
of DPMILOAD data
    subfunction 0008h is called with CX=selector of DPMILOAD data


INT 2F AX=FB64

2F U - AutoBraille v1.1A - GET ???

AX = FB64h

Return

        AX = ??? (0006h seen)

Note

     	AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.


INT 2F AX=FBA1

2F U - TKERNEL (Borland DOS extender) - INSTALLATION CHECK

AX = FBA1h
BX = 0081h
ES:DI -> 16-byte buffer

Return

        if installed, first four bytes of ES:DI buffer are "IABH"

Note

     	TKERNEL is a licensed version of AI Architects/Ergo's OS/x86.  It was
  present only in Borland C++ 2.0; with version 3.0, the DOS extender
  was moved into DPMILOAD.

SeeAlso

    INT 2F AH=A1    INT 2F AX=F100    INT 2F AX=FBA1    /BX=0082h    INT 2F AX=FBA1    /BX=0084h    INT 15 AX=BF02

SeeAlso

    INT 21 AX=4403"TKERNEL"


INT 2F AX=FBA1

2F U - TKERNEL (Borland DOS extender) - GET ENTRY POINT

AX = FBA1h
BX = 0082h
ES:DI -> response buffer (see below)

Return

        ES:DI buffer filled

SeeAlso

    INT 2F AX=FBA1    /BX=0081h    INT 2F AX=FBA1    /BX=0084

Table Formats

Response buffer:
Call entry point with:
AX = function number
    0000h initialize???
STACK:	WORD  ???
Return: AX = status???
STACK unchanged
    0001h get version???
Return: AX = 0200h for v2.0.34
    0002h get ???
Return: AX = ??? (011Eh or 0182h seen)
    0003h load protected-mode executable
STACK:	DWORD -> ASCIZ filename of executable
DWORD	???
DWORD -> program arguments (counted string plus CR)
DWORD -> environment for protected-mode executable
(terminated with two consecutive NULs)
DWORD -> WORD buffer for ???
Return:	AX = status???
STACK unchanged
    0004h get descriptor
STACK:	WORD	selector for which to get descriptor
WORD	segment number (when running in real mode)
DWORD -> buffer for descriptor
Return: CF clear if successful
    buffer filled
CF set on error
    AX destroyed???
STACK unchanged
    0005h ???
STACK:	WORD	selector for ???
WORD	subfunction number???
0000h run previously-loaded program???
0001h ??? (similar to 0000h)
0002h
0003h
0005h ??? (similar to 0000h and 0001h)
Return: AX = status???
STACK unchanged
    0006h ???
STACK:	WORD ???
DWORD -> WORD (call) max iterations of ???
      (return) remaining iterations
Return: AX = ???
STACK unchanged
    0007h unused
Return: AX = 0001h
    0008h unused
Return: AX = 0001h
    0009h copy protected-mode memory into conventional memory
STACK:	WORD	selector for source segment
WORD	segment of source if in real mode???
DWORD	offset of source
WORD	number of bytes to copy
DWORD -> low-memory destination
Return: AX = status
STACK unchanged
    000Ah copy conventional memory into protected-mode memory
STACK:	WORD	selector for destination segment
WORD	segment of destination if in real mode???
DWORD	offset of destination
WORD	number of bytes to copy
DWORD -> low-memory source
Return: AX = status
STACK unchanged
    000Bh get ??? pointers
STACK:	WORD desired pointer
0000h get ???
0002h get protected-mode CR3
0003h get 4K page table buffer pointer
else Return: DX:AX = FFFFh:FFFFh
Return: DX:AX = requested pointer
STACK unchanged
    000Ch set ??? pointers
STACK:	WORD desired pointer
0000h set ???
0002h set protected-mode CR3
0003h set 4K page table buffer pointer
else ignore
DWORD new value for pointer
Return: STACK unchanged
    000Dh get ??? pointers
STACK:	WORD desired pointer
0000h get ???
0001h get ???
0002h get ???
0003h get ???
0004h get ???
0005h get ???
0006h get ???
0007h get ???
else Return: DX:AX = FFFFh:FFFFh
Return: DX:AX = desired pointer
STACK unchanged
    000Eh set ??? pointer
STACK:	WORD desired pointer
0000h set ???
0001h set ???
0002h set ???
0003h set ???
0004h set ???
0005h set ???
0006h set ???
0007h set ???
else Return: DX:AX = FFFFh:FFFFh
Return: STACK unchanged
    000Fh get ???
Return: AX = ??? (seen 0008h)
    0010h get ???
Return: AX = ???
    0011h determine whether selector is valid
STACK:	WORD	possible selector
Return: AX = selector or 0000h if invalid
STACK unchanged
    0012h get physical address
STACK:	WORD	selector for desired segment
WORD	segment number if in real mode
DWORD	offset within segment
Return: DX:AX = 32-bit physical address or 00000000h on error
BX destroyed
STACK unchanged
    0013h ???
Note:	normally jumps to code for function 0012h
    0014h copy protected-mode memory to conventional memory, with ???
STACK:	WORD	selector for source segment
WORD	segment of source if in real mode???
DWORD	offset of source
WORD	number of bytes to copy
DWORD -> low-memory destination
Return: AX = status???
STACK unchanged
    0015h copy conventional memory to protected-mode memory, with ???
STACK:	WORD	selector for destination segment
WORD	segment of destination if in real mode???
DWORD	offset of destination
WORD	number of bytes to copy
DWORD -> low-memory source
Return: AX = status???
STACK unchanged
    0016h set ??? pointer
STACK:	WORD	unused
DWORD -> ??? or 0000h:0000h
Return: AX = 0000h
STACK unchanged
    0017h allocate real-mode procedure???
STACK:	DWORD	ASCIZ name of procedure
DWORD ???
DWORD	address of subroutine to invoke
Return: AX = status
    0032h procedure by that name exists
    0033h no more real-mode procedures available
DX destroyed
STACK unchanged
    0018h unused
Return: AX = 0001h
    0019h get parameter block
Return: DX:AX -> parameter block (format unknown at this time,
but 92h bytes)
(preceded by signature "!!PARAM-BLOCK!!")
    001Ah get ???
Return: AX = ??? (0148h seen)
    001Bh free real-mode procedure???
STACK:	DWORD -> ASCIZ name of procedure
Return: ???
STACK unchanged
    001Ch check whether packets from protected mode task pending
Return: AX = 0001h if packets pending, 0000h if not
    001Dh set ???
STACK:	DWORD ??? or 0000h:0000h
Return: AX,BX destroyed
STACK unchanged
    001Eh ???
STACK:	WORD ??? (high byte ignored)
DWORD -> data structure (see below)
Return: AX,BX,CX,DX destroyed
data structure updated
STACK unchanged
Format of data structure
Offset	Size	Description
 00h  2 BYTEs	unused
 02h	WORD	???
 04h	WORD	???
 06h	WORD	???
 08h  2 BYTEs	unused
 0Ah	WORD	???
 0Ch	WORD	(call) ???
(return) offset of this data structure (BUG?)
    001Fh set ???
STACK:	WORD ??? (set to 0001h if zero)
Return: AX destroyed
STACK unchanged
    0020h ???
STACK:	DWORD -> ??? (8 bytes of data)
Return: AX = ???
STACK unchanged
    0021h ???
STACK:	DWORD -> ??? (8 bytes of data)
WORD	???
WORD	???
Return: AX = ???
STACK unchanged
    0022h ???
STACK:	DWORD -> ??? (8 bytes of data)
DWORD -> 4-byte buffer for results
Return: AX = ???
STACK unchanged
    0023h ???
STACK:	DWORD -> ??? (8 bytes of data)
Return: AX = ???
STACK unchanged
    0024h set ???
STACK:	WORD ???
Return: AX destroyed
STACK unchanged
    0025h get ???
Return: AX = ??? (value set with func 0024h)
    0026h BUG: jumps to hyperspace due to fencepost error
    FFFFh set DOS memory management functions
BX:SI -> FAR routine for allocating DOS memory
(called with AH=48h,BX=number of paragraphs to alloc;
 returns CF clear, AX=segment of allocated memory, or
 CF set on error)
CX:DI -> FAR routine for freeing DOS memory
(called with AH=49h,ES=segment of block to free;
 returns CF set on error,AX=error code)
Note: each of these pointers normally points at INT 21/RETF
    other Return: AX = 0001h

Note

     	BX may be destroyed by any of the API calls


INT 2F AX=FBA1

2F U - TKERNEL (Borland DOS extender) - UNINSTALL

AX = FBA1h
BX = 0084h
ES:DI -> response buffer (see below)

Return

        ES:DI buffer filled

SeeAlso

    INT 2F AX=FBA1    /BX=0081h    INT 2F AX=FBA1    /BX=0084

Table Formats

Response buffer:


INT 2F AX=FBFB

2F U - SoundBlaster speech driver - INSTALLATION CHECK

AX = FBFBh
ES = 0000h

Return

        ES nonzero if installed
    ES:BX -> entry point data structure (see below)

SeeAlso

    INT 80BX=0000h    INT F3SoundBlaster

Table Formats

Entry point data structure:
Call driver entry point with:
AL = function
    07h speak a string
data buffer (see above) contains:
BYTE  length of string
      N BYTEs string to speak


INT 2F AX=FE00

2F U - NORTON UTILITIES 5.0+ TSRs - INSTALLATION CHECK/STATUS REPORT

AX = FE00h
DI = 4E55h ("NU")
SI = TSR identifier
    4346h ("CF") NCACHE-F (v5) / NCACHE (v6.0+)
    4353h ("CS") NCACHE-S (v5 only)
    4443h ("DC") DISKREET
    444Dh ("DM") DISKMON
    4653h ("FS") FILESAVE (v5) / EP (v6.0+)

Return

        SI = TSR reply
    lowercase version of SI on entry (i.e. SI OR 2020h)
AH = status
    00h installed but disabled internally
    01h installed and enabled
AL = status
    00h	NCACHE-x or DISKREET installed
    01h FILESAVE / EP / DISKMON v6 installed
    45h	DISKMON v5 installed
BX = length of *.INI file (DISKMON and FILESAVE/EP only) (see below)
CX = segment of resident portion
    FFFFh if completely loaded high (NCACHE)
---FILESAVE/EP---
DL = ??? (apparently always 00h)
---DISKMON---
DX = ??? (apparently always 1AE6h [v5] / 1B86h [v6])

Note

     	the value returned in CX is incorrect for NCACHE 6.00

SeeAlso

    INT 2F AX=FE01    INT 2F AX=FE02    INT 2F AX=FE03    INT 2F AX=FE04    INT 2F AX=FE05

Table Formats

DISKMON.INI file:
FILESAVE.INI / EP.INI file:


INT 2F AX=FE01

2F U - NORTON UTILITIES 5.0+ TSRs - ENABLE

AX = FE01h
DI = 4E55h ("NU")
SI = TSR identifier (see AX=FE00h)

Return

        SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
AX = status
    0002h successful (DISKMON, FILESAVE, EP)
    FE00h successful (NCACHE-x, DISKREET)

Notes

      	if the enable/disable calls are used on DISKMON or NCACHE-x, the status
  report generated by the programs still indicates the previous state,
  and DISKMON.INI is not updated
apparently has no effect on DISKREET

SeeAlso

    INT 2F AX=FE00    INT 2F AX=FE02


INT 2F AX=FE02

2F U - NORTON UTILITIES 5.0+ TSRs - DISABLE

AX = FE02h
DI = 4E55h ("NU")
SI = TSR identifier (see AX=FE00h)

Return

        SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
AX = status
    0004h successful (DISKMON, FILESAVE)
    FE00h successful (NCACHE-x, DISKREET)

Note

     	(see AX=FE01h)

SeeAlso

    INT 2F AX=FE00    INT 2F AX=FE01


INT 2F AX=FE03

2F U - NORTON UTILITIES 5.0+ TSRs - internal - ???

AX = FE03h
DI = 4E55h ("NU")
SI = TSR identifier (see AX=FE00h)

Return

        SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
AX = status
    0006h successful???

Notes

      	only supported by DISKMON, FILESAVE, and NCACHE-x
reportedly dangerous

SeeAlso

    INT 2F AX=FE00


INT 2F AX=FE04

2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???

AX = FE04h
DI = 4E55h ("NU")
SI = TSR identifier (see AX=FE00h)

Return

        SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
AX = status
    0008h successful???

SeeAlso

    INT 2F AX=FE00


INT 2F AX=FE05

2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???

AX = FE05h
DI = 4E55h ("NU")
SI = TSR identifier (see AX=FE00h)

Return

        SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
AX = status
    000Ah successful???

Note

     	reportedly dangerous

SeeAlso

    INT 2F AX=FE00


INT 2F AX=FF00

2F - Topware Network Operating System - INSTALLATION CHECK

AX = FF00h

Return

        AL = 00h not installed, OK to install
   = 01h not installed, not OK to install
   = FFh installed

SeeAlso

    INT 2F AX=FF01    INT 21 AH=FF"Topware"    INT 7ATopware


INT 2F AX=FF01

2F - Topware Network Operating System - GET VERSION

AX = FF01h

Return

        AX = version

SeeAlso

    INT 2F AX=FF00


INT 30

30 - (NOT A VECTOR!) - DOS 1+ - FAR JMP instruction for CP/M-style calls

   the CALL 5 entry point does a FAR jump to here

Note

     	under DOS 2+, the instruction at PSP:0005 points two bytes too low in
  memory

SeeAlso

    INT 21 AH=26


INT 31

31 - overwritten by CP/M jump instruction in INT 30


INT 31 AX=0000

31 P - DPMI 0.9+ - ALLOCATE LDT DESCRIPTORS

AX = 0000h
CX = number of descriptors to allocate

Return

        CF clear if successful
    AX = base selector
CF set on error
    AX = error code (DPMI 1.0+)
0000h-7FFFh DOS error passed through by DPMI
8001h unsupported function
8002h object in wrong state for function
8003h system integrity would be endangered
8004h deadlock detected
8005h pending serialization request cancelled
8010h out of DPMI internal resources
8011h descriptor unavailable
8012h linear memory unavailable
8013h physical memory unavailable
8014h backing store unavailable
8015h callback unavailable
8016h handle unavailable
8017h maximum lock count exceeded
8018h shared memory already serialized exclusively by another
8019h shared memory already serialized shared by another client
8021h invalid value for numeric or flag parameter
8022h invalid segment selector
8023h invalid handle
8024h invalid callback
8025h invalid linear address
8026h request not supported by hardware

Notes

      	DPMI is the DOS Protected-Mode Interface
the base and limit of the returned descriptors will be 0, and the type
  will be "data"
add the value returned by INT 31/AX=0003h to move to subsequent
  descriptors if multiple descriptors were allocated
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0001    INT 31 AX=000D    INT 21 AX=3501


INT 31 AX=0001

31 P - DPMI 0.9+ - FREE LDT DESCRIPTOR

AX = 0001h
BX = selector to free

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8022h) (see AX=0000h)

Notes

      	only one descriptor is freed per call
the program's initial CS, DS, and SS descriptors may be freed
(DPMI 1.0+) any segment registers containing the freed selector are
  set to 0000h
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0000    INT 31 AX=000A    INT 31 AX=000D    INT 21 AX=3502


INT 31 AX=0002

31 P - DPMI 0.9+ - SEGMENT TO DESCRIPTOR

AX = 0002h
BX = real mode segment

Return

        CF clear if successful
    AX = selector corresponding to real mode segment (64K limit)
CF set on error
    AX = error code (DPMI 1.0+) (8011h) (see AX=0000h)

Notes

      	multiple calls for the same real mode segment return the same selector
the returned descriptor can never be modified or freed
not supported by MS Windows 3.0 in Standard mode


INT 31 AX=0003

31 P - DPMI 0.9+ - GET NEXT SELECTOR INCREMENT VALUE

AX = 0003h

Return

        CF clear
    AX = value to add to get next sequential selector

Notes

      	the increment will be a power of two
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0000


INT 31 AX=0004

31 P - DPMI 0.9+ - LOCK SELECTOR

AX = 0004h
BX = selector to lock (prevent paging)

Return

        ???

Note

     	although marked as reserved in versions 0.9 and 1.0 of the DPMI
  specification, this function is called by MS Windows TASKMAN,
  PROGMAN, and KERNEL

SeeAlso

    INT 31 AX=0005    INT 31 AX=0600


INT 31 AX=0005

31 P - DPMI 0.9+ - UNLOCK SELECTOR

AX = 0005h
BX = selector to unlock (permit paging)

Return

        ???

Note

     	although marked as reserved in versions 0.9 and 1.0 of the DPMI
  specification, this function is called by MS Windows TASKMAN,
  PROGMAN, and KERNEL

SeeAlso

    INT 31 AX=0004    INT 31 AX=0601


INT 31 AX=0006

31 P - DPMI 0.9+ - GET SEGMENT BASE ADDRESS

AX = 0006h
BX = selector

Return

        CF clear if successful
    CX:DX = linear base address of segment
CF set on error
    AX = error code (DPMI 1.0+) (8022h) (see AX=0000h)

Note

     	not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0007    INT 21 AX=3504


INT 31 AX=0007

31 P - DPMI 0.9+ - SET SEGMENT BASE ADDRESS

AX = 0007h
BX = selector
CX:DX = linear base address

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8022h,8025h) (see AX=0000h)

Notes

      	only modify descriptors allocated with INT 31/AX=0000h
only the low 24 bits of the address will be used by 16-bit DPMI
  implementations even on a 386 or higher
DPMI 1.0+ automatically reloads any segment registers containing the
  selector being modified
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0006    INT 31 AX=0008    INT 31 AX=0009    INT 31 AX=000C    INT 21 AX=3503

SeeAlso

    INT 21 AH=E9"OS/286"


INT 31 AX=0008

31 P - DPMI 0.9+ - SET SEGMENT LIMIT

AX = 0008h
BX = selector
CX:DX = segment limit

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see AX=0000h)

Notes

      	CX must be zero for 16-bit DPMI implementations
limits greater than 1MB must be page aligned (low 12 bits set)
only modify descriptors allocated with INT 31/AX=0000h
DPMI 1.0+ automatically reloads any segment registers containing the
  selector being modified
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0007    INT 31 AX=0009    INT 31 AX=000C    INT 21 AX=3505    INT 21 AH=E9"OS/286"


INT 31 AX=0009

31 P - DPMI 0.9+ - SET DESCRIPTOR ACCESS RIGHTS

AX = 0009h
BX = selector
CL = access rights/type byte
CH = 80386 extended rights/type byte (32-bit DPMI implementations only)

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see AX=0000h)

Notes

      	if the Present bit is clear, CL bits 0-3 may have any value
DPMI 1.0+ automatically reloads any segment registers containing the
  selector being modified
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0007    INT 31 AX=0008    INT 31 AX=000C    INT 21 AX=2514


INT 31 AX=000A

31 P - DPMI 0.9+ - CREATE ALIAS DESCRIPTOR

AX = 000Ah
BX = selector

Return

        CF clear if successful
    AX = new data selector
CF set on error
    AX = error code (DPMI 1.0+) (8011h,8022h) (see AX=0000h)

Notes

      	fails if selector in BX is not a code segment or is invalid
use INT 31/AX=0001h to free new selector
future changes to the original selector will not be reflected in the
  returned alias selector
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0001


INT 31 AX=000B

31 P - DPMI 0.9+ - GET DESCRIPTOR

AX = 000Bh
BX = LDT selector
ES:(E)DI -> 8-byte buffer for copy of descriptor

Return

        CF clear if successful
    buffer filled
CF set on error
    AX = error code (DPMI 1.0+) (8022h) (see AX=0000h)

Notes

      	16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=000C


INT 31 AX=000C

31 P - DPMI 0.9+ - SET DESCRIPTOR

AX = 000Ch
BX = LDT selector
ES:(E)DI -> 8-byte buffer containing descriptor

Return

       	CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see AX=0000h)

Notes

      	16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
only modify descriptors allocated with INT 31/AX=0000h
DPMI 1.0+ automatically reloads any segment registers containing the
  selector being modified
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=000B


INT 31 AX=000D

31 P - DPMI 0.9+ - ALLOCATE SPECIFIC LDT DESCRIPTOR

AX = 000Dh
BX = LDT selector

Return

        CF clear if successful
    descriptor allocated
CF set on error
    AX = error code (DPMI 1.0+) (8011h,8022h) (see AX=0000h)

Notes

      	free descriptor with INT 31/AX=0001h
the first 16 descriptors (04h-7Ch) are reserved for this function, but
  some may already be in use by other applications under DPMI 0.9;
  DPMI 1.0 guarantees 16 descriptors per client
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0000    INT 31 AX=0001


INT 31 AX=000E

31 P - DPMI 1.0+ - GET MULTIPLE DESCRIPTORS

AX = 000Eh
CX = number of descriptors to copy
ES:(E)DI -> descriptor buffer (see below)

Return

        CF clear if successful
    descriptors copied
CF set on error
    AX = error code (8022h) (see AX=0000h)
    CX = number of descriptors successfully copied

Notes

      	16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
if the function fails, the first CX descriptors are valid; the
  remainder are not modified

SeeAlso

    INT 31 AX=000B    INT 31 AX=000F

Table Formats

Descriptor buffer entry (one per descriptor to get):


INT 31 AX=000F

31 P - DPMI 1.0+ - SET MULTIPLE DESCRIPTORS

AX = 000Fh
CX = number of descriptors to copy
ES:(E)DI -> descriptor buffer (see below)

Return

        CF clear if successful
    descriptors copied
CF set on error
    AX = error code (8021h,8022h,8025h) (see AX=0000h)
    CX = number of descriptors successfully copied

Notes

      	16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
if the function fails, the first CX descriptors are valid; the
  remainder are not modified
DPMI 1.0+ automatically reloads any segment registers containing a
  selector being modified

SeeAlso

    INT 31 AX=000C    INT 31 AX=000E

Table Formats

Descriptor buffer entry (one per descriptor to set):


INT 31 AX=0100

31 P - DPMI 0.9+ - ALLOCATE DOS MEMORY BLOCK

AX = 0100h
BX = number of paragraphs to allocate

Return

        CF clear if successful
    AX = real mode segment of allocated block
    DX = first selector for allocated block
CF set on error
    AX = DOS error code (07h,08h) (see INT 21/AH=59h)
 (DPMI 1.0+) DPMI error code (8011h) (see AX=0000h)
    BX = size (in paragraphs) of largest available block

Notes

      	multiple contiguous selectors are allocated for blocks of more than 64K
  if the caller is a 16-bit program
never modify or deallocate returned descriptors
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0101    INT 31 AX=0501


INT 31 AX=0101

31 P - DPMI 0.9+ - FREE DOS MEMORY BLOCK

AX = 0101h
DX = selector of block

Return

        CF set if successful
CF set on error
    AX = DOS error code (07h,09h) (see INT 21/AH=59h)

Notes

      	all descriptors allocated for the block are automatically freed
DPMI 1.0+ automatically zeros any segment registers containing a
  selector freed by this function
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0100    INT 31 AX=0102    INT 31 AX=0502


INT 31 AX=0102

31 P - DPMI 0.9+ - RESIZE DOS MEMORY BLOCK

AX = 0102h
BX = new block size in paragraphs
DX = selector of block

Return

        CF clear if successful
CF set on error
    AX = DOS error code (07h,08h,09h) (see INT 21/AH=59h)
 (DPMI 1.0+) DPMI error code (8011h,8022h) (see AX=0000h)
    BX = maximum block size (in paragraphs) possible

Notes

      	increasing the size of a block past a 64K boundary will fail if the
  next descriptor in the LDT is already in use
shrinking a block past a 64K boundary will cause some selectors to be
  freed; DPMI 1.0+ automatically zeros any segment registers containing
  a selector freed by this function
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0100


INT 31 AX=0200

31 P - DPMI 0.9+ - GET REAL MODE INTERRUPT VECTOR

AX = 0200h
BL = interrupt number

Return

        CF clear
CX:DX = segment:offset of real mode interrupt handler

Note

     	the DPMI implementation is required to support all 256 vectors

SeeAlso

    INT 31 AX=0201    INT 31 AX=0204    INT 21 AX=2503


INT 31 AX=0201

31 P - DPMI 0.9+ - SET REAL MODE INTERRUPT VECTOR

AX = 0201h
BL = interrupt number
CX:DX = segment:offset of real mode handler

Return

        CF clear

Note

     	all memory that may be touched by a hardware interrupt handler must be
  locked down with INT 31/AX=0600h

SeeAlso

    INT 31 AX=0200    INT 31 AX=0205    INT 31 AX=0600    INT 21 AX=2505


INT 31 AX=0202

31 P - DPMI 0.9+ - GET PROCESSOR EXCEPTION HANDLER VECTOR

AX = 0202h
BL = exception number (00h-1Fh)

Return

       	CF clear if successful
    CX:(E)DX = selector:offset of handler
CF set on error
    AX = error code (DPMI 1.0+) (8021h) (see AX=0000h)

Notes

      	16-bit programs receive the pointer in CX:DX, 32-bit programs in CX:EDX
DPMI 1.0+ supports this function only for backward compatibility; use
   AX=0210h or AX=0211h instead
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0203    INT 31 AX=0210    INT 31 AX=0211    INT 2F AX=FB42    /BX=0021


INT 31 AX=0203

31 P - DPMI 0.9+ - SET PROCESSOR EXCEPTION HANDLER VECTOR

AX = 0203h
BL = exception number (00h-1Fh)
CX:(E)DX = selector:offset of handler

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8021h,8022h) (see AX=0000h)

Notes

      	32-bit programs must supply an offset in EDX and use a 32-bit interrupt
  stack frame on chaining to the next exception handler
the handler should return using a FAR return
all fault stack frames contain an error code, but it is only valid for
  exceptions 08h and 0Ah-0Eh
handlers will only be called if the exception occurs in protected mode,
  and the DPMI host does not transparently handle the exception
the handler may change certain values on the stack frame (see below)
DPMI 1.0+ supports this function only for backward compatibility; use
   AX=0212h or AX=0213h instead
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0202    INT 31 AX=0212    INT 31 AX=0213    INT 2F AX=FB42    /BX=0022

Table Formats

Stack frame for 16-bit programs: (offset from SS:SP)
Stack frame for 32-bit programs: (offset from SS:ESP)


INT 31 AX=0204

31 P - DPMI 0.9+ - GET PROTECTED MODE INTERRUPT VECTOR

AX = 0204h
BL = interrupt number

Return

       	CF clear
CX:(E)DX = selector:offset of handler

Notes

      	16-bit programs use CX:DX, 32-bit programs use CX:EDX
DPMI implementations are required to support all 256 vectors
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0200    INT 31 AX=0205    INT 21 AX=2502    INT 2F AX=FB42    /BX=0024


INT 31 AX=0205

31 P - DPMI 0.9+ - SET PROTECTED MODE INTERRUPT VECTOR

AX = 0205h
BL = interrupt number
CX:(E)DX = selector:offset of handler

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8022h) (see AX=0000h)

Notes

      	16-bit programs use CX:DX, 32-bit programs use CX:EDX
32-bit programs must use a 32-bit interrupt stack frame when chaining
  to the next handler
DPMI implementations are required to support all 256 vectors
hardware interrupts are reflected to the virtual machine's primary
  client, software interrupts to the current client
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0201    INT 31 AX=0204    INT 21 AX=2504    INT 2F AX=FB42    /BX=0025


INT 31 AX=0210

31 P - DPMI 1.0+ - GET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER

AX = 0210h
BL = exception number (00h-1Fh)

Return

        CF clear if successful
    CX:(EDX) = selector:offset of exception handler
CF set on error
    AX = error code (8021h) (see AX=0000h)

Note

     	DPMI host reflects exception to current client's handler

SeeAlso

    INT 31 AX=0202    INT 31 AX=0211    INT 31 AX=0212


INT 31 AX=0211

31 P - DPMI 1.0+ - GET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER

AX = 0211h
BL = exception number (00h-1Fh)

Return

        CF clear if successful
    CX:(EDX) = selector:offset of exception handler
CF set on error
    AX = error code (8021h) (see AX=0000h)

Notes

      	returns address of protected-mode handler for real-mode exception
DPMI host performs a switch to protected mode, reflects the exception
  to the virtual machine's primary client, and returns to real mode
  on the handler's completion

SeeAlso

    INT 31 AX=0202    INT 31 AX=0210    INT 31 AX=0213


INT 31 AX=0212

31 P - DPMI 1.0+ - SET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER

AX = 0212h
BL = exception or fault number (00h-1Fh)
CX:(E)DX = exception handler selector:offset

Return

        CF clear if successful
CF set on error
    AX = error code (8021h,8022h) (see AX=0000h)

Note

     	DPMI host sends exception to current client's handler

SeeAlso

    INT 31 AX=0203    INT 31 AX=0210    INT 31 AX=0213


INT 31 AX=0213

31 P - DPMI 1.0+ - SET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER

AX = 0213h
BL = exception or fault number (00h-1Fh)
CX:(E)DX = exception handler selector:offset

Return

        CF clear if successful
CF set on error
    AX = error code (8021h,8022h) (see AX=0000h)

Notes

      	specifies address of protected-mode handler for real-mode exception
DPMI host performs a switch to protected mode, reflects the exception
  to the virtual machine's primary client, and returns to real mode
  on the handler's completion

SeeAlso

    INT 31 AX=0203    INT 31 AX=0211    INT 31 AX=0212


INT 31 AX=0300

31 P - DPMI 0.9+ - SIMULATE REAL MODE INTERRUPT

AX = 0300h
BL = interrupt number
BH = flags
    bit 0: reset the interrupt controller and A20 line (DPMI 0.9)
   reserved, must be 0 (DPMI 1.0+)
    others must be 0
CX = number of words to copy from protected mode to real mode stack
ES:(E)DI = selector:offset of real mode call structure (see below)

Return

       	CF clear if successful
    real mode call structure modified (all fields except SS:SP, CS:IP
      filled with return values from real mode interrupt)
CF set on error
    AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see AX=0000h)
protected mode stack unchanged

Notes

      	16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI
CS:IP in the real mode call structure is ignored for this call,
  instead, the indicated interrupt vector is used for the address
the flags in the call structure are pushed on the real mode stack to
  form an interrupt stack frame, and the trace and interrupt flags are
  clear on entry to the handler
DPMI will provide a small (30 words) real mode stack if SS:SP is zero
the real mode handler must return with the stack in the same state as
  it was on being called

SeeAlso

    INT 31 AX=0302    INT 21 AX=2511    INT 21 AH=E3"OS/286"

SeeAlso

    INT 2F AX=FB42    /BX=000D

Table Formats

Real mode call structure:


INT 31 AX=0301

31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH FAR RETURN FRAME

AX = 0301h
BH = flags
    bit 0: reset the interrupt controller and A20 line (DPMI 0.9)
   reserved, must be 0 (DPMI 1.0+)
    others must be 0
CX = number of words to copy from protected mode to real mode stack
ES:DI / ES:EDI = selector:offset of real mode call structure
(see INT 31/AX=0300h)

Return

        CF clear if successful
    real mode call structure modified (all fields except SS:SP, CS:IP
      filled with return values from real mode interrupt)
CF set on error
    AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see AX=0000h)
protected mode stack unchanged

Notes

      	16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI
the real mode procedure must exit with a FAR return
DPMI will provide a small (30 words) real mode stack if SS:SP is zero
the real mode handler must return with the stack in the same state as
  it was on being called

SeeAlso

    INT 31 AX=0300    INT 31 AX=0302    INT 21 AX=250E    INT 21 AH=E1"OS/286"


INT 31 AX=0302

31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH IRET FRAME

AX = 0302h
BH = flags
    bit 0: reset the interrupt controller and A20 line (DPMI 0.9)
   reserved, must be 0 (DPMI 1.0+)
    others must be 0
CX = number of words to copy from protected mode to real mode stack
ES:DI / ES:EDI = selector:offset of real mode call structure
(see INT 31/AX=0300h)

Return

       	CF clear if successful
    real mode call structure modified (all fields except SS:SP, CS:IP
      filled with return values from real mode interrupt)
CF set on error
    AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see AX=0000h)
protected mode stack unchanged

Notes

      	16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI
the flags in the call structure are pushed on the real mode stack to
  form an interrupt stack frame, and the trace and interrupt flags are
  clear on entry to the handler
the real mode procedure must exit with an IRET
DPMI will provide a small (30 words) real mode stack if SS:SP is zero
the real mode handler must return with the stack in the same state as
  it was on being called

SeeAlso

    INT 31 AX=0300


INT 31 AX=0303

31 P - DPMI 0.9+ - ALLOCATE REAL MODE CALLBACK ADDRESS

AX = 0303h
DS:SI / DS:ESI = selector:offset of procedure to call
ES:DI / ES:EDI = selector:offset of real mode call structure
(see AX=0300h)

Return

        CF clear if successful
    CX:DX = segment:offset of real mode call address
CF set on error
    AX = error code (DPMI 1.0+) (8015h) (see AX=0000h)

Notes

      	the real mode call structure is static, causing reentrancy problems;
  its contents are only valid at the time of a callback
the called procedure must modify the real mode CS:IP before returning
values are returned to real mode by modifying the real mode call struc
DPMI hosts must provide at least 16 callbacks per client

SeeAlso

    INT 31 AX=0304    INT 31 AX=0C00

Values callback procedure is called with:
DS:SI / DS:ESI = selector:offset of real mode SS:SP
ES:DI / ES:EDI = selector:offset of real mode call structure
SS:SP / SS:ESP = locked protected mode API stack
interrupts disabled

Return

        (with IRET)
ES:DI / ES:EDI = selector:offset of real mode call structure to restore


INT 31 AX=0304

31 P - DPMI 0.9+ - FREE REAL MODE CALLBACK ADDRESS

AX = 0304h
CX:DX = real mode callback address

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8024h) (see AX=0000h)

SeeAlso

    INT 31 AX=0303


INT 31 AX=0305

31 P - DPMI 0.9+ - GET STATE SAVE/RESTORE ADDRESSES

AX = 0305h

Return

        CF clear
AX = size in bytes of state buffer
BX:CX = real mode address of procedure to save/restore state
SI:DI / SI:EDI = protected mode procedure to save/restore state

Notes

      	the buffer size will be zero if it is not necessary to preserve state
16-bit programs should call SI:DI, 32-bit programs should call SI:EDI
this function is only needed if using the raw mode switch service

SeeAlso

    INT 31 AX=0306

Values to call state-save procedures with:
AL = direction
    00h save state
    01h restore state
ES:DI / ES:EDI -> state buffer

Return

        all registers preserved


INT 31 AX=0306

31 P - DPMI 0.9+ - GET RAW MODE SWITCH ADDRESSES

AX = 0306h

Return

       	CF clear
BX:CX -> procedure to switch from real to protected mode
SI:DI / SI:EDI -> procedure to switch from protected to real mode

Notes

      	16-bit programs should jump to SI:DI, 32-bit programs should use SI:EDI
the caller must save and restore the state of the task with AX=0305h
not supported by MS Windows 3.0 in Standard mode

SeeAlso

    INT 31 AX=0305

Values to JUMP at mode-switch procedures with:
AX = new DS
CX = new ES
DX = new SS
BX / EBX = new SP / ESP
SI = new CS
DI / EDI = new IP / EIP

Notes

      	BP/EBP is preserved across the call, but AX/EAX, BX/EBX, CX/ECX,
  DX/EDX, SI/ESI, and DI/EDI will be undefined; FS and GS will be 0000h
interrupts will stay disabled during the entire mode switch if they
  are disabled on entry to the mode-switch procedure


INT 31 AX=0400

31 P - DPMI 0.9+ - GET DPMI VERSION

AX = 0400h

Return

        CF clear
AH = major version of DPMI spec supported
AL = two-digit minor version of DPMI spec supported
BX = flags
    bit 0: running under an 80386 (32-bit) implementation
    bit 1: processor returns to real mode for reflected interrupts
   instead of V86 mode
    bit 2: virtual memory supported
    bit 3: reserved (undefined)
    others reserved (zero)
CL = processor type (02h=80286, 03h=80386, 04h=80486)
DH = curr value of virtual master interrupt controller base interrupt
DL = curr value of virtual slave interrupt controller base interrupt

SeeAlso

    INT 31 AX=0401    INT 21 AX=250C    INT 67 AX=DE0A


INT 31 AX=0401

31 P - DPMI 1.0+ - GET DPMI CAPABILITIES

AX = 0401h
ES:(E)DI -> 128-byte buffer (see below)

Return

        CF clear if successful
    AX = capabilities
bit 0: paged accessed/dirty supported (see AX=0506h,AX=0507h)
    1: exceptions restartability supported
    2: device mapping supported (see AX=0508h)
    3: conventional memory mapping supported (see AX=0509h)
    4: demand zero-fill supported
    5: write-protect client capability supported
    6: write-protect host capability supported
    7-15: reserved
    CX = reserved (00h)
    DX = reserved (00h)
    buffer filled
CF set on error (DPMI 0.9 only)

SeeAlso

    INT 31 AX=0400

Table Formats

Buffer:


INT 31 AX=0500

31 P - DPMI 0.9+ - GET FREE MEMORY INFORMATION

AX = 0500h
ES:DI / ES:EDI -> buffer for memory information (see below)

Return

        CF clear

Notes

      	16-bit programs use ES:DI, 32-bit programs use ES:EDI
this function must be considered advisory because other applications
  may affect the results at any time after the call
fields not supported by the DPMI implementation are filled with
  FFFFFFFFh
DPMI 1.0+ supports this function solely for backward compatibility; use
  AX=050Bh instead

SeeAlso

    INT 31 AX=0501    INT 31 AX=0604

Table Formats

Memory information:


INT 31 AX=0501

31 P - DPMI 0.9+ - ALLOCATE MEMORY BLOCK

AX = 0501h
BX:CX = size in bytes

Return

        CF clear if successful
    BX:CX = linear address of block
    SI:DI = memory block handle for resizing and freeing block
CF set on error
    AX = error code (DPMI 1.0+) (8012h-8014h,8016h,8021h)(see AX=0000h)

Notes

      	no selectors are allocated
the memory block is allocated unlocked (can be locked with AX=0600h)
allocations are often page granular (see AX=0604h)

SeeAlso

    INT 31 AX=0000    INT 31 AX=0100    INT 31 AX=0500    INT 31 AX=0502    INT 31 AX=0503    INT 31 AX=0504    INT 31 AX=0D00


INT 31 AX=0502

31 P - DPMI 0.9+ - FREE MEMORY BLOCK

AX = 0502h
SI:DI = handle of memory block

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8023h) (see AX=0000h)

Note

     	any selectors allocated for the memory block must also be freed,
  preferably before freeing the memory block

SeeAlso

    INT 31 AX=0001    INT 31 AX=0101    INT 31 AX=0501    INT 31 AX=0D01


INT 31 AX=0503

31 P - DPMI 0.9+ - RESIZE MEMORY BLOCK

AX = 0503h
BX:CX = new size in bytes (nonzero)
SI:DI = handle of memory block

Return

        CF clear if successful
    BX:CX = new linear address
    SI:DI = new handle of memory block
CF set on error
    AX = error code (DPMI 1.0+) (8012h-8014h,8016h,8021h,8023h)
(see AX=0000h)

Notes

      	any selectors pointing at the block must be updated
the previous memory block handle becomes invalid
an error is returned if the new size is 0

SeeAlso

    INT 31 AX=0102    INT 31 AX=0501    INT 31 AX=0505


INT 31 AX=0504

31 P - DPMI 1.0+ - ALLOCATE LINEAR MEMORY BLOCK

AX = 0504h
EBX = page-aligned linear address of memory block (00000000h if any
address is acceptable)
ECX = size in bytes (nonzero)
EDX = flags
    bit 0: set to create committed pages instead of uncommitted pages
    bits 1-31: reserved (0)

Return

        CF clear if successful
    EBX = linear address of memory block
    ESI = memory block handle
CF set on error
    AX = error code (8001h,8012h-8014h,8016h,8021h,8025h)(see AX=0000h)

Note

     	only supported by 32-bit DPMI hosts, but may be used by 16-bit clients

SeeAlso

    INT 31 AX=0501    INT 31 AX=0505


INT 31 AX=0505

31 P - DPMI 1.0+ - RESIZE LINEAR MEMORY BLOCK

AX = 0505h
ESI = memory block handle
ECX = new size in bytes (nonzero)
EDX = flags
    bit 0: create committed pages rather than uncommitted pages
    bit 1: segment descriptor update required
ES:EBX -> buffer containing array of WORDs with selectors
EDI = number of selectors in array
    bits 2-31: reserved (0)

Return

        CF clear if successful
    EBX = new linear base address
    ESI = new memory block handle
CF set on error
    AX = error code (8001h,8012h-8014h,8016h,8021h,8023h)(see AX=0000h)

Notes

      	only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
the old memory block handle becomes invalid
if EDX bit 1 set and the block's base address is changed, DPMI updates
  all descriptors for selectors in the update buffer which fall within
  the memory block

SeeAlso

    INT 31 AX=0503    INT 31 AX=0504


INT 31 AX=0506

31 P - DPMI 1.0+ - GET PAGE ATTRIBUTES

AX = 0506h
ESI = memory block handle
EBX = offset in memory block of first page
ECX = number of pages
ES:EDX -> array of WORDs to hold page attributes (see below)

Return

        CF clear if successful
    buffer filled
CF set on error
    AX = error code (8001h,8023h,8025h) (see AX=0000h)

Notes

      	only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
if EBX is not page-aligned, it will be rounded down

SeeAlso

    INT 31 AX=0504    INT 31 AX=0507    INT 21 AX=251D    INT 21 AX=EB00

Table Formats

Page attribute words:


INT 31 AX=0507

31 P - DPMI 1.0+ - MODIFY PAGE ATTRIBUTES

AX = 0507h
ESI = memory block handle
EBX = offset in memory block of first page
ECX = number of pages
ES:EDX -> array of WORDs with new page attributes (see AX=0506h)

Return

        CF clear if successful
CF set on error
    AX = error code (8001h,8002h,8013h,8014h,8021h,8023h,8025h)
(see AX=0000h)
    ECX = number of pages which have been set

Notes

      	only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
if EBX is not page-aligned, it will be rounded down

SeeAlso

    INT 31 AX=0504    INT 31 AX=0506    INT 21 AX=251E


INT 31 AX=0508

31 P - DPMI 1.0+ - MAP DEVICE IN MEMORY BLOCK

AX = 0508h
ESI = memory block handle
EBX = page-aligned offset within memory block of page(s) to be mapped
ECX = number of pages to map
EDX = page-aligned physical address of device

Return

        CF clear if successful
CF set on error
    AX = error code (8001h,8003h,8023h,8025h) (see AX=0000h)

Notes

      	only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
support of this function is optional; hosts are also allowed to support
  the function for some devices but not others

SeeAlso

    INT 31 AX=0504    INT 31 AX=0509    INT 31 AX=0800    INT 31 AX=0801


INT 31 AX=0509

31 P - DPMI 1.0+ - MAP CONVENTIONAL MEMORY IN MEMORY BLOCK

AX = 0509h
ESI = memory block handle
EBX = page-aligned offset within memory block of page(s) to map
ECX = number of pages to map
EDX = page-aligned linear address of conventional (below 1M) memory

Return

        CF clear if successful
CF set on error
    AX = error code (8001h,8003h,8023h,8025h) (see AX=0000h)

Notes

      	only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
support of this function is optional

SeeAlso

    INT 31 AX=0504    INT 31 AX=0508    INT 31 AX=0801


INT 31 AX=050A

31 P - DPMI 1.0+ - GET MEMORY BLOCK SIZE AND BASE

AX = 050AH
SI:DI = memory block handle

Return

        CF clear if successful
    SI:DI = size in bytes
    BX:CX = base address
CF set on error
    AX = error code (8023h) (see AX=0000h)

SeeAlso

    INT 31 AX=0501    INT 31 AX=0504


INT 31 AX=050B

31 P - DPMI 1.0+ - GET MEMORY INFORMATION

AX = 050Bh
ES:(E)DI -> 128-byte buffer for memory information (see below)

Return

        CF clear if successful
CF set on error (DPMI 0.9 only)

Note

     	16-bit programs use ES:DI, 32-bit programs must use ES:EDI

SeeAlso

    INT 31 AX=0500

Table Formats

Memory information:


INT 31 AX=0600

31 P - DPMI 0.9+ - LOCK LINEAR REGION

AX = 0600h
BX:CX = starting linear address
SI:DI = size of region in bytes

Return

        CF clear if successful
CF set on error
    none of the memory is locked
    AX = error code (DPMI 1.0+) (8013h,8017h,8025h) (see AX=0000h)

Notes

      	pages at beginning and end will be locked if the region overlaps them
may be called multiple times for a given page; the DPMI host keeps a
  lock count for each page

SeeAlso

    INT 31 AX=0004    INT 31 AX=0601    INT 21 AX=251A    INT 21 AX=EB06


INT 31 AX=0601

31 P - DPMI 0.9+ - UNLOCK LINEAR REGION

AX = 0601h
BX:CX = starting linear address
SI:DI = size of region in bytes

Return

        CF clear if successful
CF set on error
    none of the memory is unlocked
    AX = error code (DPMI 1.0+) (8002h,8025h) (see AX=0000h)

Notes

      	pages at beginning and end will be unlocked if the region overlaps them
memory whose lock count has not reached zero remains locked

SeeAlso

    INT 31 AX=0005    INT 31 AX=0600    INT 21 AX=251B    INT 21 AX=EB07


INT 31 AX=0602

31 P - DPMI 0.9+ - MARK REAL MODE REGION AS PAGEABLE

AX = 0602h
BX:CX = starting linear address
SI:DI = size of region in bytes

Return

        CF clear if successful
CF set on error
    none of the memory is made pageable
    AX = error code (DPMI 1.0+) (8002h,8025h) (see AX=0000h)

Notes

      	must relock all unlocked real mode memory before terminating process
  for DPMI 0.9; DPMI 1.0+ automatically relocks real mode memory
pages at beginning and end will be unlocked if the region overlaps them
pageability of real mode pages is binary, not a count

SeeAlso

    INT 31 AX=0600    INT 31 AX=0603


INT 31 AX=0603

31 P - DPMI 0.9+ - RELOCK REAL MODE REGION

AX = 0603h
BX:CX = starting linear address
SI:DI = size of region in bytes

Return

        CF clear if successful
CF set on error
    none of the memory is relocked
    AX = error code (DPMI 1.0+) (8002h,8013h,8025h) (see AX=0000h)

Notes

      	pages at beginning and end will be relocked if the region overlaps them
pageability of real mode pages is binary, not a count

SeeAlso

    INT 31 AX=0602


INT 31 AX=0604

31 P - DPMI 0.9+ - GET PAGE SIZE

AX = 0604h

Return

        CF clear if successful
    BX:CX = page size in bytes
CF set on error
    AX = error code (DPMI 1.0+)
8001h unsupported, 16-bit host


INT 31 AX=0700

31 P - DPMI 0.9+ - MARK PAGES AS PAGING CANDIDATES

AX = 0700h
BX:CX = starting linear page number
SI:DI = number of pages to mark as paging candidates

Return

        ???

Note

     	although marked as reserved in versions 0.9 and 1.0 of the DPMI
  specification, this function is called by MS Windows TASKMAN,
  PROGMAN, and KERNEL

SeeAlso

    INT 31 AX=0701    INT 31 AX=0702


INT 31 AX=0701

31 P - DPMI 0.9+ - DISCARD PAGES

AX = 0701h
BX:CX = starting linear page number
SI:DI = number of pages to discard

Return

        ???

Note

     	although marked as reserved in versions 0.9 and 1.0 of the DPMI
  specification, this function is called by MS Windows TASKMAN,
  PROGMAN, and KERNEL

SeeAlso

    INT 31 AX=0700    INT 31 AX=0703


INT 31 AX=0702

31 P - DPMI 0.9+ - MARK PAGE AS DEMAND PAGING CANDIDATE

AX = 0702h
BX:CX = starting linear address
SI:DI = number of bytes to mark as paging candidates

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8025h) (see AX=0000h)

Notes

      	this function is advisory, and does not force immediate paging
partial pages will not be discarded

SeeAlso

    INT 31 AX=0700    INT 31 AX=0703


INT 31 AX=0703

31 P - DPMI 0.9+ - DISCARD PAGE CONTENTS

AX = 0703h
BX:CX = starting linear address
SI:DI = number of bytes to mark as discarded

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8025h) (see AX=0000h)

Notes

      	this function is advisory, and may be ignored by DPMI implementations
partial pages will not be discarded

SeeAlso

    INT 31 AX=0701    INT 31 AX=0702


INT 31 AX=0800

31 P - DPMI 0.9+ - PHYSICAL ADDRESS MAPPING

AX = 0800h
BX:CX = physical address (should be above 1 MB)
SI:DI = size in bytes

Return

       	CF clear if successful
    BX:CX = linear address which maps the requested physical memory
CF set on error
    AX = error code (DPMI 1.0+) (8003h,8021h) (see AX=0000h)

Notes

      	implementations may refuse this call because it can circumvent protects
the caller must build an appropriate selector for the memory
do not use for memory mapped in the first megabyte

SeeAlso

    INT 31 AX=0002    INT 31 AX=0508    INT 31 AX=0509    INT 31 AX=0801    INT 21 AX=250A    INT 21 AX=EB05


INT 31 AX=0801

31 P - DPMI 1.0+ - FREE PHYSICAL ADDRESS MAPPING

AX = 0801h
BX:CX = linear address returned by AX=0800h

Return

        CF clear if successful
CF set on error
    AX = error code (8025h) (see AX=0000h)

Note

     	should be called at end of access to device mapped with AX=0800h

SeeAlso

    INT 31 AX=0508    INT 31 AX=0509    INT 31 AX=0800    INT 21 AX=EB03


INT 31 AX=0900

31 P - DPMI 0.9+ - GET AND DISABLE VIRTUAL INTERRUPT STATE

AX = 0900h

Return

        CF clear
virtual interrupts disabled
AL = 00h if previously disabled
   = 01h if previously enabled
AH preserved

Notes

      	the previous state may be restored simply by executing another INT 31
a CLI instruction may be used if the previous state is unimportant,
  but should be assumed to be very slow due to trapping by the host

SeeAlso

    INT 31 AX=0901    INT 31 AX=0902


INT 31 AX=0901

31 P - DPMI 0.9+ - GET AND ENABLE VIRTUAL INTERRUPT STATE

AX = 0901h

Return

        CF clear
virtual interrupts enabled
AL = 00h if previously disabled
   = 01h if previously enabled
AH preserved

Notes

      	the previous state may be restored simply by executing another INT 31
a STI instruction may be used if the previous state is unimportant,
  but should be assumed to be very slow due to trapping by the host

SeeAlso

    INT 31 AX=0900    INT 31 AX=0902


INT 31 AX=0902

31 P - DPMI 0.9+ - GET VIRTUAL INTERRUPT STATE

AX = 0902h

Return

        CF clear
AL = 00h if disabled
   = 01h if enabled

Note

     	should be used rather than PUSHF because that instruction yields the
  physical interrupt state rather than the per-client virtualized
  interrupt flag

SeeAlso

    INT 31 AX=0900    INT 31 AX=0901


INT 31 AX=0A00

31 P - DPMI 0.9+ - GET VENDOR SPECIFIC API ENTRY POINT

AX = 0A00h
DS:SI / DS:ESI -> case-sensitive ASCIZ vendor name or identifier

Return

        CF clear if successful
    ES:DI / ES:EDI -> FAR extended API entry point
    DS, FS, GS, EAX, EBX, ECX, EDX, ESI, EBP destroyed
CF set on error
    AX = error code (DPMI 1.0+) (8001h) (see AX=0000h)

Notes

      	extended API parameters are vendor-specific
DPMI 1.0+ supports this function solely for backward compatibility; use
  INT 2F/AX=168Ah instead

SeeAlso

    INT 2F AX=168A


INT 31 AX=0B00

31 P - DPMI 0.9+ - SET DEBUG WATCHPOINT

AX = 0B00h
BX:CX = linear address
DL = size (1,2,4 bytes)
DH = type (00h execute, 01h write, 02h read/write)

Return

        CF clear if successful
    BX = watchpoint handle
CF set on error
    AX = error code (DPMI 1.0+) (8016h,8021h,8025h) (see AX=0000h)

SeeAlso

    INT 31 AX=0212    INT 31 AX=0601


INT 31 AX=0B01

31 P - DPMI 0.9+ - CLEAR DEBUG WATCHPOINT

AX = 0B01h
BX = watchpoint handle

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8023h) (see AX=0000h)

Note

     	the watchpoint handle is freed

SeeAlso

    INT 31 AX=0B00


INT 31 AX=0B02

31 P - DPMI 0.9+ - GET STATE OF DEBUG WATCHPOINT

AX = 0B02h
BX = watchpoint handle

Return

        CF clear if successful
    AX = status flags
bit 0: watch point has been executed since AX=0B00h or AX=0B03h
CF set on error
    AX = error code (DPMI 1.0+) (8023h) (see AX=0000h)

SeeAlso

    INT 31 AX=0B00    INT 31 AX=0B03


INT 31 AX=0B03

31 P - DPMI 0.9+ - RESET DEBUG WATCHPOINT

AX = 0B03h
BX = watchpoint handle

Return

        CF clear if successful
CF set on error
    AX = error code (DPMI 1.0+) (8023h) (see AX=0000h)

SeeAlso

    INT 31 AX=0B02


INT 31 AX=0C00

31 P - DPMI 1.0+ - INSTALL RESIDENT HANDLER INIT CALLBACK

AX = 0C00h
ES:(E)DI -> resident service provider structure (see below)

Return

        CF clear if successful
CF set on error
    AX = error code (8015h,8021h,8025h) (see AX=0000h)

Note

     	calling this function declares an intent to provide resident
  protected mode services after terminating with AX=0C01h

SeeAlso

    INT 31 AX=0303    INT 31 AX=0C01

Table Formats

Resident service provider structure:


INT 31 AX=0C01

31 P - DPMI 1.0+ - TERMINATE AND STAY RESIDENT

AX = 0C01h
BL = return code
DX = number of paragraphs of DOS memory to reserve (0 or >= 6)

Return

        never

Notes

      	should only be used if the program will only provide services to
  other DPMI programs
any protected mode memory remains allocated to the program unless
  explicitly freed before this call
must first call AX=0C00h or program will simply be terminated

SeeAlso

    INT 31 AX=0C00    INT 21 AH=31


INT 31 AX=0D00

31 P - DPMI 1.0+ - ALLOCATE SHARED MEMORY

AX = 0D00h
ES:(E)DI -> shared memory allocation request structure (see below)

Return

        CF clear if successful
    request structure updated
CF set on error
    AX = error code (8012h,8013h,8014h,8016h,8021h) (see AX=0000h)

Note

     	first 16 bytes of memory block will be initialized to zeros on the
  first allocation

SeeAlso

    INT 31 AX=0501    INT 31 AX=0D01    INT 31 AX=0D02

Table Formats

Shared memory allocation request structure:


INT 31 AX=0D01

31 P - DPMI 1.0+ - FREE SHARED MEMORY

AX = 0D01h
SI:DI = shared memory block handle

Return

        CF clear if successful
CF set on error
    AX = error code (8023h) (see AX=0000h)

Notes

      	handle becomes invalid after this call
DPMI maintains separate global and virtual machine use counts for each
  shared memory block; when the global use counts reaches zero, the
  block is finally destroyed

SeeAlso

    INT 31 AX=0502    INT 31 AX=0D00


INT 31 AX=0D02

31 P - DPMI 1.0+ - SERIALIZE SHARED MEMORY

AX = 0D02h
SI:DI = shared memory block handle
DX = flags
    bit 0: return immediately rather than suspending if serialization
unavailable
1: shared rather than exclusive serialization
2-15: reserved (0)

Return

        CF clear if successful
CF set on error
    AX = error code (8004h,8005h,8017h-8019h,8023h) (see AX=0000h)

Notes

      	an exclusive serialization blocks any other serialization attempts for
  the same block by another virtual machine; a shared serialization
  blocks attempts at exclusive serialization by another virtual machine
hosts are not required to detect deadlock
a client's interrupt handler can cancel a serialization call which
  caused it to block by calling AX=0D03h

SeeAlso

    INT 31 AX=0D00    INT 31 AX=0D03


INT 31 AX=0D03

31 P - DPMI 1.0+ - FREE SERIALIZATION ON SHARED MEMORY

AX = 0D03h
SI:DI = shared memory block handle
DX = flags
    bit 0: release shared serialization rather than exclusive serialztn
    bit 1: free pending serialization
    bits 2-15: reserved (0)

Return

        CF clear if successful
CF set on error
    AX = error code (8002h,8023h) (see AX=0000h)

SeeAlso

    INT 31 AX=0D00    INT 31 AX=0D02


INT 31 AX=0E00

31 P - DPMI 1.0+ - GET COPROCESSOR STATUS

AX = 0E00h

Return

        CF clear
AX = coprocessor status
    bit 0: numeric coprocessor enabled for current client
    bit 1: client is emulating coprocessor
    bit 2: numeric coprocessor is present
    bit 3: host is emulating coprocessor instructions
    bits 4-7: coprocessor type
0000 none
0010 80287
0011 80387
0100 80486 with numeric coprocessor
other reserved
    bits 8-15: not used

Note

     	supported by 386MAX v6.01, which otherwise only supports DPMI 0.9

SeeAlso

    INT 31 AX=0E01


INT 31 AX=0E01

31 P - DPMI 1.0+ - SET EMULATION

AX = 0E01h
BX = coprocessor flag bits
    bit 0: enable numeric coprocessor for current client
    bit 1: client will emulate coprocessor
    bits 2-15: not used

Return

        CF clear if successful
CF set on error
    AX = error code (8026h) (see AX=0000h)

Note

     	supported by 386MAX v6.01, which otherwise only supports DPMI 0.9

SeeAlso

    INT 31 AX=0E00


INT 32

32 - VIRUS - reportedly used by "Tiny" Viruses

SeeAlso

    INT 60VIRUS


INT 33 AX=0000

33 - MS MOUSE - RESET DRIVER AND READ STATUS

AX = 0000h

Return

        AX = status
    0000h hardware/driver not installed
    FFFFh hardware/driver installed
BX = number of buttons
    0000h other than two
    0002h two buttons (many drivers)
    0003h Mouse Systems/Logitech three-button mouse
    FFFFh two buttons

Notes

      	to use mouse on a Hercules-compatible monographics card in graphics
  mode, you must first set 0040h:0049h to 6 for page 0 or 5 for page 1,
  and then call this function.	Logitech drivers v5.01 and v6.00
  reportedly do not correctly use Hercules graphics in dual-monitor
  systems, while version 4.10 does.
the Logitech mouse driver contains the signature string "LOGITECH"
  three bytes past the interrupt handler; many of the Logitech mouse
  utilities check for this signature.

SeeAlso

    INT 33 AX=0011    INT 33 AX=0021    INT 33 AX=002F    INT 62 AX=007A    INT 74


INT 33 AX=0001

33 - MS MOUSE - SHOW MOUSE CURSOR

AX = 0001h

SeeAlso

    INT 33 AX=0002    INT 16 AX=FFFE    INT 62 AX=007B


INT 33 AX=0002

33 - MS MOUSE - HIDE MOUSE CURSOR

AX = 0002h

Note

     	multiple calls to hide the cursor will require multiple calls to
  function 01h to unhide it.

SeeAlso

    INT 33 AX=0001    INT 33 AX=0010    INT 16 AX=FFFF    INT 62 AX=007B


INT 33 AX=0003

33 - MS MOUSE - RETURN POSITION AND BUTTON STATUS

AX = 0003h

Return

        BX = button status
   bit 0  left button pressed if 1
   bit 1  right button pressed if 1
   bit 2  middle button pressed if 1 (Mouse Systems/Logitech mouse)
CX = column
DX = row

SeeAlso

    INT 33 AX=0004    INT 33 AX=000B    INT 2F AX=D000"ZWmous"


INT 33 AX=0004

33 - MS MOUSE - POSITION MOUSE CURSOR

AX = 0004h
CX = column
DX = row

Note

     	the row and column are truncated to the next lower multiple of the cell
  size; however, some versions of the Microsoft documentation
  incorrectly state that the coordinates are rounded

SeeAlso

    INT 33 AX=0003    INT 62 AX=0081


INT 33 AX=0005

33 - MS MOUSE - RETURN BUTTON PRESS DATA

AX = 0005h
BX = button
    0000h left
    0001h right
    0002h middle (Mouse Systems/Logitech mouse)

Return

        AX = button states
    bit 0 left button pressed if 1
    bit 1 right button pressed if 1
    bit 2 middle button pressed if 1 (Mouse Systems/Logitech mouse)
BX = number of times specified button has been pressed since last call
CX = column at time specified button was last pressed
DX = row at time specified button was last pressed

SeeAlso

    INT 33 AX=0006    INT 62 AX=007C


INT 33 AX=0006

33 - MS MOUSE - RETURN BUTTON RELEASE DATA

AX = 0006h
BX = button
    0000h left
    0001h right
    0002h middle (Mouse Systems/Logitech mouse)

Return

        AX = button states
    bit 0 left button pressed if 1
    bit 1 right button pressed if 1
    bit 2 middle button pressed if 1 (Mouse Systems/Logitech mouse)
BX = number of times specified button has been released since last call
CX = column at time specified button was last released
DX = row at time specified button was last released

SeeAlso

    INT 33 AX=0005    INT 62 AX=007C


INT 33 AX=0007

33 - MS MOUSE - DEFINE HORIZONTAL CURSOR RANGE

AX = 0007h
CX = minimum column
DX = maximum column

SeeAlso

    INT 33 AX=0008    INT 33 AX=0010    INT 33 AX=0031    INT 62 AX=0080


INT 33 AX=0008

33 - MS MOUSE - DEFINE VERTICAL CURSOR RANGE

AX = 0008h
CX = minimum row
DX = maximum row

SeeAlso

    INT 33 AX=0007    INT 33 AX=0010    INT 33 AX=0031    INT 62 AX=0080


INT 33 AX=0009

33 - MS MOUSE - DEFINE GRAPHICS CURSOR

AX = 0009h
BX = column of cursor hot spot in bitmap (-16 to 16)
CX = row of cursor hot spot (-16 to 16)
ES:DX -> bitmap
16 words screen mask
16 words cursor mask
    each word defines the sixteen pixels of a row, low bit
    rightmost

SeeAlso

    INT 33 AX=000A    INT 33 AX=0012    INT 33 AX=002A    INT 62 AX=007F


INT 33 AX=000A

33 - MS MOUSE - DEFINE TEXT CURSOR

AX = 000Ah
BX = hardware/software text cursor
    0000h software
CX = screen mask
DX = cursor mask
    0001h hardware
CX = start scan line
DX = end scan line

Note

     	when the software cursor is selected, the char/attribute data at the
  current screen position is ANDed with the screen mask and then XORed
  with the cursor mask

SeeAlso

    INT 33 AX=0009    INT 62 AX=007E


INT 33 AX=000B

33 - MS MOUSE - READ MOTION COUNTERS

AX = 000Bh

Return

        CX = number of mickeys mouse moved horizontally since last call
DX = number of mickeys mouse moved vertically

Notes

      	a mickey is the smallest increment the mouse can sense
positive values indicate down/right

SeeAlso

    INT 33 AX=0003    INT 33 AX=001B    INT 33 AX=0027


INT 33 AX=000C

33 - MS MOUSE - DEFINE INTERRUPT SUBROUTINE PARAMETERS

AX = 000Ch
CX = call mask
     bit 0 call if mouse moves
     bit 1 call if left button pressed
     bit 2 call if left button released
     bit 3 call if right button pressed
     bit 4 call if right button released
     bit 5 call if middle button pressed (Mouse Systems/Logitech mouse)
     bit 6 call if middle button released (Mouse Sys/Logitech mouse)
ES:DX -> FAR routine

Notes

      	when the subroutine is called, it is passed the following values:
  AX = condition mask (same bit assignments as call mask)
  BX = button state
  CX = cursor column
  DX = cursor row
  SI = horizontal mickey count
  DI = vertical mickey count
some versions of the Microsoft documentation incorrectly state that CX
  bit 0 means call if mouse cursor moves, and swap the meanings of SI
  and DI

SeeAlso

    INT 33 AX=0018


INT 33 AX=000D

33 - MS MOUSE - LIGHT PEN EMULATION ON

AX = 000Dh

SeeAlso

    INT 33 AX=000E    INT 10 AH=04


INT 33 AX=000E

33 - MS MOUSE - LIGHT PEN EMULATION OFF

AX = 000Eh

SeeAlso

    INT 33 AX=000D


INT 33 AX=000F

33 - MS MOUSE - DEFINE MICKEY/PIXEL RATIO

AX = 000Fh
CX = number of mickeys per 8 pixels horizontally (default 8)
DX = number of mickeys per 8 pixels vertically (default 16)

SeeAlso

    INT 33 AX=0013    INT 33 AX=001A    INT 62 AX=0082


INT 33 AX=0010

33 - MS MOUSE - DEFINE SCREEN REGION FOR UPDATING

AX = 0010h
CX,DX = X,Y coordinates of upper left corner
SI,DI = X,Y coordinates of lower right corner

Note

     	mouse cursor is hidden in the specified region, and needs to be
  explicitly turned on again

SeeAlso

    INT 33 AX=0001    INT 33 AX=0002    INT 33 AX=0007    INT 33 AX=0010"Genius MOUSE"    INT 33 AX=0031


INT 33 AX=0010

33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING

AX = 0010h
ES:DX -> update region list (see below)

Notes

      	mouse cursor is hidden in the specified region, and needs to be
  explicitly turned on again
this version of the call is described in an August 1988 version of the
  Genius Mouse programmer's reference; it has been changed to conform
  to the Microsoft version shown above by version 9.06 (and possibly
  earlier versions)

SeeAlso

    INT 33 AX=0001    INT 33 AX=0002    INT 33 AX=0007    INT 33 AX=0010"MS MOUSE"

Table Formats

Update region list:


INT 33 AX=0011

33 - Genius Mouse 9.06 - GET NUMBER OF BUTTONS

AX = 0011h

Return

        AX = FFFFh
BX = number of buttons

SeeAlso

    INT 33 AX=0000


INT 33 AX=0012

33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK

AX = 0012h
BH = cursor width in words
CH = rows in cursor
BL = horizontal hot spot (-16 to 16)
CL = vertical hot spot (-16 to 16)
ES:DX -> bit map of screen and cursor maps

Return

        AX = FFFFh if successful

SeeAlso

    INT 33 AX=0009    INT 33 AX=002A    INT 33 AX=0035


INT 33 AX=0013

33 - MS MOUSE - DEFINE DOUBLE-SPEED THRESHOLD

AX = 0013h
DX = threshold speed in mickeys/second, 0000h = default of 64/second

Note

     	if speed exceeds threshold, the cursor's on-screen motion is doubled

SeeAlso

    INT 33 AX=000F    INT 33 AX=001B    INT 33 AX=002C


INT 33 AX=0014

33 - MS MOUSE - EXCHANGE INTERRUPT SUBROUTINES

AX = 0014h
CX = call mask (see AX=000Ch)
ES:DX -> FAR routine

Return

        CX = call mask of previous interrupt routine
ES:DX = FAR address of previous interrupt routine

SeeAlso

    INT 33 AX=000C    INT 33 AX=0018


INT 33 AX=0015

33 - MS MOUSE - RETURN DRIVER STORAGE REQUIREMENTS

AX = 0015h

Return

        BX = size of buffer needed to store driver state

SeeAlso

    INT 33 AX=0016    INT 33 AX=0017    INT 33 AX=0042


INT 33 AX=0016

33 - MS MOUSE - SAVE DRIVER STATE

AX = 0016h
BX = size of buffer (see AX=0015h)
ES:DX -> buffer for driver state

Note

     	although not documented, many drivers appear to require BX on input

SeeAlso

    INT 33 AX=0015    INT 33 AX=0017


INT 33 AX=0017

33 - MS MOUSE - RESTORE DRIVER STATE

AX = 0017h
BX = size of buffer (see AX=0015h)
ES:DX -> buffer containing saved state

Notes

      	although not documented, many drivers appear to require BX on input
some mouse drivers range-check the values in the saved state based on
  the current video mode; thus, the video mode should be restored
  before the mouse driver's state is restored

SeeAlso

    INT 33 AX=0015    INT 33 AX=0016


INT 33 AX=0018

33 - MS MOUSE - SET ALTERNATE MOUSE USER HANDLER

AX = 0018h
CX = call mask
     bit 0 call if mouse moves
     bit 1 call if left button pressed
     bit 2 call if left button released
     bit 3 call if right button pressed
     bit 4 call if right button released
     bit 5 call if shift button pressed during event
     bit 6 call if ctrl key pressed during event
     bit 7 call if alt key pressed during event
ES:DX -> FAR routine

Return

        AX = 0018h if successful
   = FFFFh on error

Notes

      	when the subroutine is called, it is passed the following values:
  AX = condition mask (same bit assignments as call mask)
  BX = button state
  CX = cursor column
  DX = cursor row
  SI = horizontal mickey count
  DI = vertical mickey count
up to three handlers can be defined by separate calls to this function

SeeAlso

    INT 33 AX=000C    INT 33 AX=0014    INT 33 AX=0019


INT 33 AX=0019

33 - MS MOUSE - RETURN USER ALTERNATE INTERRUPT VECTOR

AX = 0019h
CX = call mask (see AX=0018h)

Return

        BX:DX = user interrupt vector
CX = call mask (0000h if not found)

Note

     	attempts to find a user event handler (defined by function 18h)
  whose call mask matches CX

SeeAlso

    INT 33 AX=0018


INT 33 AX=001A

33 - MS MOUSE - SET MOUSE SENSITIVITY

AX = 001Ah
BX = horizontal speed \
CX = vertical speed   / (see AX=000Fh)
DX = double speed threshold (see AX=0013h)

SeeAlso

    INT 33 AX=0013    INT 33 AX=001B    INT 62 AX=0082


INT 33 AX=001B

33 - MS MOUSE - RETURN MOUSE SENSITIVITY

AX = 001Bh

Return

        BX = horizontal speed
CX = vertical speed
DX = double speed threshold

SeeAlso

    INT 33 AX=000B    INT 33 AX=001A


INT 33 AX=001C

33 - MS MOUSE - SET INTERRUPT RATE

AX = 001Ch
BX = rate
    00h no interrupts allowed
    01h 30 per second
    02h 50 per second
    03h 100 per second
    04h 200 per second

Notes

      	only available on InPort mouse
values greater than 4 may cause unpredictable driver behavior


INT 33 AX=001D

33 - MS MOUSE - DEFINE DISPLAY PAGE NUMBER

AX = 001Dh
BX = display page number

Note

     	the cursor will be displayed on the specified page

SeeAlso

    INT 33 AX=001E


INT 33 AX=001E

33 - MS MOUSE - RETURN DISPLAY PAGE NUMBER

AX = 001Eh

Return

        BX = display page number

SeeAlso

    INT 33 AX=001D


INT 33 AX=001F

33 - MS MOUSE - DISABLE MOUSE DRIVER

AX = 001Fh

Return

        AX = 001Fh unsuccessful
     FFFFh successful
ES:BX = vector for INT 33h before mouse driver was first installed

Note

     	restores vectors for Int 10h and Int 71h (8086) or Int 74h (286/386)
if you restore Int 33h to ES:BX, driver will be completely disabled

SeeAlso

    INT 33 AX=0020


INT 33 AX=0020

33 - MS MOUSE - ENABLE MOUSE DRIVER

AX = 0020h

Return

        AX = 0020h unsuccessful (or driver not installed)
     FFFFh successful

Note

     	restores vectors for Int 10h and Int 71h (8086) or Int 74h (286/386)
  which were removed by function 1Fh

SeeAlso

    INT 33 AX=001F


INT 33 AX=0021

33 - MS MOUSE - SOFTWARE RESET

AX = 0021h

Return

        AX = FFFFh if mouse driver installed
BX = number of buttons (FFFFh = two buttons)
     0021h if mouse driver not installed

Note

     	identical to funtion 00h, but does not reset the mouse

SeeAlso

    INT 33 AX=0000


INT 33 AX=0022

33 - MS MOUSE - SET LANGUAGE FOR MESSAGES

AX = 0022h
BX = language
    00h English
    01h French
    02h Dutch
    03h German
    04h Swedish
    05h Finnish
    06h Spanish
    07h Portugese
    08h Italian

Note

     	only available on international versions of the driver, US versions
  ignore this call

SeeAlso

    INT 33 AX=0023


INT 33 AX=0023

33 - MS MOUSE - GET LANGUAGE FOR MESSAGES

AX = 0023h

Return

       	BX = language (see AX=0022h)

Note

     	the US version of the driver always returns zero

SeeAlso

    INT 33 AX=0022


INT 33 AX=0024

33 - MS MOUSE v6.26+ - GET SOFTWARE VERSION, MOUSE TYPE, AND IRQ NUMBER

AX = 0024h

Return

        AX = FFFFh on error
otherwise,
    BH = major version
    BL = minor version
    CH = type (1=bus, 2=serial, 3=InPort, 4=PS/2, 5=HP)
    CL = interrupt (0=PS/2, 2=IRQ2, 3=IRQ3,...,7=IRQ7)

SeeAlso

    INT 33 AX=004D    INT 33 AX=006D


INT 33 AX=0025

33 - MS MOUSE v6.26+ - GET GENERAL DRIVER INFORMATION

AX = 0025h

Return

        AX = general information
    bit 15: driver loaded as device driver rather than TSR
    bit 14: driver is newer integrated type
    bits 13,12: current cursor type
00 software text cursor
01 hardware text cursor
1X graphics cursor
    bits 11-8: interrupt rate (see AX=001Ch)
    bits 7-0:  count of currently-active Mouse Display Drivers (MDD),
the newer integrated driver type
BX = cursor lock flag for OS/2 to prevent reentrancy problems
CX = mouse code active flag (for OS/2)
DX = mouse driver busy flag (for OS/2)


INT 33 AX=0026

33 - MS MOUSE v6.26+ - GET MAXIMUM VIRTUAL COORDINATES

AX = 0026h

Return

        BX = mouse-disabled flag
CX = maximum virtual X (for current video mode)
DX = maximum virtual Y

SeeAlso

    INT 33 AX=0031


INT 33 AX=0026

33 - Genius Mouse 9.06 - ???

AX = 0026h

Return

        CX = 0204h if CX was 0105h on entry, else unchanged


INT 33 AX=0027

33 - MS MOUSE v7.01+ - GET SCREEN/CURSOR MASKS AND MICKEY COUNTS

AX = 0027h

Return

        AX = screen-mask value (or hardware cursor scan-line start for v7.02+)
BX = cursor-mask value (or hardware cursor scan-line stop for v7.02+)
CX = horizontal mickeys moved since last call
DX = vertical mickeys moved since last call

SeeAlso

    INT 33 AX=000B


INT 33 AX=0028

33 - MS MOUSE v7.0+ - SET VIDEO MODE

AX = 0028h
CX = new video mode (call is NOP if 0000h)
DH = Y font size (00h = default)
DL = X font size (00h = default)

Return

        CL = status (00h = successful)

Note

     	DX is ignored unless the selected video mode supports font size control

SeeAlso

    INT 33 AX=0029    INT 10 AH=00


INT 33 AX=0029

33 - MS MOUSE v7.0+ - ENUMERATE VIDEO MODES

AX = 0029h
CX = previous video mode
    0000h get first supported video mode
    other get next supported mode after mode CX

Return

        CX = first/next video mode (0000h = no more video modes)
BS:DX -> description of video mode or 0000h:0000h if none

Notes

      	the enumerated video modes may be in any order and may repeat
the description string (if available) is terminated by '$' followed by
  a NUL byte

SeeAlso

    INT 33 AX=0028


INT 33 AX=002A

33 - MS MOUSE v7.02+ - GET CURSOR HOT SPOT

AX = 002Ah

Return

        AX = internal counter controlling cursor visibility
BX = cursor hot spot column
CX = cursor hot spot row
DX = mouse type (00h none, 01h bus, 02h serial, 03h InPort, 04h IBM,
 05h Hewlett-Packard)

Note

     	the hot spot location is relative to the upper left corner of the
  cursor block and may range from -128 to +127 both horizontally and
  vertically

SeeAlso

    INT 33 AX=0009    INT 33 AX=0012    INT 33 AX=0035


INT 33 AX=002B

33 - MS MOUSE v7.0+ - LOAD ACCELERATION PROFILES

AX = 002Bh
BX = active acceleration profile
0001h-0004h or FFFFh to restore default curves
ES:SI -> buffer containing acceleration profile data (see below)

Return

        AX = success flag

SeeAlso

    INT 33 AX=002C    INT 33 AX=002D    INT 33 AX=0033

Table Formats

Acceleration profile data:


INT 33 AX=002C

33 - MS MOUSE v7.0+ - GET ACCELERATION PROFILES

AX = 002Ch

Return

        AX = status (0000h success)
BX = currently-active acceleration profile
ES:SI -> acceleration profile data (see AX=002Bh)

SeeAlso

    INT 33 AX=002B    INT 33 AX=002D    INT 33 AX=0033


INT 33 AX=002D

33 - MS MOUSE v7.0+ - SELECT ACCELERATION PROFILE

AX = 002Dh
BX = acceleration level
0001h-0004h to set profile, or FFFFh to get current profile

Return

        AX = status
    0000h successful
ES:SI -> 16-byte blank-padded name of acceleration profile
    FFFEh invalid acceleration curve number
ES:SI destroyed
BX = active acceleration curve number

SeeAlso

    INT 33 AX=0013    INT 33 AX=002B    INT 33 AX=002C    INT 33 AX=002E


INT 33 AX=002E

33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES

AX = 002Eh
BL = flag (if nonzero, fill ES:SI buffer with default names on return)
ES:SI -> 64-byte buffer for profile names (16 bytes per name)

Return

        AX = status (0000h success)
ES:SI buffer filled with default names if BL nonzero on entry

Note

     	not supported by Logitech driver v6.10

SeeAlso

    INT 33 AX=002C    INT 33 AX=002D    INT 33 AX=012E    INT 33 AX=022E


INT 33 AX=002F

33 - MS MOUSE v7.02+ - MOUSE HARDWARE RESET

AX = 002Fh

Return

        AX = status

Note

     	invoked by mouse driver v8.20 on being called with INT 2F/AX=530Bh

SeeAlso

    INT 2F AH=53


INT 33 AX=0030

33 - MS MOUSE v7.04+ - GET/SET BallPoint INFORMATION

AX = 0030h
CX = command
    0000h get status of BallPoint device
    other set rotation angle and masks
BX = rotation angle (-32768 to 32767 degrees)
CH = primary button mask
CL = secondary button mask

Return

        AX = button status (FFFFh if no BallPoint)
bit 5: button 1
bit 4: button 2
bit 3: button 3
bit 2: button 4
other: zero
BX = rotation angle (0-360 degrees)
CH = primary button mask
CL = secondary button mask


INT 33 AX=0031

33 - MS MOUSE v7.05+ - GET CURRENT MINIMUM/MAXIMUM VIRTUAL COORDINATES

AX = 0031h

Return

        AX = virtual X minimum
BX = virtual Y minimum
CX = virtual X maximum
DX = virtual Y maximum

Note

     	the minimum and maximum values are those set by AX=0007h and AX=0008h;
  the default is minimum = 0 and maximum = absolute maximum
  (see AX=0026h)

SeeAlso

    INT 33 AX=0007    INT 33 AX=0008    INT 33 AX=0010    INT 33 AX=0026


INT 33 AX=0032

33 - MS MOUSE v7.05+ - GET ACTIVE ADVANCED FUNCTIONS

AX = 0032h

Return

        AX = active function flags (FFFFh for v8.10)
bit 15: function 0025h supported
bit 14: function 0026h supported
...
bit 0: function 0034h supported
BX = ??? (0000h) officially unused
CX = ??? (E000h) officially unused
DX = ??? (0000h) officially unused


INT 33 AX=0033

33 - MS MOUSE v7.05+ - GET SWITCH SETTINGS AND ACCELERATION PROFILE DATA

AX = 0033h
CX = size of buffer
    0000h get required buffer size
Return: AX = 0000h
CX = required size (0154h for Logitech v6.10, 0159h
for MS v8.10-8.20)
    other
ES:DX -> buffer of CX bytes
Return: AX = 0000h
CX = number of bytes returned
ES:DX buffer filled (see below)

SeeAlso

    INT 33 AX=002B

Table Formats

Data buffer:


INT 33 AX=0034

33 - MS MOUSE v8.0+ - GET INITIALIZATION FILE

AX = 0034h

Return

        AX = status (0000h successful)
ES:DX -> ASCIZ initialization (.INI) file name


INT 33 AX=0035

33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT

AX = 0035h
BX = function
    FFFFh get current settings
Return: AX = 0000h
BH = style (see below)
BL = size (see below)
CH = threshold
CL = active flag (00h disabled, 01h enabled)
DX = delay
    other
BH = style (00h normal, 01h reverse, 02h transparent)
BL = size (00h small "1", 01h medium "1.5", 02h large "2")
CH = threshold (00h-64h)
CL = active flag (00h disable size change, 01h enable)
DX = delay (0000h-0064h)
Return: AX = 0000h

Note

     	not supported by Logitech driver v6.10

SeeAlso

    INT 33 AX=0012    INT 33 AX=002A


INT 33 AX=0042

33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS

AX = 0042h

Return

        AX = FFFFh successful
BX = buffer size in bytes for functions 50h and 52h
   = 0000h MSMOUSE not installed
   = 0042h functions 42h, 50h, and 52h not supported

Note

     	this function is also supported by the Genius Mouse 9.06 driver

SeeAlso

    INT 33 AX=0015    INT 33 AX=0050    INT 33 AX=0052


INT 33 AX=0043

33 - Mouse Systems MOUSE DRIVER v7.01 - CONFIGURE MOUSE???

AX = 0043h
CX:BX -> ??? buffer (see below)
DL = ???

Return

        ???

Notes

      	also calls routines for INT 33/AX=0053h and INT 33/AX=004Fh
this function is also supported by the Genius Mouse 9.06 driver

Table Formats

Buffer:


INT 33 AX=0044

33 - Mouse Systems MOUSE DRIVER v7.01 - TOGGLE ???

AX = 0044h
CX = CDEFh

Return

        AX = new state of ???

Note

     	this function is also supported by the Genius Mouse 9.06 driver

SeeAlso

    INT 33 AX=0045


INT 33 AX=0045

33 - Mouse Systems MOUSE DRIVER v7.01 - TOGGLE ???

AX = 0045h
CX = CDEFh

Return

        AX = new state of ???

Note

     	this function is also supported by the Genius Mouse 9.06 driver

SeeAlso

    INT 33 AX=0044


INT 33 AX=0047

33 - Mouse Systems MOUSE DRIVER v7.01 - SET BUTTON ASSIGNMENTS

AX = 0047h
ES:BX -> button assignments (3 bytes, combinations of "L", "M", "R")

Return

        ???

Note

     	also supported by Genius Mouse 9.06 driver

SeeAlso

    INT 33 AX=0067


INT 33 AX=0048

33 - Mouse Systems MOUSE DRIVER v7.01 - GET ???

AX = 0048h
BX = CDEFh

Return

        CX = ???
BH = ???
BL = ??? (if 50h, driver is using PS/2 pointing device BIOS interface)

Note

     	also supported by Genius Mouse 9.06 driver


INT 33 AX=004B

33 - Z-NIX MOUSE DRIVER v7.04d - INSTALLATION CHECK

AX = 004Bh

Return

        ES:DI -> signature/description string if installed

Note

     	the signature string in v7.04d is
  "Z-NIX;BUS,AUX,Serial 3-byte and 5-byte Mouse Driver;ZMOUSE;v7.04d"


INT 33 AX=004C

33 - Mouse Systems MOUSE DRIVER v7.01 - SET ??? FLAG

AX = 004Ch
BX = CDEFh

Note

     	also supported by Genius Mouse 9.06

SeeAlso

    INT 33 AX=006C


INT 33 AX=004D

33 - MS MOUSE - RETURN POINTER TO COPYRIGHT STRING

AX = 004Dh

Return

        ES:DI -> copyright message "*** This is Copyright 1983 Microsoft"

Notes

      	also supported by Logitech, Kraft, Genius Mouse, and Mouse Systems
  mouse drivers
in the Genius Mouse 9.06 driver, the ASCIZ signature "KYE" immediately
  follows the above copyright message (KYE Corp. manufactures the
  driver)

SeeAlso

    INT 33 AX=0024    INT 33 AX=006D


INT 33 AX=004F

33 - Mouse Systems MOUSE DRIVER v7.01 - ENABLE MOUSE

AX = 004Fh

Return

        nothing

Note

     	also supported by Genius Mouse 9.06

SeeAlso

    INT 33 AX=0043    INT 33 AX=0053


INT 33 AX=0050

33 - PCMOUSE - SAVE MSMOUSE STATE

AX = 0050h
BX = buffer size (ignored by some driver versions)
ES:DX -> buffer

Return

        AX = FFFFh if successful

Notes

      	the buffer must be large enough to hold the entire state, or following
  data will be overwritten by state data in versions which ignore BX;
  use INT 33/AX=0042h to get the required size
this function is also supported by the Genius Mouse 9.06 driver

SeeAlso

    INT 33 AX=0042    INT 33 AX=0052


INT 33 AX=0052

33 - PCMOUSE - RESTORE MSMOUSE STATE

AX = 0052h
BX = buffer size (ignored by some driver versions)
ES:DX -> buffer

Return

        AX = FFFFh if successful

Note

     	also supported by Genius Mouse 9.06 driver

SeeAlso

    INT 33 AX=0050


INT 33 AX=0053

33 - Mouse Systems MOUSE DRIVER v7.01 - DISABLE MOUSE

AX = 0053h

Return

        nothing

Note

     	also supported by Genius Mouse 9.06

SeeAlso

    INT 33 AX=0043    INT 33 AX=004F


INT 33 AX=0054

33 - Mouse Systems MOUSE DRIVER v7.01 - SELECT ULTRARES ACCELERATION LEVEL

AX = 0054h
CX = CDEFh
BX = ??? (NOP if <= 0000h)

Return

        ???

Note

     	this function is also supported by the Genius Mouse 9.06 driver

SeeAlso

    INT 33 AX=005A


INT 33 AX=0055

33 - Kraft Mouse - GET ???

AX = 0055h

Return

        CX = ???
DX = ???
ES = ???


INT 33 AX=0058

33 - Mouse Systems MOUSE DRIVER v7.01 - ???

AX = 0058h

Return

        AX = CS of driver
CX:BX = original INT 33 vector
DX = ???

Note

     	this function is also supported by the Genius Mouse 9.06 driver


INT 33 AX=005A

33 - Mouse Systems MOUSE DRIVER v7.01 - SET ULTRARES ACCELERATIONS

AX = 005Ah
CX = number of WORDs to copy (max 0014h, but not range-checked)
DX:SI -> buffer containing thresholds??? (CX words)
DX:BX -> buffer containing acceleration values???
(9*14h words, only first CX of each 14h used)
???

Return

        CF clear
???

Note

     	this function is also supported by Genius Mouse 9.06

SeeAlso

    INT 33 AX=0054


INT 33 AX=0061

33 - Mouse Systems MOUSE DRIVER v7.01 - ???

AX = 0061h
BX = CDEFh

Return

        CX = ???

Note

     	also supported by Genius Mouse 9.06


INT 33 AX=0067

33 - Mouse Systems MOUSE DRIVER v7.01 - GET MOUSE BUTTONS???

AX = 0067h

Return

        BL = number of buttons???

Note

     	also supported by Genius Mouse 9.06

SeeAlso

    INT 33 AX=0047


INT 33 AX=006C

33 - Mouse Systems MOUSE DRIVER v7.01 - CLEAR ??? FLAG

AX = 006Ch
BX = CDEFh

Note

     	also supported by Genius Mouse 9.06

SeeAlso

    INT 33 AX=004C


INT 33 AX=006D

33 - MS MOUSE - GET VERSION STRING

AX = 006Dh

Return

        ES:DI -> Microsoft version number of resident driver (see below)

Notes

      	also supported by Logitech, Mouse Systems, Kraft, and Genius mouse
  drivers
the Mouse Systems 7.01 and Genius Mouse 9.06 drivers report their
  Microsoft version as 7.00 even though they do not support any of the
  functions from 0025h through 002Dh supported by the MS 7.00 driver
  (the Genius Mouse driver supports function 0026h, but it differs
  from the Microsoft function)

SeeAlso

    INT 33 AX=0024    INT 33 AX=004D    INT 33 AX=266C

Table Formats

Microsoft version number:


INT 33 AX=0070

33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK

AX = 0070h
BX = ABCDh

Return

        AX = ABCDh if installed
    BX:CX -> data structure (see below)

Notes

      	this function is also supported by the Genius Mouse 9.06 driver
the v7.01 POPUP.COM and menu drivers also check for the signature
  CDh ABh BAh DCh at offset -2Ch from the interrupt handler
if POPUP is not loaded, the returned data structure contains the proper
  signature at offset 00h, but not at offset 08h

Table Formats

Data structure:
Info structure:


INT 33 AX=0072

33 - Mouse Systems MOUSE DRIVER v7.01 - ???

AX = 0072h
BX = ABCDh

Return

        ???

Note

     	this function is also supported by the Genius Mouse 9.06 driver


INT 33 AX=0073

33 - Mouse Systems MOUSE DRIVER v7.01 - GET BUTTON ASSIGNMENTS

AX = 0073h
BX = CDEFh
ES:DX -> 3-byte buffer for button assignments

Return

        CX = number of buttons???
ES:DX buffer filled (default is "LMR")

Note

     	also supported by Genius Mouse 9.06

SeeAlso

    INT 33 AX=0067


INT 33 AX=012E

33 - MS MOUSE v8.10+ - ???

AX = 012Eh
BL = ???

Return

        AX = 0000h

Note

     	not supported by Logitech driver v6.10

SeeAlso

    INT 33 AX=002E    INT 33 AX=022E


INT 33 AX=022E

33 - MS MOUSE v8.10+ - ???

AX = 022Eh
BL = ???

Return

        AX = 0000h

Note

     	not supported by Logitech driver v6.10

SeeAlso

    INT 33 AX=002E    INT 33 AX=012E


INT 33 AX=136C

33 - LOGITECH MOUSE v6.10+ - ???

AX = 136Ch
BX = ???

Return

        AX = ???
BX = ???


INT 33 AX=146C

33 - LOGITECH MOUSE v6.10+ - GET/SET ???

AX = 146Ch
BL = function
    00h set ???
BH = new value (zero/nonzero to clear/set)
    else get ???
Return: ???


INT 33 AX=156C

33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS

AX = 156Ch

Return

        ES:DI -> signature "LOGITECH MOUSE DRIVER"
ES:SI -> version string, terminated with CRLF


INT 33 AX=166C

33 - LOGITECH MOUSE v6.10+ - ???

AX = 166Ch
BL = ???
    00h ???
    01h ???
    other ???
BH = new value of ???
Return: AX = FFFFh


INT 33 AX=176C

33 - LOGITECH MOUSE v6.10+ - ???

AX = 176Ch
???

Return

        ???


INT 33 AX=186C

33 - LOGITECH MOUSE v6.10+ - ???

AX = 186Ch
???

Return

        ???


INT 33 AX=196C

33 - LOGITECH MOUSE v6.10+ - ???

AX = 196Ch
???

Return

        ???


INT 33 AX=1A6C

33 - LOGITECH MOUSE v6.10+ - GET ???

AX = 1A6Ch

Return

        AX = FFFFh
BX = ???
CX = ???

SeeAlso

    INT 33 AX=1B6C


INT 33 AX=1B6C

33 - LOGITECH MOUSE v6.10+ - SET ???

AX = 1B6Ch
BX = new value for ??? (0000h-0003h)

Return

        AX = FFFFh

SeeAlso

    INT 33 AX=1A6C


INT 33 AX=1C6C

33 - LOGITECH MOUSE v6.10+ - ???

AX = 1C6Ch
BX = ???
<42h ???
=42h ???
>42h ???
ES:DI -> ???
Return: AX = ???


INT 33 AX=1D6C

33 - LOGITECH MOUSE - GET COMPASS PARAMETER

AX = 1D6Ch

Return

        BX = direction (0=north, 1=south, 2=east, 3=west)

SeeAlso

    INT 33 AX=1E6C


INT 33 AX=1E6C

33 - LOGITECH MOUSE - SET COMPASS PARAMETER

AX = 1E6Ch
BX = direction (0=north, 1=south, 2=east, 3=west)

SeeAlso

    INT 33 AX=1D6C


INT 33 AX=1F6C

33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION

AX = 1F6Ch

Return

        BX = 0=off, 1=on
CX = 1=low, 2=high

SeeAlso

    INT 33 AX=002C    INT 33 AX=236C


INT 33 AX=206C

33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER

AX = 206Ch
BX = parameter (00h = right, FFh = left)

SeeAlso

    INT 33 AX=216C


INT 33 AX=216C

33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER

AX = 216Ch

Return

        BX = parameter (00h = right, FFh = left)

SeeAlso

    INT 33 AX=206C


INT 33 AX=226C

33 - LOGITECH MOUSE - REMOVE DRIVER FROM MEMORY

AX = 226Ch

Note

     	this only frees memory; does not restore hooked interrupts


INT 33 AX=236C

33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION

AX = 236Ch
BX = 0=off, 1=on
CX = 1=low, 2=high

SeeAlso

    INT 33 AX=002C    INT 33 AX=1F6C


INT 33 AX=246C

33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE

AX = 246Ch
ES:DX -> parameter table buffer (see below)

Return

        AX = FFFFh if driver installed for serial mouse

SeeAlso

    INT 33 AX=0000    INT 33 AX=256C

Table Formats

Parameter table:


INT 33 AX=256C

33 - LOGITECH MOUSE - SET PARAMETERS

AX = 256Ch
BX = 00h set baud rate (serial mouse only)
CX = rate (0=1200, 1=2400, 2=4800, 3=9600)
   = 01h set emulation (serial mouse only)
CX = emulation
    0 = 5 byte packed binary
    1 = 3 byte packed binary
    2 = hexadecimal
    3 = relative bit pad
    4 = not supported
    5 = MM Series
    6 = not supported
    7 = Microsoft
   = 02h set report rate (serial mouse only)
CX = rate (0=10, 1=20, 2=35, 3=50, 4=70, 5=100, 6=150)
   = 03h set port (serial mouse only)
CX = port (1, 2)
   = 04h set mouse logical buttons
CX = buttons (2, 3)

Return

        AX = FFFFh if driver installed for serial mouse

SeeAlso

    INT 33 AX=246C    INT 33 AX=276C


INT 33 AX=266C

33 - LOGITECH MOUSE - GET VERSION???

AX = 266Ch

Return

        BX = 'SS'
CH = '4'  major version number
CL = '1'  minor version number

SeeAlso

    INT 33 AX=006D


INT 33 AX=276C

33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400

AX = 276Ch

SeeAlso

    INT 33 AX=256C


INT 33 AX=3000

33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK

AX = 3000h

Return

        AX = FFFFh if installed
    BX = version number (BH = major, BL = minor)

Program

         SMD is a programmer's library by Andy Hakim which provides a
  graphics-style mouse cursor in text mode.  PrecisePoint is an
  SMD-based TSR which replaces the block mouse cursor in text
  applications.

SeeAlso

    INT 33 AX=0000    INT 33 AX=3001    INT 33 AX=3003


INT 33 AX=3001

33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE

AX = 3001h

Return

        AX = status (0000h = disabled, 0001h = enabled)

Note

     	SMD remains disabled if running under Desqview or in graphics mode

SeeAlso

    INT 33 AX=0001    INT 33 AX=0002    INT 33 AX=3002


INT 33 AX=3002

33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE

AX = 3002h

Return

        AX = status (0000h = disabled, 0001h = enabled)

SeeAlso

    INT 33 AX=0001    INT 33 AX=0002    INT 33 AX=3000    INT 33 AX=3001


INT 33 AX=3003

33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION

AX = 3003h
BL = data structure selector
    00h Primary Bitmap (used for 25 line mode)
    01h Secondary Bitmap (used for 43/50 line modes)
    02h Sacrifice Character Map
    03h Program Information

Return

        ES:DI -> selected data structure

SeeAlso

    INT 33 AX=3000

Table Formats

Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]
Program Information [SMD_INFO_STRUCT]


INT 33

33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION

AX = 3004

SeeAlso

    INT 33 AX=3000


INT 33

33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION

AX = 3005

SeeAlso

    INT 33 AX=3000


INT 33 AX=4F00

33 - LOGITECH MOUSE v6.10+ - GET ???

AX = 4F00h

Return

        AX = 004Fh if supported
BX = ???
ES:DI -> ???

SeeAlso

    INT 33 AX=4F01


INT 33 AX=4F01

33 - LOGITECH MOUSE v6.10+ - ???

AX = 4F01h
ES = ???

Return

        AX = 004Fh if supported
ES:DI -> ???

SeeAlso

    INT 33 AX=4F00


INT 34

34 - FLOATING POINT EMULATION - OPCODE D8h

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of D8h

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 35INT 3


INT 35

35 - FLOATING POINT EMULATION - OPCODE D9h

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of D9h

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 34INT 3


INT 36

36 - FLOATING POINT EMULATION - OPCODE DAh

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of DAh

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 35INT 3


INT 37

37 - FLOATING POINT EMULATION - OPCODE DBh

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of DBh

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 36INT 3


INT 38

38 - FLOATING POINT EMULATION - OPCODE DCh

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of DCh

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 37INT 3


INT 38 AH=02

38 - PC-MOS/386 v3.0 - GET MOS INTERNAL DATA POINTER

AH = 02h

Return

        AX = 0000h
ES:BX -> ??? internal data structure

Program

         PC-MOS/386 is a multitasking/multiuser MSDOS-compatible operating
  system by Software Links, Inc.

SeeAlso

    INT 38 AH=04    INT 38 AH=10    INT 21 AX=3000    INT D4


INT 38 AH=04

38 - PC-MOS/386 v3.0 - GET TASK CONTROL BLOCK

AH = 04h

Return

        ES = segment of Task Control Block (TCB) (see below)

SeeAlso

    INT 38 AH=02    INT D4

Table Formats

Task Control Block:


INT 38 AX=0703

38 - PC-MOS/386 v3.0 - WAIT FOR KEYPRESS OR TIMEOUT

AX = 0703h
CX = timeout (in seconds???)

Return

        AH bit 0 set if key pressed, clear otherwise

SeeAlso

    INT 16 AH=00    INT D4


INT 38 AH=10

38 - PC-MOS/386 v3.0 - ENTER NATIVE 386 EXECUTION MODE

AH = 10h
CX = NCA (???) length in bytes (at least 1024???)
DX = NCA segment

Return

        in protected mode
all segment registers converted to appropriate selectors

Note

     	MSDOS calls are available in protected mode

SeeAlso

    INT 38 AH=11    INT 38 AH=12    INT 2F AX=1687    INT 67 AX=DE0C    INT D4


INT 38 AH=11

38 - PC-MOS/386 v3.0 - ALLOCATE NATIVE MODE MEMORY BLOCK

AH = 11h
EBX = block length

Return

        ES = selector for allocated block

SeeAlso

    INT 38 AH=10    INT 38 AH=12    INT D4


INT 38 AH=12

38 - PC-MOS/386 v3.0 - FREE NATIVE MODE MEMORY BLOCK

AH = 12h
ES = selector for block to free

SeeAlso

    INT 38 AH=10    INT 38 AH=11    INT D4


INT 39

39 - FLOATING POINT EMULATION - OPCODE DDh

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of DDh

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 38INT 3


INT 3A

3A - FLOATING POINT EMULATION - OPCODE DEh

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of DEh

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 39INT 3


INT 3B

3B - FLOATING POINT EMULATION - OPCODE DFh

Desc

     	this interrupt is used to emulate floating-point instructions with
  an opcode of DFh

Note

     	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt

SeeAlso

    INT 3AINT 3


INT 3C

3C - FLOATING POINT EMULATION - INSTRUCTIONS WITH SEGMENT OVERRIDE

Notes

      	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt
the generated code is  CD 3C xy mm ....
  where xy is a modified ESC instruction and mm is the modR/M byte.
  The xy byte appears to be encoded as
s s 0 1 1 x x x	  or	s s 0 0 0 x x x
  where "ss" specifies the segment override:
00 -> DS:
01 -> SS:
10 -> CS:
11 -> ES:

SeeAlso

    INT 3BINT 3


INT 3D

3D - FLOATING POINT EMULATION - STANDALONE FWAIT

Notes

      	the floating-point emulators in Borland and Microsoft languages and
  Lahey FORTRAN use this interrupt
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 3CINT 3


INT 3E

3E - FLOATING POINT EMULATION - Borland LANGUAGES "SHORTCUT" CALL

Notes

      	the two bytes following the INT 3E instruction are the subcode and
  a NOP (90h), except for subcodes DCh and DEh, where the second byte
  is a register count (01h-08h)
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 3D

Subcode	Function
 DCh	load 8086 stack with 8087 registers; overwrites the 10*N bytes at the
  top of the stack prior to the INT 3E with the 8087 register contents
 DEh	load 8087 registers from top of 8086 stack; ST0 is furthest from top
  of 8086 stack
 E0h	round TOS and R1 to single precision, compare, pop twice
  returns AX=8087 status word, FLAGS=8087 condition bits
 E2h	round TOS and R1 to double precision, compare, pop twice
  returns AX=8087 status word, FLAGS=8087 condition bits
Note: buggy in TPas5.5, because it sets the 8087 precision control
  field to the undocumented value 01h; this results in actually
  rounding to single precision
 E4h	compare TOS/R1 with two POP's
  returns FLAGS=8087 condition bits
 E6h	compare TOS/R1 with POP
  returns FLAGS=8087 condition bits
 E8h	FTST (check TOS value)
  returns FLAGS=8087 condition bits
 EAh	FXAM (check TOS value)
  returns AX=8087 status word
 ECh	sine(ST0)
 EEh	cosine(ST0)
 F0h	tangent(ST0)
 F2h	arctangent(ST0)
 F4h	ST0 = ln(ST0)
 F6h	ST0 = log2(ST0)
 F8h	ST0 = log10(ST0)
 FAh	ST0 = e**ST0
 FCh	ST0 = 2**ST0
 FEh	ST0 = 10**ST0


INT 3F

3F - Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM)

Notes

      	INT 3F is the default, and may be overridden while linking
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 FEOVERLAY


INT 3F

3F - Microsoft Dynamic Link Library manager

SeeAlso

    INT 21 AH=4B


INT 40

40 - DISKETTE - ROM BIOS DISKETTE HANDLER RELOCATED BY HARD DISK BIOS

SeeAlso

    INT 13INT 6


INT 40

40 - Z100 - Master 8259 - Parity error or S100 error

SeeAlso

    INT 41Z100"    INT FFZ100


INT 40

40 - Acorn BBC Master 512 - "OSFIND" - OPEN FILE

AL = operation
    00h close file
    40h open file for reading
    80h open file for writing
    C0h open file for random access
DS:BX -> CR-terminated filename

Return

        AL = file handle (00h if file closed or could not be opened)

Note

     	the Acorn BBC Master 512 is an 80186-based add-on board for the
  6502-based Master 128 which uses the original CPU as an I/O processor

SeeAlso

    INT 41Acorn"    INT 42Acorn"    INT 43Acorn"    INT 44Acorn"    INT 4CAcorn


INT 41

41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE

Note

     	the default parameter table array is located at F000h:E401h in 100%
  compatible BIOSes; the pointer may be overridden by the hard disk
  controller's BIOS to support drive formats unknown to the ROM BIOS

SeeAlso

    INT 13 AH=09    INT 1EINT 4

Table Formats

Fixed disk parameters:


INT 41

41 - Z100 - Master 8259 - Processor Swap

SeeAlso

    INT 40Z100"    INT 42Z100


INT 41

41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT

AL = function
    01h put bytes sequentially
    02h put bytes, ignoring sequential pointer
    03h get bytes sequentially
    04h get bytes, ignoring sequential pointer
    05h get media title and boot option
    06h get current device and directory
    07h get current library and device
    08h search directory
DS:BX -> control block (see below)

Return

        CF clear if successful
CF set on error
AL = 00h if operation attempted
AL unchanged if unsupported function

SeeAlso

    INT 40Acorn"    INT 42Acorn"    INT 43Acorn

Table Formats

Control block:


INT 41 AH=12

41 P - MS Windows debugging kernel - "OutputDebugString"

AH = 12h
???

Return

        ???

SeeAlso

    INT 41 AH=50


INT 41 AH=50

41 P - MS Windows debugging kernel - "DefineDebugSegment"

AH = 50h
???

Return

        ???

SeeAlso

    INT 41 AH=12


INT 42

42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA)

SeeAlso

    INT 10

Note

     	not used by PS/2 built-in VGA or XGA


INT 42

42 - Z100 - Master 8259 - Timer

SeeAlso

    INT 41Z100"    INT 43Z100


INT 42

42 - Acorn BBS Master 512 - "OSBPUT" - WRITE SINGLE BYTE TO FILE

AL = byte to be written
BH = file handle

Return

        flags destroyed

SeeAlso

    INT 40Acorn"    INT 41Acorn"    INT 43Acorn"    INT 47Acorn"    INT 49Acorn


INT 43

43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA)

   points at graphics data for characters 00h-7Fh of the current font

SeeAlso

    INT 1FINT 44"VIDEO


INT 43

43 - Z100 - Master 8259 - Slave 8259 input

Note

     	slave runs in special fully nested mode

SeeAlso

    INT 42Z100"    INT 44Z100


INT 43

43 - Acorn BBC Master 512 - "OSBGET" - READ SINGLE BYTE FROM FILE

BH = file handle

Return

        CF clear if successful
    AL = byte read from file
CF set on error

SeeAlso

    INT 40Acorn"    INT 41Acorn"    INT 42Acorn"    INT 46Acorn


INT 44

44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr)

   points at graphics data for current character font

SeeAlso

    INT 1FINT 43"VIDEO


INT 44

44 - Novell NetWare - HIGH-LEVEL LANGUAGE API


INT 44

44 - IBM 3270-PC High Level Language API

DS:SI -> parameter control block


INT 44

44 - Z100 - Master 8259 - Serial A

SeeAlso

    INT 43Z100"    INT 45Z100


INT 44

44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE

AH = 00h
    AL = function
00h get current filing system
Return: AL = filing system (see below)
01h get address of commandline tail
Return: BX buffer filled with address of command tail
in I/O processor address space
(use INT 4A/AL=05h to retrieve)
FFh flush all files onto secondary storage
AH = file handle
    AL = function
00h get sequential pointer for file
01h set sequential pointer for file
02h get length of file
BX -> 4-byte data buffer

Return

        BX buffer updated if appropriate

Note

     	the commandline tail is terminated with a carriage return (0Dh)

SeeAlso

    INT 40Acorn"    INT 41Acorn"    INT 45Acorn"    INT 4AAcorn

Values for filing system:
 00h none
 01h 1200 bps cassette
 02h 300 bps cassette
 03h ROM FS
 04h DFS
 05h ANFS/NFS
 06h TFS
 08h ADFS


INT 45

45 - Z100 - Master 8259 - Serial B

SeeAlso

    INT 44Z100"    INT 46Z100


INT 45

45 - Acorn BBC Master 512 - "OSFILE" - READ/WRITE FILE OR DIRECTORY INFO

AL = function
    00h save block of memory as file
    01h update directory entry for existing file
    02h set load address for existing file
    03h set execution address for existing file
    04h set attributes for existing file
    05h read directory
    06h delete file
    FFh load file
DS:BX -> control block (see below)

Return

        FLAGS destroyed
AL = file type
    00h not found
    01h file found
    02h directory found
    FFh	protected file

SeeAlso

    INT 40Acorn"    INT 41Acorn"    INT 44Acorn"    INT 46Acorn

Table Formats

Control block:


INT 46

46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE

SeeAlso

    INT 13 AH=09    INT 41


INT 46

46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen

SeeAlso

    INT 45Z100"    INT 47Z100


INT 46

46 - Acorn BBC Master 512 - "OSRDCH" - GET CHARACTER FROM CUR INPUT STREAM

Return

        CF clear if successful
    AL = character read
CF set on error
    AL = error code

SeeAlso

    INT 40Acorn"    INT 43Acorn"    INT 47Acorn"    INT 49Acorn


INT 47

47 - Z100 - Master 8259 - Printer

SeeAlso

    INT 46Z100"    INT 48Z100


INT 47

47 - Acorn BBC Master 512 - "OSWRCH" - WRITE CHARACTER TO CUR OUTPUT STREAM

AL = character to be written

Return

        FLAGS destroyed

SeeAlso

    INT 40Acorn"    INT 46Acorn"    INT 49Acorn


INT 47 AX=8000

47 - SQL Base - DATABASE ENGINE API

AX = 8000h
DS:BX -> parameter block, first word is function number

Note

     	SQL Base is a network-oriented database engine by Gupta Technologies

Values for function number:
 01h	"SQLFINI" initalialize application's use of the database
 02h	"SQLFDON" application is done using the database
 03h	"SQLFCON" connect to a cursor/database
 04h	"SQLFDIS" disconnect from a cursor/database
 05h	"SQLFCOM" compile a SQL command
 06h	"SQLFEXE" execute a SQL command
 07h	"SQLFCEX" compile and execute a SQL command
 08h	"SQLFCMT" commit a transaction to the database
 09h	"SQLFDES" describe the items of a SELECT statement
 0Ah	"SQLFGFI" get fetch information
 0Bh	"SQLFFBK" fetch previous result row from SELECT statement
 0Ch	"SQLFFET" fetch next result row from SELECT statement
 0Dh	"SQLFEFB" enable fetch backwards
 0Eh	"SQLFPRS" position in result set
 0Fh	"SQLFURS" undo result set
 10h	"SQLFNBV" get number of bind variables
 11h	"SQLFBND" bind data variables
 12h	"SQLFBNN" bind numerics
 13h	"SQLFBLN" bind long number
 14h	"SQLFBLD" bind long data variables
 15h	"SQLFSRS" start restriction set processing
 16h	"SQLFRRS" restart restriction set processing
 17h	"SQLFCRS" close restriction set
 18h	"SQLFDRS" drop restriction set
 19h	"SQLFARF" apply Roll Forward journal
 1Ah	"SQLFERF" end Roll Forward journal
 1Bh	"SQLFSRF" start Roll Forward journal
 1Ch	"SQLFSTO" store a compiled SQL command
 1Dh	"SQLFRET" retrieve a compiled SQL command
 1Eh	"SQLFDST" drop a stored command
 1Fh	"SQLFCTY" get command type
 20h	"SQLFEPO" get error position
 21h	"SQLFGNR" get number of rows
 22h	"SQLFNSI" get number of select items
 23h	"SQLFRBF" get Roll Back flag
 24h	"SQLFRCD" get return code
 25h	"SQLFROW" get number of ROWs
 26h	"SQLFSCN" set cursor name
 27h	"SQLFSIL" set isolation level
 28h	"SQLFSLP" set log parameters
 29h	"SQLFSSB" set select buffer
 2Ah	"SQLFSSS" set sort space
 2Bh	"SQLFRLO" read long
 2Ch	"SQLFWLO" write long
 2Dh	"SQLFLSK" long seek
 2Eh	"SQLFGLS" get long size
 2Fh	"SQLFELO" end long operation
 30h	"SQLFRBK" roll back a transaction from the database
 31h	"SQLFERR" error message
 32h	"SQLFCPY" copy
 33h	"SQLFR01" reserved
 34h	"SQLFSYS" system
 35h	"SQLFSTA" statistics
 36h	"SQLFR02" reserved
 37h	"SQLFXAD" extra add
 38h	"SQLFXCN" extra character to number
 39h	"SQLFXDA" extra date add
 3Ah	"SQLFXDP" extra date picture
 3Bh	"SQLFXDV" extra divide
 3Ch	"SQLFXML" extra multiply
 3Dh	"SQLFXNP" extra number picture
 3Eh	"SQLFXPD" extra picture date
 3Fh	"SQLFXSB" extra subtract
 40h	"SQLFINS" install database
 41h	"SQLFDIN" deinstall database
 42h	"SQLFDIR" directory of databases
 43h	"SQLFTIO" timeout
 44h	"SQLFFQN" get fully qualified column name
 45h	"SQLFEXP" explain execution plan
 46h	"SQLFFER" get full error
 47h	"SQLFBKP" begin online backup
 48h	"SQLFRDC" read backup data chunk
 49h	"SQLFEBK" end backup
 4Ah	"SQLFRES" begin restore from backup
 4Bh	"SQLFWDC" write backup data chunk for restore
 4Ch	"SQLFRRD" recover restored database to consistent state
 4Dh	"SQLFERS" end restore
 4Eh	"SQLFNRR" return number of result set rows
 4Fh	"SQLFSTR" start restriction mode
 50h	"SQLFSPR" stop restriction mode
 51h	"SQLFCNC" connect 2
 52h	"SQLFCNR" connect with no recovery
 53h	"SQLFOMS" set output message size
 54h	"SQLFIMS" set input message size
 55h	"SQLFSCP" set cache pages
 56h	"SQLFDSC" describe items of a SELECT statement (external)
 57h	"SQLFLAB" get label info for items in SELECT statement
 58h	"SQLFCBV" clear bind variables
 59h	"SQLFGET" get database information
 5Ah	"SQLFSET" set database information
 5Bh	"SQLFTEC" translate error code


INT 47 AX=8001

47 - SQL Base - GET VERSION NUMBER

AX = 8001h

Return

        ???

Note

     	SQL Base is a network-oriented database engine by Gupta Technologies


INT 48

48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr)

SeeAlso

    INT 49PCjr


INT 48

48 - Z100 - Slave 8259 - S100 vectored line 0

SeeAlso

    INT 47Z100"    INT 49Z100


INT 48

48 - Watstar PC Network data pointer 1

SeeAlso

    INT 49Watstar


INT 48

48 - Acorn BBC Master 512 - "OSNEWL" - SEND NEWLINE TO OUTPUT STREAM

Return

        FLAGS destroyed

Note

     	writes a carriage return (0Dh) followed by a linefeed (0Ah)

SeeAlso

    INT 40Acorn"    INT 47Acorn"    INT 49Acorn


INT 49

49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr)

SeeAlso

    INT 48PCjr

Table Formats

Translation table:


INT 49

49 - Z100 - Slave 8259 - S100 vectored line 1

SeeAlso

    INT 48Z100"    INT 4AZ100


INT 49

49 - Texas Instruments PC - VIDEO I/O???

apparently provides direct video display on the TI Professional PC


INT 49

49 - Watstar PC Network data pointer 2

SeeAlso

    INT 49Watstar


INT 49

49 - Acorn BBC Master 512 - "OSASCI" - WRITE CHARACTER TO CUR OUTPUT STREAM

AL = character to be written

Return

        FLAGS destroyed

Note

     	converts carriage return (0Dh) into CRLF sequence (0Dh 0Ah)

SeeAlso

    INT 40Acorn"    INT 46Acorn"    INT 47Acorn"    INT 48Acorn


INT 49 AX=0001

49 - MAGic v1.16+ - TURN ON MAGNIFICATION

AX = 0001h

Return

        AX = status
    0000h cannot magnify current video mode
    0002h magnified (text mode)
    0003h magnified (graphics mode)
    FFFDh function works only in magnified mode
    FFFFh MAGic busy, retry later
BX,CX,DX destroyed

Notes

      	MAGic (MAGnification In Color) is a TSR by Microsystems Software, Inc.
  providing 2x2 text and graphics magnification on VGA, XGA, and SVGA
INT 49 is the default, but may be overridden on the commandline.  The
  actual interrupt in use may be found by searching for the signature
  "MAGic" or "xMAGic" (for the deluxe version) immediately preceding
  the interrupt handler (this is also the installation check).	MAGic
  uses CodeRunneR, which places the signature "RT" at offset 0000h in
  the interrupt handler's segment, followed by MAGic's TSR ID of
  "VMAG".

SeeAlso

    INT 49 AX=0001    INT 49 AX=0003    INT 49 AX=0004    INT 49 AX=0008


INT 49 AX=0002

49 - MAGic v1.16+ - TURN OFF MAGNIFICATION

AX = 0002h

Return

        AX = status (see AX=0001h)
BX,CX,DX destroyed

SeeAlso

    INT 49 AX=0001


INT 49 AX=0003

49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION

AX = 0003h
BX = vertical position (character row [text] or pixel row [graphics])
DX = horizontal position (char column [text] or 8-pixel units [gr])

Return

        AX = status
    0000h successful
    FFFFh MAGic busy, retry later
BX,CX,DX destroyed

Note

     	window is not moved if the position is inside the current window

SeeAlso

    INT 49 AX=0001    INT 49 AX=0004    INT 49 AX=0005


INT 49 AX=0004

49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW

AX = 0004h
BX = vertical position of upper left corner
DX = horizontal position

Return

        AX = status (see AX=0003h)
BX,CX,DX destroyed

SeeAlso

    INT 49 AX=0001    INT 49 AX=0003    INT 49 AX=0005


INT 49 AX=0005

49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW

AX = 0005h

Return

        AX = status
    0000h successful
BX = vertical position (char row or pixel row)
DX = horizontal position (char column or 8-pixel units)
    FFFFh MAGic busy, retry later
BX,DX destroyed
CX destroyed

SeeAlso

    INT 49 AX=0001    INT 49 AX=0003    INT 49 AX=0004    INT 49 AX=0006    INT 49 AX=0007


INT 49 AX=0006

49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN

AX = 0006h

Return

        AX = status
    0000h successful
BX = vertical size (char rows or pixel rows)
DX = horizontal size (char cols or 8-pixel units)
    FFFFh MAGic busy, retry later
BX,DX destroyed
CX destroyed

SeeAlso

    INT 49 AX=0001    INT 49 AX=0005    INT 49 AX=0007


INT 49 AX=0007

49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW

AX = 0007h

Return

        AX = status
    0000h successful
BX = vertical size (char rows or pixel rows)
DX = horizontal size (char cols or 8-pixel units)
    FFFEh invalid function
    FFFFh MAGic busy, retry later
BX,DX destroyed
CX destroyed

BUG

    	in v1.16 and v1.17, this function is not recognized as valid, but
  AX=0000h is accepted and will branch into hyperspace

SeeAlso

    INT 49 AX=0001    INT 49 AX=0006


INT 49 AX=0008

49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE

AX = 0008h
BX = scaling factor (01h=1.4 times, 02h, 04h, 06h, 08h, 09h=12 times)

Return

        AX = status
    0000h successful
    FFFBh scaling factor only available in MAGic Deluxe
    FFFCh already in magnified state, can't set size

Notes

      	this call specifies the amount a subsequent call to AX=0001h should
  magnify the display
scaling factors greater than 2 are only available in MAGic Deluxe

SeeAlso

    INT 49 AX=0001


INT 4A

4A C - SYSTEM - USER ALARM HANDLER

Desc

     	This interrupt is invoked by the BIOS when a real-time clock alarm
  occurs; an application may use it to perform an action at a
  predetermined time.

Note

     	this interrupt is called from within a hardware interrupt handler,
  so all usual precautions against reentering DOS must be taken

SeeAlso

    INT 1A AH=06


INT 4A

4A - Z100 - Slave 8259 - S100 vectored line 2

SeeAlso

    INT 49Z100"    INT 4BZ100


INT 4A

4A - Acorn BBC Master 512 - "OSWORD" - MISC FUNCTIONS USING CONTROL BLOCK

AL = function code
    FAh transfer data between 80186 and 65C12 I/O processor
DS:BX -> control block (see below)

Return

        FLAGS destroyed
control block updated

Note

     	there are more functions than are listed here, but details are not
  available

SeeAlso

    INT 40Acorn"    INT 4BAcorn"    INT 4CAcorn

Table Formats

Control block for function FAh:


INT 4B

4B - Z100 - Slave 8259 - S100 vectored line 3

SeeAlso

    INT 4AZ100"    INT 4CZ100


INT 4B

4B - Common Access Method SCSI interface (draft revision 1.9)

ES:DI -> CAM Control Block (see INT 4F/AX=8100h)

Notes

      	the CAM committee moved the interface to INT 4F after revision 1.9
  to avoid conflicting with the IBM SCSI interface and the Virtual
  DMA specification
the installation check for the driver is the string "SCSI_CAM" eight
  bytes past the INT 4Bh handler
it is not known whether any drivers actually implemented this
  interface on INT 4B instead of INT 4F

SeeAlso

    INT 4F AX=8100


INT 4B

4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS

AL = function code
BL = first parameter
BH = second parameter (if needed)

Return

        BL = first return parameter
BH = second return parameter
CF depends on function

SeeAlso

    INT 40Acorn"    INT 4AAcorn"    INT 4CAcorn


INT 4B AH=80

4B - IBM SCSI interface

AH = 80h
details not yet available


INT 4B AX=8102

4B - Virtual DMA Specification (VDS) - GET VERSION

AX = 8102h
DX = 0000h

Return

        CF clear if successful
    AH = major version number
    AL = minor version number
    BX = product number
0000h for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS
0001h for Microsoft's EMM386.EXE
4560h ("E`") for Qualitas' 386MAX
4D43h ("MC") for V Communication's Memory Commander
5145h ("QE") for Quarterdeck's QEMM-386
    CX = product revision number
always 0000h for QMAPS and HPMM.SYS
always 0001h for Microsoft's EMM386.EXE v4.20-4.41
    SI:DI = maximum DMA buffer size
    DX = flags
bit 0: PC/XT bus (DMA in first megabyte only)
    1: physical buffer/remap region in first megabyte
    2: automatic remap enabled
    3: all memory is physically contiguous
 4-15: reserved (zero)
CF set on error
    AL = error code (see below)

Note

     	bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is
  apparently not always the case

SeeAlso

    INT 31

Values for error code:
 01h	region not in contiguous memory
 02h	region crossed a physical alignment boundary
 03h	unable to lock pages
 04h	no buffer available
 05h	region too large for buffer
 06h	buffer currently in use
 07h	invalid memory region
 08h	region was not locked
 09h	number of physical pages greater than table length
 0Ah	invalid buffer ID
 0Bh	copy out of buffer range
 0Ch	invalid DMA channel number
 0Dh	disable count overflow
 0Eh	disable count underflow
 0Fh	function not supported
 10h	reserved flag bits set in DX

Table Formats

DMA descriptor structure (DDS):
Extended DMA descriptor structure (EDDS):
Extended DMA descriptor structure (EDDS) with page table entries:


INT 4B AX=8103

4B - Virtual DMA Specification - LOCK DMA REGION

AX = 8103h
DX = flags
    bit 0: reserved (zero)
1: data should be copied into buffer (ignored if bit 2 set)
2: buffer should not be allocated if region noncontiguous or
   crosses physical alignment boundary specified by bits 4-5
3: don't attempt automatic remap
4: region must not cross 64K physical alignment boundary
5: region must not cross 128K physical alignment boundary
     6-15: reserved (zero)
ES:DI -> DMA descriptor structure (see AX=8102h)

Return

       	CF clear if successful
    DDS physical address field filled in
    DDS buffer ID field filled (0000h if no buffer allocated)
CF set on error
    AL = error code (see AX=8102h)
    DDS region size field filled wth maximum contiguous length in bytes

SeeAlso

    INT 4B AX=8104    INT 4B AX=8105


INT 4B AX=8104

4B - Virtual DMA Specification - UNLOCK DMA REGION

AX = 8104h
DX = flags
    bit 0: reserved (zero)
1: data should be copied out of buffer
     2-15: reserved (zero)
ES:DI -> DMA descriptor structure (see AX=8102h) with region size,
physical address, and buffer ID fields set

Return

        CF clear if successful
    DDS physical address field set
    DDS buffer ID field set (0000h if no buffer allocated)
CF set on error
    AL = error code (see AX=8102h)
    DDS region size field filled wth maximum contiguous length in bytes

SeeAlso

    INT 4B AX=8103    INT 4B AX=8106


INT 4B AX=8105

4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION

AX = 8105h
DX = flags
    bits 0-5: reserved (zero)
   6: EDDS should be returned with page table entries
   7: only present pages should be locked (not-present pages
receive entry of 0000h)
8-15: reserved (zero)
ES:DI -> Extended DMA descriptor structure (see AX=8102h)
region size, linear segment, linear offset, and number avail
fields set

Return

        CF clear if successful
    EDDS number used field set
    if DX bit 6 set, lower 12 bits of BX = offset in first page
CF set on error
    AL = error code (see AX=8102h)
    EDDS region size field filled with max length in bytes that can be
locked and described in the EDDS table

SeeAlso

    INT 4B AX=8103    INT 4B AX=8106


INT 4B AX=8106

4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION

AX = 8106h
DX = flags
    bits 0-5: reserved (zero)
   6: EDDS contains page table entries
   7: EDDS may contain not-present pages (entry = 0000h)
8-15: reserved (zero)
ES:DI -> Extended DMA descriptor structure (see AX=8102h) returned
by AX=8105h

Return

        CF clear if successful
CF set on error
    AL = error code (see AX=8102h)

Note

     	according to the Microsoft version of the VDS specification, the
  actual scatter/gather list is ignored, while according to the IBM
  version of the specification, "the result of a LOCK operation"
  must be provided to this function

SeeAlso

    INT 4B AX=8104    INT 4B AX=8105


INT 4B AX=8107

4B - Virtual DMA Specification - REQUEST DMA BUFFER

AX = 8107h
DX = flags
    bit 0: reserved (zero)
1: data should be copied into buffer
     2-15: reserved (zero)
ES:DI -> DMA descriptor structure (see AX=8102h) with region size set
(also region offset and region segment if DX bit 1 set)

Return

        CF clear if successful
    DDS physical address and buffer ID set
    DDS region size filled with length of buffer
CF set on error
    AL = error code (see AX=8102h)

SeeAlso

    INT 4B AX=8108


INT 4B AX=8108

4B - Virtual DMA Specification - RELEASE DMA BUFFFER

AX = 8108h
DX = flags
    bit 0: reserved (zero)
1: data should be copied out of buffer
     2-15: reserved (zero)
ES:DI -> DMA descriptor structure (see AX=8102h) with buffer ID set
(also region size/region offset/segment if DX bit 1 set)

Return

        CF clear if successful
CF set on error
    AL = error code (see AX=8102h)

SeeAlso

    INT 4B AX=8107


INT 4B AX=8109

4B - Virtual DMA Specification - COPY INTO DMA BUFFER

AX = 8109h
DX = 0000h
ES:DI -> DMA descriptor structure (see AX=8102h) with buffer ID,
region segment/offset, and region size fields set
BX:CX = starting offset into DMA buffer

Return

        CF clear if successful
CF set on error
    AL = error code (see AX=8102h)

SeeAlso

    INT 4B AX=810A


INT 4B AX=810A

4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER

AX = 810Ah
DX = 0000h
ES:DI -> DMA descriptor structure (see AX=8102h) with buffer ID,
region segment/offset, and region size fields set
BX:CX = starting offset into DMA buffer

Return

        CF clear if successful
CF set on error
    AL = error code (see AX=8102h)

SeeAlso

    INT 4B AX=8109


INT 4B AX=810B

4B - Virtual DMA Specification - DISABLE DMA TRANSLATION

AX = 810Bh
BX = DMA channel number
DX = 0000h

Return

        CF clear if successful
CF set on error
    AL = error code (see AX=8102h)

SeeAlso

    INT 4B AX=810C


INT 4B AX=810C

4B - Virtual DMA Specification - ENABLE DMA TRANSLATION

AX = 810Ch
BX = DMA channel number
DX = 0000h

Return

        CF clear if successful
    ZF set if disable count decremented to zero
CF set on error
    AL = error code (see AX=8102h)

SeeAlso

    INT 4B AX=810B


INT 4B AX=810D

4B - QEMM-386 - BUG

AX = 810Dh

Note

     	the code in QEMM v5.11 and 6.00 jumps to an invalid location on this
  call


INT 4C

4C - Z100 - Slave 8259 - S100 vectored line 4

SeeAlso

    INT 4BZ100"    INT 4DZ100


INT 4C

4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE

DS:BX -> CR-terminated command string

Return

        FLAGS destroyed

SeeAlso

    INT 40Acorn"    INT 4AAcorn"    INT 4BAcorn


INT 4D

4D - Z100 - Slave 8259 - S100 vectored line 5

SeeAlso

    INT 4CZ100"    INT 4EZ100


INT 4E

4E - TI Professional PC - DISK I/O

used instead of INT 13 on the TI Professional PC

SeeAlso

    INT 13


INT 4E

4E - Z100 - Slave 8259 - S100 vectored line 6

SeeAlso

    INT 4DZ100"    INT 4FZ100


INT 4F

4F - Z100 - Slave 8259 - S100 vectored line 7

SeeAlso

    INT 4EZ100


INT 4F AX=8100

4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM

AX = 8100h
ES:BX -> CAM Control Block (CCB) (see below)

Return

        AH = status
    00h successful
    01h invalid CCB address (0000h:0000h)

Note

     	the SCSI Interface Module (SIM) may complete the requested function
  and invoke the completion callback function before this call returns

SeeAlso

    INT 4F AX=8200    INT 4BCommon Access Method

Table Formats

CAM Control Block:
Values for CAM function code:
 00h NOP
 01h execute SCSI I/O
 02h get device type
 03h path inquiry
 04h release SIM queue
 05h set async callback
 06h set device type
 07h-0Fh reserved
 10h abort SCSI command
 11h reset SCSI bus
 12h reset SCSI device
 13h terminate I/O process
 14h-1Fh reserved
 20h engine inquiry
 21h execute engine request
 22h-2Fh reserved
 30h enable logical unit number
 31h execute target I/O
 32h-7Fh reserved
 80h-FFh vendor-specific functions

Values for CAM status:
 00h request in progress
 01h request successful
 02h host aborted request
 03h unable to abort request
 04h request completed with error
 05h CAM is busy
 06h invalid request
 07h invalid path ID
 08h no such SCSI device
 09h unable to terminate I/O process
 0Ah timeout on target selection
 0Bh timeout on command
 0Dh receive message rejection
 0Eh sent/received SCSI bus reset
 0Fh detected uncorrectable parity error
 10h Autosense request failed
 11h no HBA detected
 12h data over/underrun
 13h bus freed unexpectedly
 14h target bus phase sequence failure
 15h CCB too small
 16h requested capability not available
 17h sent bus device reset
 18h terminate I/O process
 38h invalid LUN
 39h invalid target ID
 3Ah unimplemented function
 3Bh nexus not established
 3Ch invalid initiator ID
 3Dh received SCSI Command Descriptor Block
 3Eh LUN already enabled
 3Fh SCSI bus busy

Note

     	bit 6 set to indicate frozen SIM queue
bit 7 set to indicate valid autosense

Completion callback function called with:
interrupts disabled
ES:BX -> completed CCB

Asynchronous callback function called with:
AH = opcode
AL = path ID generating callback
DH = target ID causing event
DL = LUN causing event
CX = data byte count (if applicable)
ES:BX -> data buffer (if applicable)

Return

        all registers preserved


INT 4F AX=8200

4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK

AX = 8200h
CX = 8765h
DX = CBA9h

Return

        AH = 00h if installed
    CX = 9ABCh
    DX = 5678h
    ES:DI -> "SCSI_CAM"

SeeAlso

    INT 4F AX=8100    INT 4BCommon Access Method


INT 50

50 - TIL Xpert AIM (X.25)

AH = function


INT 50

50 - IRQ0 relocated by DESQview

Notes

      	this is the default location for older versions; DESQview v2.26+
  searches for unused ranges of interrupts and uses the lowest
  available range in its list for relocating these IRQs and the next
  lowest for relocating IRQ8-IRQ15
a range of eight interrupts starting at a multiple of 8 is considered
  available if all vectors are identical and it has not been excluded
  with an /XB:nn commandline switch
the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
  are available, F8h and then 50h are used anyway)
the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
  are available, F8h and then F0h are used anyway)

SeeAlso

    INT 08IRQ0"    INT 51DESQview"    INT 54DESQview"    INT 58DESQview


INT 50

50 - IRQ0 relocated by IBM 3278 emulation control program

SeeAlso

    INT 51IBM 3278


INT 50

50 - IRQ0 relocated by OS/2 v1.x

SeeAlso

    INT 51OS/2


INT 50 AX=0000

50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW

AX = 0000h
ES:BX -> name string or ES:0000h if none
CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner

Return

        AX = window handle or
    0000h if not installed
    FFFFh on error

SeeAlso

    INT 50 AX=0001    INT 50 AX=0002"TEXT WINDOWS"


INT 50 AX=0001

50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW

AX = 0001h
DI = window handle

SeeAlso

    INT 50 AX=0000


INT 50 AX=0002

50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW

AX = 0002h
BL = character
BH = attribute
DL = column
DH = row
DI = window handle

Return

        AX = status
    0000h if successful
    FFFFh if outside window

SeeAlso

    INT 50 AX=0000


INT 50 AX=0002

50 - PC Thuis Organizer Shell - PLOT TEXT

AX = 0002h
ES:BX -> text string
DH,DL = row,column of upper left corner
DI = window handle

Return

        AX = status
    0000h successful (text fits in window)
    FFFFh error

Program

         The PC Thuis Organizer Shell was written by John Vanderaart and
  published in the June/July 1990 issue of PC Thuis Power magazine


INT 50 AX=0003

50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW

AX = 0003h
ES:BX -> text string
CX = string length (0000h if ASCIZ string)
DL = position (FFh centered, else flush left)
DH = starting row
DI = window handle

Return

        AX = status
    0000h successful
    FFFFh did not fit in window


INT 50 AX=0003

50 - PC Thuis Organizer Shell - WRITE FILE

AX = 0003h
ES:BX -> data to be written
CX = number of bytes to write
DS:SI -> filename

Return

        AX = status
    0000h successful
    FFFFh error

SeeAlso

    INT 50 AX=0004"Shell"


INT 50 AX=0004

50 - Vanderaart TEXT WINDOWS - GET KEY

AX = 0004h
CH = type
    00h any key
    01h 'J' or 'N' (Dutch for yes/no)

Return

        AX = key

SeeAlso

    INT 16 AH=00


INT 50 AX=0004

50 - PC Thuis Organizer Shell - READ FILE

AX = 0004h
ES:BX -> buffer for data
CX = number of bytes to read or 0000h for entire file
DL = file type
    01h setting shell
    02h setting sterm
    03h INT21 file
DS:SI -> filename

Return

        AX = status
    0000h successful
    FFFFh error

Note

     	file type numbers are maintained by John Vanderaart; if a new file type
  is needed, a type number should be requested from him through the
  magazine:
PC Thuis BV
Spaarne 55
2011 CE HAARLEM
The Netherlands

SeeAlso

    INT 50 AX=0003"Shell"


INT 50 AX=0005

50 -Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE

AX = 0005h
BL = new attribute
CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner
DI = window handle


INT 50 AX=0005

50 - PC Thuis Organizer Shell - PROMPT YES/NO

AX = 0005h
ES:BX -> prompt string (ES:0000h if no prompt)

Return

        AX = key pressed
    0000h "J" (Dutch "Ja" = "Yes")
    FFFFh "N" (Dutch "Nee" = "No")

Program

         The PC Thuis Organizer Shell was written by John Vanderaart and
  published in the June/July 1990 issue of PC Thuis Power magazine


INT 50 AX=0006

50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW

AX = 0006h
ES:BX -> text string
CH = type
    00h everything
    01h uppercase only
    02h positive numbers
    03h Dutch postal code ("9999 AA")
    04h 'J' or 'N' (Dutch yes/no)
    05h telephone or FAX number
    06h positive or negative number
    07h date (dd/mm/yy)
    08h money
    09h '1' through '8'
    0Ah '1' through '4'
    0Bh uppercase filenames
DH,DL = row,column of upper left corner
DI = window handle

Return

        AX = key which terminated entry
    0000h Enter
    0001h Esc
    0002h Down arrow
    0003h Up arrow
    0004h F10


INT 50 AX=0006

50 - PC Thuis Organizer Shell - ALERT USER

AX = 0006h
ES:BX -> string


INT 50 AX=0007

50 - PC Thuis Organizer Shell - DO LINE

AX = 0007h
ES:BX -> text string
CX = string length in bytes (0000h if NUL-terminated)
DL = FFh to center string, else flush left
DH = upper left row
DI = window handle

Return

        AX = status
    0000h successful
    FFFFh error

Program

         The PC Thuis Organizer Shell was written by John Vanderaart and
  published in the June/July 1990 issue of PC Thuis Power magazine


INT 50 AX=0008

50 - PC Thuis Organizer Shell - DO MENU

AX = 0008h
ES:BX -> menu structure

Return

        AL = index 1 or FFh if not selected
AH = index 2 or FFh if not selected
BL = index 3 or FFh if not selected
BH = index 4 or FFh if not selected

SeeAlso

    INT 50 AX=000C


INT 50 AX=0009

50 - PC Thuis Organizer Shell - MESSAGE ON

AX = 0009h
ES:BX -> message string

SeeAlso

    INT 50 AX=000A


INT 50 AX=000A

50 - PC Thuis Organizer Shell - MESSAGE OFF

AX = 000Ah

SeeAlso

    INT 50 AX=0009


INT 50 AX=000B

50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE

AX = 000Bh
BL = new attribute
CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner
DI = window handle


INT 50 AX=000C

50 - PC Thuis Organizer Shell - DO REQUEST

AX = 000Ch
ES:BX -> request structure

Return

        AX = status
    0000h confirmed
    FFFFh denied

SeeAlso

    INT 50 AX=0008


INT 50 AX=000D

50 - PC Thuis Organizer Shell - EDIT LINE

AX = 000Dh
ES:BX -> text string
CL = length
CH = type
    bit 0: force uppercase
    bit 1: integer
    bit 2: no spaces allowed
    bit 3: no cursor keys
DH,DL = row,column of upper left corner
DI = window handle

Return

        AX = result code

Program

         The PC Thuis Organizer Shell was written by John Vanderaart and
  published in the June/July 1990 issue of PC Thuis Power magazine


INT 50 AX=000E

50 - PC Thuis Organizer Shell - PLOT CHARACTER

AX = 000Eh
BL = character
BH = attribute
DH,DL = row,column at which to plot
DI = window handle

Return

        AX = status
    0000h successful
    FFFFh errror


INT 50 AX=000F

50 - PC Thuis Organizer Shell - EMPTY WINDOW

AX = 000Fh
BL = character
BH = attribute
DI = window handle


INT 50 AX=0010

50 - PC Thuis Organizer Shell - TRACE MENU

AX = 0010h
ES:BX -> first menu structure
CL = hotkey to look up

Return

        AL = index 1 or FFh if not selected
AH = index 2 or FFh if not selected
BL = index 3 or FFh if not selected
BH = index 4 or FFh if not selected


INT 50 AX=0011

50 - PC Thuis Organizer Shell - MOVE MEMORY

AX = 0011h
DS:SI -> source
ES:DI -> destination
CX = number of bytes to move (0000h = until NUL string terminator???)

SeeAlso

    INT 50 AX=0012


INT 50 AX=0012

50 - PC Thuis Organizer Shell - COMPARE MEMORY

AX = 0012h
DS:SI -> source
ES:DI -> destination
CX = number of bytes to compare (0000h=until NUL string terminator???)

Return

        AX = status
    0000h same
    FFFFh different

SeeAlso

    INT 50 AX=0011


INT 50 AX=0013

50 - PC Thuis Organizer Shell - GET KEY

AX = 0013h
CH = type flags
    bit 0: force uppercase
    bit 1: integer
    bit 2: no spaces

Return

        AX = keystroke


INT 50 AX=0014

50 - PC Thuis Organizer Shell - SCROLL WINDOW

AX = 0014h
BL = direction
    06h up
    07h down
BH = attribute
DI = window handle

SeeAlso

    INT 10 AH=06    INT 10 AH=07


INT 50 AX=0015

50 - PC Thuis Organizer Shell - GET MEMORY HANDLE

AX = 0015h
BL = handle size
    00h 65536 bytes (64K)
    01h 65535 bytes (64K-1)
    02h 32768 bytes (32K)
    03h 32767 bytes (32K-1)

Return

        AX = segment

Program

         The PC Thuis Organizer Shell was written by John Vanderaart and
  published in the June/July 1990 issue of PC Thuis Power magazine

SeeAlso

    INT 21 AH=48


INT 51

51 - through 53 - IRQ1-IRQ3 relocated by DESQview

Note

     	this is the default location for older versions; see INT 50"DESQview"
  for details of interrupt relocation

SeeAlso

    INT 50DESQview"    INT 54DESQview"    INT 58DESQview


INT 51

51 - through 53 - IRQ1-IRQ3 relocated by IBM 3278 emulation control program

SeeAlso

    INT 50IBM 3278"    INT 54IBM 3278


INT 51

51 - through 53 - IRQ1-IRQ3 relocated by OS/2 v1.x

SeeAlso

    INT 50OS/2"    INT 54OS/2


INT 53

53 - ??? - API

BX = function
    0000h ???
AX = ???
Return: AX = ???
    0004h ???
    0009h ???
    0015h
AX = ???
DX = ???
    0017h

Return

        ???

Notes

      	the installation check consists of looking for the signature "WEBCO"
  immediately prior to the interrupt handler
the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)


INT 54

54 - through 57 - IRQ4-IRQ7 relocated by DESQview

Note

     	this is the default location for older versions; see INT 50"DESQview"
  for details of interrupt relocation

SeeAlso

    INT 50DESQview"    INT 58DESQview


INT 54

54 - through 57 - IRQ4-IRQ7 relocated by IBM 3278 emulation control program

SeeAlso

    INT 51IBM 3278


INT 54

54 - through 57 - IRQ4-IRQ7 relocated by OS/2 v1.x

SeeAlso

    INT 51OS/2


INT 58

58 - IRQ8 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 70


INT 58

58 - IRQ0 relocated by DoubleDOS

SeeAlso

    INT 08


INT 59

59 - IRQ9 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 71


INT 59

59 - IRQ1 relocated by DoubleDOS

SeeAlso

    INT 09


INT 59

59 - GSS Computer Graphics Interface (GSS*CGI)

DS:DX -> block of 5 array pointers

Return

       	CF set on error
    AX = error code
CF clear if successful
    AX = return code

Note

     	INT 59 is the means by which GSS*CGI language bindings communicate with
  GSS*CGI device drivers and the GSS*CGI device driver controller.
also used by the IBM Graphic Development Toolkit


INT 5A

5A - IRQ10 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 72


INT 5A

5A - IRQ2 relocated by DoubleDOS

SeeAlso

    INT 0A


INT 5A

5A - Cluster adapter BIOS entry address

???


INT 5B

5B - IRQ11 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 73


INT 5B

5B - IRQ3 relocated by DoubleDOS

SeeAlso

    INT 0B


INT 5B

5B - Used by cluster adapter


INT 5B

5B - AT&T Starlan Extended NetBIOS (variable length names)

ES:BX -> Network Control Block (see below)

Return

        AL = status (see INT 5C)

SeeAlso

    INT 5C

Table Formats

Network Control Block
Values for ncb_command field same as for INT 5C, except
70h	send net Break


INT 5B

5B - Microsoft Network Transport Layer Interface

Note

     	used by MS-NET for executing network commands

SeeAlso

    INT 5CNetBIOS


INT 5B

5B - used by Alloy NTNX


INT 5B

5B - ISOLAN Multi Protocol Software

ES:BX -> Transfer Control Block

Return

        AL - status

Note

     	this software interface allows multiple protocols/software packages
  to access a BICC 411x network card

Table Formats

Transfer Control Block:


INT 5C

5C - IRQ12 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 74


INT 5C

5C - IRQ4 relocated by DoubleDOS

SeeAlso

    INT 0C


INT 5C

5C - NetBIOS INTERFACE

ES:BX -> network control block (NCB) (see below)

Return

        AL = status (see below)

Note

     	Sytek PCnet card uses DMA 3.

SeeAlso

    INT 2A AH=01    INT 2A AH=04    INT 5B

Values for NetBIOS status:
 00h successful
 01h bad buffer size
 03h invalid NETBIOS command
 05h timeout
 06h receive buffer too small
 07h No-ACK command failed
 08h bad session number
 09h LAN card out of memory
 0Ah session closed
 0Bh command has been cancelled
 0Dh name already exists
 0Eh local name table full
 0Fh name still in use, can't delete
 11h local session table full
 12h remote PC not listening
 13h bad NCB_NUM field
 14h no answer to CALL or no such remote
 15h name not in local name table
 16h duplicate name
 17h bad delete
 18h abnormal end
 19h name error, multiple identical names in use
 1Ah bad packet
 21h network card busy
 22h too many commands queued
 23h bad LAN card number
 24h command finished while cancelling
 26h command can't be cancelled
 30h name defined by another process (OS/2)
 34h NetBIOS environment not defined, must issue reset (OS/2)
 35h required operating system resources exhausted (OS/2)
 36h maximum applications exceeded (OS/2)
 37h no SAPs available for NetBIOS (OS/2)
 38h requested resources not available (OS/2)
 40h Lana System Error
 41h Lana Remote Hot Carrier
 42h Lana Local Hot Carrier
 43h Lana No Carrier Detected
 44h unusual network condition
 45h-4Dh hardware error
 4Eh token ring is broken
 4Fh token ring error
 50h adapter malfunction
 F7h error in explicit INITIALIZE
 F8h error in implicit OPEN
 F9h TOKREUI internal error
 FAh hardware adapter testing
 FBh NetBIOS emulator not found
 FCh OPEN or OPEN_SAP failure
 FDh unexpected adapter closure
 FFh NetBIOS busy (command pending)

Table Formats

Network Control Block:
Values for command code field in NCB (OR with 80h for non-waiting call):
 10h start session with NCB_NAME name (call)
 11h listen for call
 12h end session with NCB_NAME name (hangup)
 14h send data via NCB_LSN
 15h receive data from a session
 16h receive data from any session
 17h send multiple data buffers
 20h send unACKed message (datagram)
 21h receive datagram
 22h send broadcast datagram
 23h receive broadcast datagram
 30h add name to name table
 31h delete name from name table
 32h reset adapter card and tables
 33h get adapter status (see structure "astatus" below)
 34h status of all sessions for name (see structure "sstatus" below)
 35h cancel
 36h add group name to name table
 48h send data and receive data (LAN Manager NETBEUI.DOS)
 70h unlink from IBM remote program (no F0h function)
 71h send data without ACK
 72h send multiple buffers without ACK
 72h UngermannBass Register (conflicts with above function)
 73h UngermannBass SendNmc
 74h UngermannBass Callniu
 75h UngermannBass Calladdr
 76h UngermannBass Listenaddr
 77h UngermannBass SendPkt
 78h find name
 78h UngermannBass RcvPkt (conflicts with above function)
 79h token-ring protocol trace
 79h UngermannBass SendAttn (conflicts with above function)
 7Ah UngermannBass RcvAttn
 7Bh UngermannBass Listenniu
 7Ch UngermannBass RcvRaw
 7Dh UngermannBass SendNmc2

Structure "name":
Structure "astatus":
Structure "sstatus":
Structure "session":


INT 5C

5C - TOPS INTERFACE

ES:BX -> Network Control Block

Note

     	TOPS card uses DMA 1, 3 or none.


INT 5C

5C - ATALK.SYS - AppleTalk INTERFACE

DX:BX -> control block (see below)

Return

        none

Notes

      	this driver can use any interrupt from 5Ch to 70h
the signature 'AppleTalk' appears 16 bytes prior to the interrupt
  handler; this serves as the installation check

Table Formats

AppleTalk control block:
Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
BDS entries:


INT 5C

5C - IBM 802.2 INTERFACE (LLC)

ES:BX -> CCB

Return

        none

Table Formats

CCB:


INT 5C

5C - $25 LAN - INSTALLATION CHECK

Notes

      	current versions only check whether the vector is 0000h:0000h or not
future versions are supposed to have the signature "NET" in the three
  bytes preceding the INT 5C handler


INT 5C AH=04

5C - $25 LAN - CHECK IF CONNECTION ALIVE

AH = 04h
AL = COM port (0 = default)
CX = wait count in character times (should be at least 100)

Return

        ZF set if link alive


INT 5D

5D - IRQ13 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 75


INT 5D

5D - IRQ5 relocated by DoubleDOS

SeeAlso

    INT 0DINT 5C"DoubleDOS


INT 5E

5E - IRQ14 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 76


INT 5E

5E - IRQ6 relocated by DoubleDOS

SeeAlso

    INT 0EINT 5D"DoubleDOS


INT 5F

5F - IRQ15 relocated by DESQview 2.26+

Note

     	this is the default, but other INTs may be used (see INT 50"DESQview")

SeeAlso

    INT 50DESQview"    INT 77


INT 5F

5F - IRQ7 relocated by DoubleDOS

SeeAlso

    INT 0FINT 5E"DoubleDOS


INT 5F AH=00

5F - HP 95LX GRAPHICS PRIMITIVES - SET VIDEO MODE

AH = 00h
AL = video mode
    07h text, system manager compliant
    20h 240x128 mono graphics, system manager compliant
    87h text, not system manager compliant
    A0h 240x128 mono graphics, not system manager compliant

Note

     	the defaults after setting the mode to graphics are (0,0) logical
  origin, full-screen clip region, (0,0) pen location, pen color 1,
  pixel replacement FORCE, line type and fill mask all bits set

SeeAlso

    INT 0FHP 95LX"    INT 10 AH=00    INT 15 AX=4DD4


INT 5F AH=01

5F - HP 95LX GRAPHICS PRIMITIVES - SET FILL MASK

AH = 01h
ES:DI -> 8-byte fill mask

Note

     	the fill mask represents an 8x8 pixel box and is repeated as necessary
  when drawing filled rectangles; it is always aligned with the byte
  boundaries of video memory, regardless of the actual boundaries of
  the rectangle

SeeAlso

    INT 5F AH=02


INT 5F AH=02

5F - HP 95LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFORMATION

AH = 02h
ES:DI -> graphics info record (see below)

Return

        DX:AX -> filled graphics info record (for return to high-level langs)
Table Formats

Graphics info record:


INT 5F AH=03

5F - HP 95LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN

AH = 03h
CX = column
DX = row

SeeAlso

    INT 5F AH=04


INT 5F AH=04

5F - HP 95LX GRAPHICS PRIMITIVES - SET CLIP REGION

AH = 04h
CX = left-most column
DX = top-most row
SI = right-most column
DI = bottom-most row

SeeAlso

    INT 5F AH=03


INT 5F AH=05

5F - HP 95LX GRAPHICS PRIMITIVES - DRAW RECTANGLE

AH = 05h
AL = fill type
    00h outline, using current line type and color
    01h solid, using current color
    02h pattern, using current fill mask and color
DX,CX = row,column of other corner of rectangle

Note

     	the rectangle is drawn starting at the current pen position

SeeAlso

    INT 5F AH=01    INT 5F AH=06    INT 5F AH=07


INT 5F AH=06

5F - HP 95LX GRAPHICS PRIMITIVES - DRAW LINE

AH = 06h
DX,CX = row,column of end point

Note

     	the line is drawn starting at the current pen position

SeeAlso

    INT 5F AH=05    INT 5F AH=07


INT 5F AH=07

5F - HP 95LX GRAPHICS PRIMITIVES - PLOT POINT

AH = 07h
DX,CX = row,column of point

Note

     	also sets pen position to the specified point

SeeAlso

    INT 5F AH=06    INT 5F AH=08    INT 5F AH=0C


INT 5F AH=08

5F - HP 95LX GRAPHICS PRIMITIVES - MOVE PEN

AH = 08h
DX,CX = row,column of new pen position

SeeAlso

    INT 5F AH=07    INT 5F AH=09


INT 5F AH=09

5F - HP 95LX GRAPHICS PRIMITIVES - SET PEN COLOR

AH = 09h
AL = new color (00h = white, 01h = black)

SeeAlso

    INT 5F AH=08    INT 5F AH=0A    INT 5F AH=0B


INT 5F AH=0A

5F - HP 95LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE

AH = 0Ah
AL = new replacement rule
    00h force
    01h AND
    02h OR
    03h XOR

SeeAlso

    INT 5F AH=01    INT 5F AH=09    INT 5F AH=0B


INT 5F AH=0B

5F - HP 95LX GRAPHICS PRIMITIVES - SET LINE TYPE

AH = 0Bh
CX = new line type

Note

     	the line type specifies 16 bits which are repeated over and over while
  drawing the pixels of a line

SeeAlso

    INT 5F AH=09    INT 5F AH=0A


INT 5F AH=0C

5F - HP 95LX GRAPHICS PRIMITIVES - GET PIXEL

AH = 0Ch
DX,CX = row,column of pixel to read

Return

        AX = pixel color

SeeAlso

    INT 5F AH=07


INT 5F AH=0D

5F - HP 95LX GRAPHICS PRIMITIVES - GET IMAGE

AH = 0Dh
DX,CX = row,column of first corner
BP,SI = row,column of second corner
ES:DI -> image buffer (see below)

Note

     	the specified corners are included in the saved image

SeeAlso

    INT 5F AH=0E

Table Formats

Image buffer:


INT 5F AH=0E

5F - HP 95LX GRAPHICS PRIMITIVES - PUT IMAGE

AH = 0Eh
AL = replacement rule
    bit 2: invert image before applying rule
    bits 1-0:  00 force
       01 AND
       10 OR
       11 XOR
DX,CX = row,column of top left corner
ES:DI -> image buffer (see AH=0Dh)

Note

     	if the specified image does not fit completely on the screen, this call
  does nothing

SeeAlso

    INT 5F AH=0D


INT 5F AH=0F

5F - HP 95LX GRAPHICS PRIMITIVES - WRITE TEXT

AH = 0Fh
AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
DX,CX = row,column of first character's top left corner
ES:DI -> ASCIZ text


INT 60

60 - reserved for user interrupt


INT 60

60 - VIRUS - "Zero Bug" - INSTALLATION CHECK

   The "Zero Bug" virus hooks this vector.  It considers itself installed if
   offset 103h of the handler's segment contains the bytes "ZE"

SeeAlso

    INT 32INT 61"SEMTEX


INT 60

60 - Adaptec and OMTI controllers - DRIVE 0 DATA

SeeAlso

    INT 61Adaptec"    INT 62Adaptec"    INT 63Adaptec"    INT 64Adaptec

Notes

      	this vector stores the first four bytes of the parameter table for
  hard disk 0
these vectors are used by the following Adaptec controllers:
    ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
these vectors are NOT used by the following Adaptec controllers:
    ACB 2310, ACB 2312, ACB 2320D, ACB 2322D


INT 60

60 - Atari Portfolio - USER INTERFACE FUNCTIONS

   supplies a number of subfunctions which perform such functions as drawing
   boxes and menus, and provide input line editing

SeeAlso

    INT 61Atari


INT 60

60 - PC-IPC API

STACK:	DWORD	pointer to parameter block (see below)

Return

        STACK:	unchanged

Notes

      	PC-IPC is a shareware TSR by Donnelly Software Engineering which allows
  communication between independent programs
INT 60 is the default, any interrupt vector may be used by specifying
  the vector on the commandline

Table Formats

Parameter block:
Values of command code:
 01h "IPC_CMND_INQUIRE"	 inquire current status
set status field, writes WORD to data buffer containing free
  message space in bytes, and sets the "size" field to the
  number of messages waiting
 02h "IPC_CMND_ENABLE"	reenable PC-IPC
ignored unless called with the same ID that disabled PC-IPC
 03h "IPC_CMND_DISABLE" disable PC-IPC
 04h "IPC_CMND_INSTALL" reset PC-IPC
 06h "IPC_CMND_RDATA"	read data
returns first message in data buffer, sets "size" to message
  length and "to ID" field to sender's ID
if no messages available, bit 4 of status is cleared and "size"
  is set to zero
 07h "IPC_CMND_SDATA"	send data
 08h "IPC_CMND_REQID"	require user ID
create a new recognized ID and return in "caller's ID" field
 09h "IPC_CMND_DELID"	cancel user ID
delete caller's ID from pool of recognized IDs
 0Ah "IPC_CMND_RDATAW"	read data, wait if no messages available
 0Bh "IPC_CMND_VERS"	get PC-IPC version
string representing version returned in data buffer, "size"
  field set to length of string

Values for error code:
 00h	no error
 01h	invalid command or parameter
 02h	only process 0 can install/reset IPC
 03h	process can not install/reset IPC
 04h	IPC is not enabled
 05h	process can not disable IPC
 06h	invalid destination process ID
 07h	invalid sending process ID
 08h	invalid data destination
 09h	no more process IDs available
 0Ah	can not relinquish that process ID
 0Bh	message space is full
 0Ch	IPC is not installed


INT 60

60 - Tangram Arbiter - API

Notes

      	Arbiter may use any interrupt from 60h to 66h (parameterized)
identified by string "@ARB_API" immediately following a short jump at
  the interrupt handler address
Arbiter makes a PC disk look like a slow disk over an SNA link to an
  IBM mainframe


INT 60

60 U - INTRSPY/CMDSPY API

Notes

      	INTRSPY will hook the first available interrupt in the range 60h-67h.
The installation check is to
  a) determine that the handler is an IRET instruction
  b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  If INTRSPY is installed, the DWORD immediately after the IRET stores
  its entry point.
INTRSPY is a script-driven debugger included with the book
  _Undocumented_DOS_.

Call INTRSPY entry point with:
AH = function
    00h ???
    01h set current directory (for use in reporting)
ES:DI -> counted string containing directory name (max 79 char)
    02h set name of script file
ES:DI -> counted string containing file name (max 79 chars)
    03h set script arguments
ES:DI -> counted string containing arguments (max 79 chars)
    04h get directory set with function 01h
ES:DI -> 80-byte buffer for directory name
    05h get name of script file
ES:DI -> 80-byte buffer for script filename
    06h get script arguments
ES:DI -> 80-byte buffer for script arguments
    07h get ???
CL = 00h-15h specifies what to get
ES:DI -> WORD to be set with desired value on return
    08h get ???
ES:DI -> WORD to be set with returned value
    09h get ???
ES:DI -> WORD to be set with returned value
    0Bh store code for interrupt handler???
ES:DI -> data
CX = number of bytes
    0Ch ???
ES:DI -> ???
    0Dh get ???
ES:DI -> BYTE to be set with returned value
    0Eh set ??? flag
    0Fh clear ??? flag
    10h ???
Return: AL = 04h or 05h if failed
    11h ???
Return: AL = 05h if failed
    12h get ???
ES:DI -> buffer
Return: CX = number of bytes returned in buffer
    13h ???

Return

        AH = 00h
AL = status
    00h successful
    01h invalid function
    02h ???
    03h ???
    04h ???
    05h ???


INT 60

60 U - PC/370 v4.2 - ???

???

Return

        ???

Notes

      	PC/370 is an IBM 370 emulator by Donald S. Higgins
this is the default interrupt, however the documentation includes
  instructions for patching the system for another interrupt

SeeAlso

    INT 2F AX=7F24    INT DCPC/370


INT 60

60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP

SeeAlso

    INT 61JPI


INT 60

60 - FTP Packet Driver - PC/TCP Packet Driver Specification

Notes

      	The handler for the interrupt will start with a 3-byte jump
  instruction, followed by the ASCIZ string "PKT DRVR" (the
  terminating NUL is significant).
To find the interrupt being used by the driver, an application should
  scan through interrupt vectors 60h to 80h (20h through FFh for
  v1.10+ of the specification) until it finds one with the "PKT DRVR"
  string.
AH values of 80h to FFh have been reserved for user-defined additions.


INT 60

60 u - HP 95LX System Manager - WAIT FOR EVENT

DI = 0100h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to event record (see below)

Return

        event record filled
STACK unchanged

Note

     	this call will timeout after about 500ms

SeeAlso

    INT 15 AX=4DD4    INT 60DI=0101h    INT 61HP 95LX"    INT 62HP 95LX

Table Formats

Event record:
Time change structure:


INT 60

60 u - HP 95LX System Manager - CHECK FOR EVENT

DI = 0101h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to event record (INT 60/DI=0100h)

Return

        event record filled
STACK unchanged

Note

     	this call returns immediately if no event is available

SeeAlso

    INT 60DI=0100


INT 60

60 u - HP 95LX System Manager - "SH_STATUS"

DI = 0102h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES

DI = 0104h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to bridge record (see below)

Return

        ???
STACK unchanged

Table Formats

Bridge record:


INT 60

60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER

DI = 0105h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - YIELD CPU

DI = 0106h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=1000    INT 2F AX=1680


INT 60

60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST

DI = 0107h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - SETUP MENU

DI = 0200h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to menu data (see below)
DWORD	pointer to ???
WORD	number of items on menu???
WORD	???
DWORD	pointer to ???
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 60DI=0201h    INT 60DI=0203h    INT 60DI=0205

Table Formats

Menu data:


INT 60

60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU

DI = 0201h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to menu data (see INT 60/DI=0200h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0200h    INT 60DI=0202h    INT 60DI=0206


INT 60

60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU

DI = 0202h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to menu data (see INT 60/DI=0200h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0200h    INT 60DI=0201h    INT 60DI=0203


INT 60

60 u - HP 95LX System Manager - REMOVE MENU

DI = 0203h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to menu data (see INT 60/DI=0200h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0201h    INT 60DI=0202h    INT 60DI=0204h    INT 60DI=0208


INT 60

60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE

DI = 0204h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to menu data (see INT 60/DI=0200h)
WORD	keystroke
DWORD	pointer to WORD to receive selection number

Return

        buffer for selection number filled with index of selected menu item or
  FFFFh if no final selection yet
STACK unchanged

SeeAlso

    INT 60DI=0200h    INT 60DI=0202h    INT 60DI=0207


INT 60

60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU

DI = 0205h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file menu structure (see below)
DWORD	pointer to edit record (see INT 60/DI=0400h)
DWORD	pointer to wildcard filespec for initial file list
WORD	row???
WORD	column???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0200h    INT 60DI=0206h    INT 60DI=0208

Table Formats

File menu structure:
File list workspace entry:


INT 60

60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU

DI = 0206h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file menu structure (see INT 60/DI=0205h)
DWORD	pointer to edit record (see INT 60/DI=0400h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0205


INT 60

60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE

DI = 0207h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file menu structure (see INT 60/DI=0205h)
DWORD	pointer to edit record (see INT 60/DI=0400h)
WORD	keystroke

Return

        AX = status
    0000h keystroke processed, call INT 60/DI=0206h to refresh menu
    0001h redisplay application area before refreshing menu
    0002h user confirmed selection, filename is in edit record's buffer
    0003h user aborted menu
    FFFBh bad filename
    FFFCh bad directory
    FFFDh bad drive
    FFFEh unknown keystroke
    FFFFh keystroke known but invalid in current context
STACK unchanged

SeeAlso

    INT 60DI=0205h    INT 60DI=0208


INT 60

60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU

DI = 0208h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file menu structure (see INT 60/DI=0205h)
DWORD	pointer to edit record (see INT 60/DI=0400h)

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 60DI=0205h    INT 60DI=0206


INT 60

60 u - HP 95LX System Manager - DISPLAY STRING

DI = 0300h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	starting row (-3 is topmost, 0 is first user line)
WORD	starting column
DWORD	pointer to string
WORD	length of string
WORD	display style: 0000h normal, 0001h reverse video
WORD	"OSTYLE"

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0F03h    INT 60DI=1005


INT 60

60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN

DI = 0301h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	starting row (-3 is topmost, 0 is first user line)
WORD	starting column
WORD	number of rows
WORD	number of columns

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0302h    INT 60DI=1005


INT 60

60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN

DI = 0302h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	starting row???
WORD	starting column???
WORD	height of scroll region???
WORD	width of scroll region???
WORD	number of lines to scroll region???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0301


INT 60

60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"

DI = 0303h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???
WORD	???
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"

DI = 0304h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"

DI = 0305h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"

DI = 0307h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"

DI = 0308h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE

DI = 0309h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	new mode

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE

DI = 030Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SET CURSOR POSITION

DI = 030Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	row (-3 is topmost, 0 is first non-reserved line)
WORD	column

Return

        ???
STACK unchanged

Note

     	cursor is hidden if the specified position is not on the physical
  display

SeeAlso

    INT 10 AH=02    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - "EDIT_INIT"

DI = 0400h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to edit record (see below)
DWORD	pointer to string to be edited
WORD	initial length of string being edited
WORD	maximum length of edited string
WORD	row of edit field
WORD	leftmost column of edit field

Return

        ???
STACK unchanged

Table Formats

Edit record:
Multi-line edit record:


INT 60

60 u - HP 95LX System Manager - EDIT ON TOP LINE

DI = 0401h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to edit record (see INT 60/DI=0400h)
DWORD	pointer to string to edit
WORD	initial length of string being edited
WORD	maximum length of edited string
DWORD	pointer to first line of prompt
WORD	length of first line
DWORD	pointer to second line of prompt
WORD	length of second line

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD

DI = 0402h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to edit record (see INT 60/DI=0400h)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK

DI = 0403h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to edit record (see INT 60/DI=0400h)
WORD	keystroke
DWORD	pointer to WORD buffer for result code

Return

        result code buffer filled with 0001h if editing complete
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_INI"

DI = 0404h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???
WORD	???
WORD	???
DWORD	pointer to ???
WORD	???
WORD	???
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_DIS"

DI = 0405h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_KEY"

DI = 0406h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_FIL"

DI = 0407h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_MARK"

DI = 0408h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_UNMARK"

DI = 0409h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_CUTMARK"

DI = 040Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "MDIT_INS_STR"

DI = 040Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - OPEN FILE

DI = 0500h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see below)
DWORD	pointer to filename
WORD	length of filename
WORD	???
WORD	suppress buffering if nonzero

Return

        AX = status
STACK unchanged

SeeAlso

    INT 60DI=0501h    INT 60DI=0502h    INT 60DI=0508

Table Formats

File state record:


INT 60

60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE

DI = 0501h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)
DWORD	pointer to filename
WORD	length of filename
WORD	???
WORD	suppress buffering if nonzero

Return

        AX = status
STACK unchanged

SeeAlso

    INT 60DI=0500


INT 60

60 u - HP 95LX System Manager - CREATE NEW FILE

DI = 0502h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)
DWORD	pointer to filename
WORD	length of filename
WORD	???
WORD	suppress buffering if nonzero

Return

        AX = status
STACK unchanged

SeeAlso

    INT 60DI=0500h    INT 60DI=0503


INT 60

60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE

DI = 0503h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)
DWORD	pointer to filename
WORD	length of filename
WORD	???
WORD	suppress buffering if nonzero

Return

        AX = status
STACK unchanged

SeeAlso

    INT 60DI=0502


INT 60

60 u - HP 95LX System Manager - READ FROM FILE

DI = 0504h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)
DWORD	pointer to data buffer
WORD	number of bytes to read
DWORD	pointer to WORD in which to return actual bytes read

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0505


INT 60

60 - HP 95LX System Manager - WRITE TO FILE

DI = 0505h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)
DWORD	pointer to data
WORD	length of data

Return

        AX = status
STACK unchanged

SeeAlso

    INT 60DI=0504


INT 60

60 u - HP 95LX System Manager - SET FILE POSITION

DI = 0506h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)
WORD	???
WORD	???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0507


INT 60

60 u - HP 95LX System Manager - GET FILE POSITION

DI = 0507h "M_TELL"
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)
DWORD	pointer to DWORD buffer for file position???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0506


INT 60

60 u - HP 95LX System Manager - CLOSE FILE

DI = 0508h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to file state record (see INT 60/DI=0500h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0500


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"

DI = 0509h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"

DI = 050Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged

Table Formats

Pattern match control block:


INT 60

60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT

DI = 050Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged

Values returned:
 0000h nonexistent
 0001h file
 0002h directory
 0003h character device


INT 60

60 u - HP 95LX System Manager - DELETE FILE

DI = 050Ch "M_DELETE"
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - RENAME FILE

DI = 050Dh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???
DWORD	pointer to ???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"

DI = 050Eh
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"

DI = 050Fh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"

DI = 0510h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY

DI = 0511h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY

DI = 0512h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - GET DEFAULT DRIVE

DI = 0513h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ??? buffer for current drive

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SET DEFAULT DRIVE

DI = 0514h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	new drive

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"

DI = 0515h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"

DI = 0516h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - GET FILE ATTRIBUTES

DI = 0517h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???
DWORD	pointer to ??? buffer for file's attributes???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SET FILE ATTRIBUTES

DI = 0518h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???
WORD	new attributes???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"

DI = 0519h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???
WORD	???
WORD	???
WORD	???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"

DI = 051Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"

DI = 051Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"

DI = 051Ch
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - PROCESS INITIALIZING

DI = 0600h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 60DI=0601h    INT 61HP 95LX


INT 60

60 u - HP 95LX System Manager - PROCESS TERMINATION

DI = 0601h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        never
STACK unchanged

SeeAlso

    INT 21 AH=4C    INT 60DI=0600


INT 60

60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES

DI = 0602h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=101B    INT 60DI=0603


INT 60

60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES

DI = 0603h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=101C    INT 60DI=0602


INT 60

60 u - HP 95LX System Manager - "M_SPAWN"

DI = 0604h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_APPCOUNT"

DI = 0605h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_REBOOT"

DI = 0606h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_SPAWNARG"

DI = 0607h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_REG_APP_NAME"

DI = 0608h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_APP_NAME"

DI = 0609h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        DX:AX -> ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - OPEN CLIPBOARD

DI = 0700h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0701h    INT 60DI=0702

Values for error code:
 0000h	successful
 FFF8h transfer request out of bounds
 FFF9h no such representation
 FFFAh no representation open
 FFFBh a representation is already open
 FFFCh representation already exists
 FFFDh heap allocation failure
 FFFEh clipboard not open
 FFFFh clipboard access denied


INT 60

60 u - HP 95LX System Manager - CLOSE CLIPBOARD

DI = 0701h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0700h    INT 60DI=0702


INT 60

60 u - HP 95LX System Manager - RESET CLIPBOARD

DI = 0702h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0700


INT 60

60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???

DI = 0704h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0705h    INT 60DI=0706h    INT 60DI=0707


INT 60

60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"

DI = 0705h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0704


INT 60

60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"

DI = 0706h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0704h    INT 60DI=0707


INT 60

60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"

DI = 0707h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0704h    INT 60DI=0706


INT 60

60 u - HP 95LX System Manager - WRITE TO CLIPBOARD

DI = 0708h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to data to be written???
WORD	length of data???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0709


INT 60

60 u - HP 95LX System Manager - READ FROM CLIPBOARD

DI = 0709h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???
DWORD	pointer to buffer for data???
WORD	length of buffer???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0708


INT 60

60 u - HP 95LX System Manager - BEEP

DI = 0800h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0801h    INT 60DI=0802h    INT 60DI=0803


INT 60

60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"

DI = 0801h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0800h    INT 60DI=0802h    INT 60DI=0803


INT 60

60 u - HP 95LX System Manager - MAKE A SOUND PATTERN

DI = 0802h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	pattern number (00h-06h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0800h    INT 60DI=0801h    INT 60DI=0803


INT 60

60 u - HP 95LX System Manager - TURN OFF SOUND

DI = 0803h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0800h    INT 60DI=0801h    INT 60DI=0802


INT 60

60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK

DI = 0900h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	size of block in bytes

Return

        AX -> memory block
STACK unchanged

Note

     	System Manager-compliant applications are always small-model (64K code,
  64K data)

SeeAlso

    INT 15 AX=4DD4    INT 60DI=0902h    INT 60DI=0903


INT 60

60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK

DI = 0902h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	offset of memory block???

Return

        ???
STACK unchanged

Note

     	System Manager-compliant applications are always small-model (64K code,
  64K data)

SeeAlso

    INT 60DI=0900h    INT 60DI=0904


INT 60

60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK

DI = 0903h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	size of block in bytes???

Return

        AX -> memory block???
STACK unchanged

SeeAlso

    INT 60DI=0900h    INT 60DI=0904


INT 60

60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK

DI = 0904h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	segment of memory block???

Return

        AX -> ???
STACK unchanged

SeeAlso

    INT 60DI=0902h    INT 60DI=0903


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"

DI = 0B00h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"

DI = 0B01h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"

DI = 0B02h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"

DI = 0B03h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"

DI = 0B04h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to alarm record???
WORD	???

Return

        ???
STACK unchanged

Table Formats

Alarm record:


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"

DI = 0B05h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"

DI = 0B06h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"

DI = 0B07h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP

DI = 0B08h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	timestamp format
bits 1-0:
00 date only
01 time only
10 date and time
11 day and date
bit 4: supply am/pm
bit 5: supply seconds
bit 6: show year
bit 7: four-digit year
WORD	row (-3 is topmost, 0 is first non-reserved line)
WORD	column

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"

DI = 0B09h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0B0Ah    INT 60DI=0B0F

Table Formats

System settings:
Values for keyboard:
0001h Belgium
0002h French Canadian
0004h Denmark
0008h Finland
0010h French
0020h Finland
0040h Italy
0080h Netherlands
0100h Norway
0200h Portugal
0400h Spain
0800h Sweden
1000h Swiss French
2000h Swiss German
4000h United Kingdom
8000h USA


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"

DI = 0B0Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0B09


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"

DI = 0B0Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0B0Ch    INT 60DI=0B0D


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"

DI = 0B0Ch
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0B0Bh    INT 60DI=0B0D


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"

DI = 0B0Dh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0B0Bh    INT 60DI=0B0C


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"

DI = 0B0Eh
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???
WORD	???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        DX:AX -> ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"

DI = 0B0Fh
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        DX:AX -> system settings record (see INT 60/DI=0B09h)
STACK unchanged

SeeAlso

    INT 60DI=0B09


INT 60

60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION

DI = 0B10h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION

DI = 0B11h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SET DATE PARSING RULE

DI = 0B12h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	new parsing rule
01h day-month-year
02h month-day-year
03h year-month-day
04h "DMYO"
05h "MDYO"
OR with 08h to get any year

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0B13


INT 60

60 u - HP 95LX System Manager - SET TIME PARSING RULE

DI = 0B13h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	new parsing rule
01h HH:MM:SS (am/pm)
02h HH:MM:SS (24hr)
03h HHMM:SS (24hr)
04h HH:MM:SS.hh (24hr)
05h HH:MM (am/pm)
06h HH:MM (24hr)
07h HHMM (24hr)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0B12


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"

DI = 0B14h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"

DI = 0B15h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - OPEN PRINTER

DI = 0C00h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0C01h    INT 60DI=0C02h    INT 60DI=0C03


INT 60

60 u - HP 95LX System Manager - CLOSE PRINTER

DI = 0C01h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

Note

     	relinquishes control of printer

SeeAlso

    INT 60DI=0C00


INT 60

60 u - HP 95LX System Manager - WRITE TO PRINTER

DI = 0C02h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to data to be written
WORD	length of data

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0C00


INT 60

60 u - HP 95LX System Manager - INITIALIZE PRINTER

DI = 0C03h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0C00


INT 60

60 u - HP 95LX System Manager - "M_TRANS_PRINTER"

DI = 0C04h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_FALL_PRINTER"

DI = 0C05h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"

DI = 0E00h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E01h    INT 60DI=0E02

Values for error code:
 0000h	successful
 FFF1h "E_BUSY"
 FFF2h timeout
 FFF3h framing error
 FFF4h parity error
 FFF5h overrun error
 FFF6h "E_EMPTY"
 FFF7h "E_CONECT"
 FFF8h not open
 FFF9h out of memory
 FFFAh buffer overflow
 FFFBh "E_NOFIT"
 FFFCh unsupported
 FFFDh "E_IVOPR"
 FFFEh "E_IVCHN"
 FFFFh "E_REOPEN"


INT 60

60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL

DI = 0E01h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to WORD buffer for comm channel handle
WORD	communications line number (01h-04h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E00h    INT 60DI=0E02


INT 60

60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL

DI = 0E02h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	comm channel handle

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E00h    INT 60DI=0E01


INT 60

60 u - HP 95LX System Manager - "M_COMM_GETMDM"

DI = 0E03h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_ANSWER"

DI = 0E04h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_DIAL"

DI = 0E05h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL

DI = 0E06h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	comm channel handle
WORD	reset options
bit 0: reset line
bit 1: flush transmit buffer
bit 2: flush receive buffer
bit 3: reset modem
bit 4: reset receiver's ^S state
bit 5: reset transmitter's ^S state

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_HANGUP"

DI = 0E07h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL

DI = 0E08h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	comm channel handle
DWORD	pointer to data to be sent
WORD	option flags
bit 0: send partial buffer
bit 1: turn on receiver after sending
DWORD	pointer to WORD containing length of data to be sent

Return

        length WORD updated to contain number of bytes actually sent???
STACK unchanged

SeeAlso

    INT 60DI=0E09h    INT 60DI=0E0B


INT 60

60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE

DI = 0E09h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ??? WORD
DWORD	pointer to ??? WORD

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E0A


INT 60

60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE

DI = 0E0Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	comm channel handle
DWORD	pointer to WORD to get receive buffer size
DWORD	pointer to WORD to get free bytes in receive buffer

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E09h    INT 60DI=0E0B


INT 60

60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL

DI = 0E0Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	comm channel handle
DWORD	pointer to data buffer
DWORD	pointer to WORD (input) length of data buffer
(output) number of bytes received

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E08h    INT 60DI=0E0A


INT 60

60 u - HP 95LX System Manager - "M_COMM_HAZCMD"

DI = 0E0Ch
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_COMAND"

DI = 0E0Dh
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_BREAK"

DI = 0E0Eh
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_FRCXON"

DI = 0E0Fh
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_FRCXOF"

DI = 0E10h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_SETDTR"

DI = 0E11h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_XMITNG"

DI = 0E12h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_STATUS"

DI = 0E13h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS

DI = 0E14h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	comm channel handle
DWORD	pointer to comm settings (see below)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E15

Table Formats

Comm settings:


INT 60

60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS

DI = 0E15h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to buffer for settings (see INT 60/DI=0E14h)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0E14


INT 60

60 u - HP 95LX System Manager - "M_COMM_CNFGUR"

DI = 0E16h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
WORD	???
WORD	???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COMM_QRYERR"

DI = 0E17h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - "M_ERRMSG"

DI = 0F00h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???
DWORD	pointer to ???
WORD	???
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX

DI = 0F01h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ASCIZ title string

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "SHOWNAME"

DI = 0F02h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX

DI = 0F03h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to first line of message
WORD	length of first line
DWORD	pointer to second line of message
WORD	length of second line

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0300h    INT 60DI=0F04h    INT 60DI=0F09


INT 60

60 u - HP 95LX System Manager - REMOVE MESSAGE BOX

DI = 0F04h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0F03h    INT 60DI=0F09


INT 60

60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"

DI = 0F05h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        DX:AX -> ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"

DI = 0F06h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        DX:AX -> ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"

DI = 0F07h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        DX:AX -> ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"

DI = 0F08h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX

DI = 0F09h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to first line of message
WORD	length of first line
DWORD	pointer to second line of message
WORD	length of second line
DWORD	pointer to third line of message
WORD	length of third line

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0F03h    INT 60DI=0F04


INT 60

60 u - HP 95LX System Manager - DISABLE MACROS

DI = 0F0Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0F0B


INT 60

60 u - HP 95LX System Manager - ENABLE MACROS

DI = 0F0Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 60DI=0F0A


INT 60

60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"

DI = 0F0Ch
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_FORM_FT"

DI = 0F0Dh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        DX:AX -> ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_RAM_IV_INFO"

DI = 0F0Eh
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        DX:AX -> ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE

DI = 1005h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged

SeeAlso

    INT 10 AH=FF    INT 60DI=0300h    INT 60DI=0301


INT 60

60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"

DI = 1200h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"

DI = 1201h
STACK:	2 WORDs unused dummies (for calls from high level languages)
WORD	???

Return

        DX:AX -> ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"

DI = 1202h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        DX:AX -> ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "INIT_SYSGMR_RSRCS"

DI = 1203h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM

DI = 1300h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - DISPLAY HELP

DI = 1301h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_HELP_KEY"

DI = 1302h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_HELP_TERM"

DI = 1303h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - "M_ColInit"

DI = 1400h
STACK:	2 WORDs unused dummies (for calls from high level languages)

Return

        AX = ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_ColCpStr"

DI = 1401h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_ColLicsStr"

DI = 1402h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_ColLicsChar"

DI = 1403h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_ColToLower"

DI = 1404h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_ColCpSearch"

DI = 1405h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???
DWORD	pointer to ???
WORD	???
WORD	???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "M_ColToUpper"

DI = 1406h
STACK:	2 WORDs unused dummies (for calls from high level languages)
DWORD	pointer to ???
WORD	???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - "GrDispInit"

DI = 1500h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispClear"

DI = 1501h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispDot"

DI = 1502h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispDraw"

DI = 1503h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispFill"

DI = 1504h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispRead"

DI = 1505h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispString"

DI = 1506h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispPan"

DI = 1507h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispZoom"

DI = 1508h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispSave"

DI = 1509h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispRestore"

DI = 150Ah
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged


INT 60

60 u - HP 95LX System Manager - "GrDispCorner"

DI = 150Bh
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60

60 u - HP 95LX System Manager - "CP_TO_LICS"

DI = 1604h
STACK:	2 WORDs unused dummies (for calls from high level languages)
???

Return

        ???
STACK unchanged

SeeAlso

    INT 15 AX=4DD4    INT 61HP 95LX"    INT 62HP 95LX


INT 60 AH=00

60 - SYS_PROF.EXE - PROFILER STATUS

AH = 00h

Return

        AX = 0000h    profiling is off
    otherwise profiling is on

Note

     	SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47

SeeAlso

    INT 60 AH=01"SYS_PROF"    02h"SYS_PROF


INT 60 AH=00

60 - MDEBUG - GET STATUS

AH = 00h
DS:SI -> password or a null byte

Return

        AX = return code
    FFFEh password is invalid
    FFFDh display mode is invalid
   else successful
ES = value of the monitor register SE
DI = value of the monitor register OF
CH = monitor color
CL = interpreter color
BH = monitor start line
BL = interpreter start line
AH = makecode of the hotkey
AL = ASCII code of the hotkey
DL = status of special keys (only SHIFT, ALT, CTRL) for the
hotkey (coded as for the keyboard flag at 0040h:0017h)
DH = basic process number for the communication with drivers
process number for the display driver, DH+1 = process
number for the command driver(s)
DS:SI -> MDEBUG identification table

Notes

      	MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer,
  including a memory monitor, an interpreter, and a disassembler
MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  through INT 67; the interrupt handler is preceded by the signature
  "USERINT" and is not chained
if DS:SI points at a null byte, MDEBUG will prompt for a password if
  passwords are active; enough stack space must be provided for an
  INT 10h call (which MDEBUG uses while prompting for the password)

SeeAlso

    INT 60 AH=02"MDEBUG"

Table Formats

MDEBUG identification table:


INT 60 AH=01

60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS

AH = 01h
DS:SI -> password or a null byte

Return

        AX = return code
    FFFEh password is invalid
    FFFDh display mode is invalid
   else successful
ES:DI point to the help registers of MDEBUG
       ES:DI-02h  -> R0 (WORD)
       ES:DI	  -> R1 (WORD)
       ES:DI+02h  -> R2 (WORD)
       ES:DI+04h  -> R3 (WORD)
       ...
       ES:DI+0Eh  -> R8 (WORD)


INT 60 AH=01

60 - SYS_PROF.EXE - TURN PROFILING OFF

AH = 01h

Note

     	SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47

SeeAlso

    INT 60 AH=00"SYS_PROF"    02h"SYS_PROF


INT 60 AX=01FF

60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO

AX = 01FFh
BX = handle returned by function 02h

Return

        CF set on error
    DH = error code (see below)
CF clear if successful
    BX = version
    CH = network interface class (see below)
    DX = interface type (see below)
    CL = number
    DS:SI -> name
    AL = driver functions supported
01h basic
02h basic and extended
05h basic and high-performance
06h basic, high-performance, and extended
FFh not installed

Note

     	the handle in BX is optional for drivers written to v1.07 or later of
  the packet driver specification

Values for error code:
 01h "BAD_HANDLE"	invalid handle number
 02h "NO_CLASS"	no interfaces of the specified class found
 03h "NO_TYPE"	no interfaces of the specified type found
 04h "NO_NUMBER"	no interfaces of the specified number found
 05h "BAD_TYPE"	bad packet type
 06h "NO_MULTICAST"	interface does not support multicast messages
 07h "CANT_TERMINATE"	this packet driver cannot terminate
 08h "BAD_MODE"	invalid receiver mode
 09h "NO_SPACE"	insufficient space
 0Ah "TYPE_INUSE"	type accessed but never released
 0Bh "BAD_COMMAND"	bad command
 0Ch "CANT_SEND"	packet could not be sent
 0Dh "CANT_SET"	hardware address could not be changed
 0Eh "BAD_ADDRESS"	hardware address has a bad length or format
 0Fh "CANT_RESET"	could not reset interface

Values for Network Interface classes/types:
    Class 01h  Ethernet/IEEE 802.3
01h 3COM 3C500/3C501
02h 3COM 3C505
03h MICOM-Interlan NI5010
04h BICC Data Networks 4110
05h BICC Data Networks 4117
06h MICOM-Interlan NP600
08h Ungermann-Bass PC-NIC
09h Univation NC-516
0Ah TRW PC-2000
0Bh MICOM-Interlan NI5210
0Ch 3COM 3C503
0Dh 3COM 3C523
0Eh Western Digital WD8003
0Fh Spider Systems S4
10h Torus Frame Level
11h 10Net Communications
12h Gateway PC-bus
13h Gateway AT-bus
14h Gateway MCA-bus
15h IMC PCnic
16h IMC PCnic II
17h IMC PCnic 8-bit
18h Tigan Communications
19h Micromatic Research
1Ah Clarkson "Multiplexor"
1Bh D-Link 8-bit
1Ch D-Link 16-bit
1Dh D-Link PS/2
1Eh Research Machines 8
1Fh Research Machines 16
20h Research Machines MCA
21h Radix Microsystems EXM1 16-bit
22h Interlan Ni9210
23h Interlan Ni6510
24h Vestra LANMASTER 16-bit
25h Vestra LANMASTER 8-bit
26h Allied Telesis PC/XT/AT
27h Allied Telesis NEC PC-98
28h Allied Telesis Fujitsu FMR
29h Ungermann-Bass NIC/PS2
2Ah Tiara LANCard/E AT
2Bh Tiara LANCard/E MC
2Ch Tiara LANCard/E TP
2Dh Spider Communications SpiderComm 8
2Eh Spider Communications SpiderComm 16
2Fh AT&T Starlan NAU
30h AT&T Starlan-10 NAU
31h AT&T Ethernet NAU
32h Intel smart card
33h Xircom Packet Adapter
34h Aquila Ethernet
35h Novell NE1000
36h Novell NE2000
37h SMC PC-510
38h AT&T Fiber NAU
39h NDIS to Packet Driver adapter
3Ah Racal-InterLan ES3210
3Bh General Systems ISDN simulated Ethernet
3Ch Hewlett-Packard
3Dh IMC EtherNic-8
3Eh IMC EtherNic-16
3Fh IMC EtherNic-MCA
40h NetWorth EtherNext
41h Dataco Scanet
42h DEC DEPCA
43h C-Net
44h Gandalf LANLine
45h Apricot built-in
46h David Systems Ether-T
47h ODI to Packet Driver adapter
48h AMD Am21110-16
49h Intel ICD Network controller family
4Ah Intel ICD PCL2
4Bh Intel ICD PCL2A
4Ch AT&T LANPacer
4Dh AT&T LANPacer+
4Eh AT&T EVB
4Fh AT&T StarStation
50h SLIP simulated ethernet
51h Racal-Interlan NIA310
52h Racal-Interlan NISE
53h Racal-Interlan NISE30
54h Racal-Interlan NI6610
55h Ethernet over IP/UDP
    Class 02h  ProNET-10
01h Proteon p1300
02h Proteon p1800
    Class 03h  IEEE 802.5/ProNet-4
01h IBM Token-Ring Adapter
02h Proteon p1340
03h Proteon p1344
04h Gateway PC-bus
05h Gateway AT-bus
06h Gateway MCA-bus
39h NDIS to Packet Driver adapter
47h ODI to Packet Driver adapter
    Class 04h  Omninet
    Class 05h  Appletalk
01h ATALK.SYS adapter
    Class 06h  Serial Line
01h Clarkson 8250-SLIP
02h Clarkson "Multiplexor"
    Class 07h  StarLAN (subsumed by Ethernet class)
    Class 08h  ARCnet
01h Datapoint RIM
    Class 09h  AX.25
01h Ottawa PI card
    Class 0Ah  KISS
    Class 0Bh  IEEE 802.3 with 802.2 headers
types same as for class 01h
    Class 0Ch  FDDI with 802.2 headers
01h Western Digital
02h Frontier Technology
    Class 0Dh  Internet X.25
01h Western Digital
02h Frontier Technology
    Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
01h NT LANSTAR/8
02h NT LANSTAR/MC
    Class 0Fh  SLFP (MIT serial specification)
01h MERIT
    Class 10h  PPP (Point-to-Point Protocol)

Note

      class and type numbers are cleared through FTP Software


INT 60 AH=02

60 - MDEBUG - SET STATUS

AH = 02h
DS:SI -> password or a null byte
ES = new value for the register SE
DI = new value for the register OF
CH = new monitor color if nonzero
CL = new interpreter color if nonzero
BH = new monitor start line if nonzero
BL = new interpreter start line if nonzero
AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
    if nonzero
DH = if nonzero, new basic process number for communication with the
    drivers (DH = multiplex number for the display driver,
    DH+1 = multiplex number for the command driver or drivers)

Return

        AX = return code
    FFFFh call not allowed
    FFFEh password is invalid
    FFFDh display mode is invalid
    0000h successful, status changed
   else AL = error code
    bit 0 invalid monitor start line
1 invalid interpreter start line
2 invalid hotkey
3 invalid process number
      4-7 reserved

Note

     	the values of the registers SE and OF are always changed, the other
  values are only changed if they are valid

SeeAlso

    INT 60 AH=00"MDEBUG"


INT 60 AH=02

60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE

AH = 02h
AL = interface class
BX = interface type
DL = interface number
DS:SI -> type
CX = length of type (0000h for all packets)
ES:DI -> receiver

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful
    AX = handle

SeeAlso

    INT 60 AH=03"FTP"

Receiver is called with:
AX = subfunction
    00h get packet buffer
DX = lookahead length (v1.10+)
DS:SI -> lookahead buffer if DX nonzero (v1.10+)
DI = error flags (class dependent) (v1.10+)
Return: ES:DI -> packet buffer
0000h:0000h means throw away packet
CX = size of buffer (v1.10+), may be smaller than
incoming data
    01h copy completed
DS:SI -> buffer
CX = bytes actually copied (v1.10+)
BX = handle
CX = buffer length
when a packet is received


INT 60 AH=02

60 - SYS_PROF.EXE - TURN PROFILING ON

AH = 02h

Note

     	SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47

SeeAlso

    INT 60 AH=00"SYS_PROF"    01h"SYS_PROF


INT 60 AH=03

60 - MDEBUG - POP UP

AH = 03h
DS:SI -> password or a null byte
ES -> new value for the register SE
DI -> new value for the register OF

Return

        AX = return code
    FFFFh call not allowed
    FFFEh password is invalid
    FFFDh display mode is invalid
   else successful

SeeAlso

    INT 60 AH=04"MDEBUG"


INT 60 AH=03

60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE

AH = 03h
BX = handle

Return

        CF set on error
   DH = error code (see AX=01FFh)
CF clear if successful

SeeAlso

    INT 60 AH=02"FTP"


INT 60 AH=03

60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE

AH = 03h

Return

        ES:BX -> profiling table

Note

     	SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47

SeeAlso

    INT 60 AH=04"SYS_PROF"


INT 60 AH=04

60 - FTP Packet Driver - BASIC FUNC - SEND PACKET

AH = 04h
DS:SI -> buffer
CX = length

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful

Note

     	the buffer may be modified immediately upon return from this call

SeeAlso

    INT 60 AH=0B


INT 60 AH=04

60 - MDEBUG - POP UP

AH = 04h
DS:SI -> password or a null byte

Return

        AX = return code
    FFFFh call not allowed
    FFFEh password is invalid
    FFFDh display mode is invalid
   else successful

SeeAlso

    INT 60 AH=03"MDEBUG"    INT 60 AH=07"MDEBUG"


INT 60 AH=04

60 - SYS_PROF.EXE - CLEAR PROFILING TABLE

AH = 04h

Note

     	SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47

SeeAlso

    INT 60 AH=03"SYS_PROF"


INT 60 AH=05

60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE

AH = 05h
BX = handle (optional for v1.10+)

Return

        CF set on error
   DH = error code (see AX=01FFh)
CF clear if successful


INT 60 AH=05

60 - MDEBUG - GET AND SET MDEBUG FLAGS

AH = 05h
DS:SI -> password or a null byte
BL = new value for the semaphor of MDEBUG
     00h  enable popup of MDEBUG
     else disable popup of MDEBUG

Return

        AX = return code
    FFFEh password is invalid
    FFFDh display mode is invalid
   else successful
BL = old value of the semapor of MDEBUG
BH = old value of the INT 08h semaphor
    (this semaphor is always reset after this function)


INT 60 AH=06

60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS

AH = 06h
BX = handle (optional for v1.10+)
ES:DI -> buffer
CX = length

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful
    CX = length

Note

     	copies the local net address associated with the handle into the buffer


INT 60 AH=06

60 - MDEBUG - GET PASSWORD STATUS

AH = 06h

Return

        AL = status
    00h password inactive
    01h password active


INT 60 AH=07

60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE

AH = 07h
BX = handle (optional for v1.10+)

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful


INT 60 AH=07

60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG

AH = 07h

Return

        AL = active part for the next popup session of MDEBUG:
    bit 0: the next popup session will start in the interpreter rather
than in the monitor
    bit 1: the next popup session will sart in the online-help

SeeAlso

    INT 60 AH=03"MDEBUG"    INT 60 AH=04"MDEBUG"


INT 60 AH=08

60 - MDEBUG - UNUSED

AH = 08h-FFh

Return

        AX = FFFCh


INT 60 AH=0A

60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS

AH = 0Ah

Return

        CF set on error
    DH = error code (0Bh) (see AX=01FFh)
CF clear if successful
    ES:DI -> parameter table (see below)

Table Formats

Parameter table:


INT 60 AH=0B

60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET

AH = 0Bh
DS:SI -> buffer
CX = length of buffer
ES:DI -> FAR function to call when buffer becomes available

Return

        CF set on error
    DH = error code (0Bh,0Ch) (see AX=01FFh)
CF clear if successful

Notes

      	unlike function 04h, the buffer is not available for modification as
  soon as the call returns; the buffer may be queued by the driver and
  not processed until later
this function has been dropped from v1.10+ of the specification and
  replaced by function 0Ch

SeeAlso

    INT 60 AH=04"Packet Driver"    INT 60 AH=0C"Packet Driver"

Completion function called with:
AX = result
    00h copy OK
    nonzero error
ES:DI -> buffer passed to INT 60/AH=0Bh call


INT 60 AH=0C

60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET

AH = 0Ch
ES:DI -> pointer to IOCB

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful

SeeAlso

    INT 60 AH=04"Packet Driver"    INT 60 AH=0B"Packet Driver"

Table Formats

IOCB:
Completion function called with:
ES:DI -> IOCB passed to INT 60/AH=0Ch


INT 60 AH=0C

60 - Banyan VINES, 3com - GET STATION ADDRESS

AH = 0Ch

Return

        AL = status
    00h successful
ES:SI -> 6-byte station address
    02h semaphore service is unavailable


INT 60 AH=0D

60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE

AH = 0Dh
ES:DI -> IOCB

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful

SeeAlso

    INT 60 AH=0C"Packet Driver"


INT 60 AH=11

60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT

AH = 11h
AL = drive number or 0
DX = number of seconds to wait
ES:SI = Ethernet address or 0
DS:BX -> 31-byte ASCIZ semaphore name

Return

        AL = status
    00h successful
    01h timeout
    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 for this CPU

SeeAlso

    INT 60 AH=12    INT 60 AH=13


INT 60 AH=12

60 - 3com, 10NET, Banyan VINES - LOCK

AH = 12h
AL = drive number or 00h
ES:SI = Ethernet address or 0000h:0000h
DS:BX -> 31-byte ASCIZ semaphore name

Return

        AL = status (see also AH=11h)
    01h semaphore currently locked by another PC

Note

     	unlike function 11h, this function returns immediately

SeeAlso

    INT 60 AH=11    INT 60 AH=13


INT 60 AH=13

60 - 3com, 10NET, Banyan VINES - UNLOCK

AH = 13h
AL = drive number or 00h
ES:SI = Ethernet address or 0000h:0000h
DS:BX -> 31-byte ASCIZ semaphore name

Return

        AL = status (see also AH=11h)
    1 semaphore not locked

SeeAlso

    INT 60 AH=11    INT 60 AH=12


INT 60 AH=14

60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE

AH = 14h
BX = handle (optional for v1.10+)
CX = mode
    01h turn off receiver
    02h receive only packets sent to this interface
    03h mode 2 plus broadcast packets
    04h mode 3 plus limited multicast packets
    05h mode 3 plus all multicast packets
    06h all packets
    07h raw mode for serial line only (v1.10+)

Return

        CF set on error
   DH = error code (01h,08h) (see AX=01FFh)
CF clear if successful

SeeAlso

    INT 60 AH=15


INT 60 AH=15

60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE

AH = 15h
BX = handle (optional for v1.10+)

Return

        CF set on error
    DH = error code (01h) (see AX=01FFh)
CF clear if successful
    AX = mode

SeeAlso

    INT 60 AH=14


INT 60 AH=16

60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST

AH = 16h
ES:DI -> multicast list
CX = length of list in bytes

Return

        CF set on error
    DH = error code (06h,09h,0Eh) (see AX=01FFh)
CF clear if successful

SeeAlso

    INT 60 AH=17


INT 60 AH=17

60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST

AH = 17h

Return

        CF set on error
    DH = error code (06h,09h) (see AX=01FFh)
CF clear if successful
    ES:DI -> multicast addresses (do not modify)
    CX = bytes of multicast addresses currently in use

SeeAlso

    INT 60 AH=16


INT 60 AH=18

60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS

AH = 18h
BX = handle (optional for v1.10+)

Return

        CF set on error
    DH = error code (01h) (see AX=01FFh)
CF clear if successful
    DS:SI -> statistics (see below)

Table Formats

Statistics:


INT 60 AH=19

60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS

AH = 19h
ES:DI -> address
CX = length of address

Return

        CF set on error
    DH = error code (0Dh,0Eh) (see AX=01FFh)
CF clear if successful
    CX = length


INT 60 AH=1A

60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES

AH = 1Ah
DS:SI -> buffer
CX = length of buffer

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful

SeeAlso

    INT 60 AH=1C


INT 60 AH=1B

60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED

AH = 1Bh

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful

SeeAlso

    INT 60 AH=1C


INT 60 AH=1C

60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED

AH = 1Ch
DS:SI -> buffer
CX = length of buffer
DX = timeout in clock ticks

Return

        CF set on error
    DH = error code (see AX=01FFh)
CF clear if successful
    CX = number of bytes transferred to buffer

SeeAlso

    INT 60 AH=1A    INT 60 AH=1B


INT 60 AH=AD

60 - AccessDOS - API

AH = ADh
AL = function
    E1h ???
Return: AX = ???
    E2h get configuration
Return: BX:AX -> configuration data

Notes

      	AccessDOS is a public domain TSR developed at The Trace Research and
  Development Center which provides extensions for keyboard, mouse,
  and sound access by the visually, hearing, or motor-control
  impaired.
INT 60 is the default vector; AccessDOS will use the first 0000h:0000h
  vector in the range 60h through 66h.


INT 61

61 - reserved for user interrupt


INT 61

61 - Atari Portfolio - EXTENDED BIOS

   provides subfunctions such as turning off the machine, accessing internal
   variables, and mapping memory cards

SeeAlso

    INT 60Atari


INT 61

61 - HP 95LX System Manager - LOAD DS

SeeAlso

    INT 0FHP 95LX"    INT 60HP 95LX


INT 61

61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP

SeeAlso

    INT 61JPI


INT 61

61 - Adaptec and OMTI controllers - DRIVE 0 DATA

Note

     	this vector stores the second four bytes of the parameter table for
  hard disk 0

SeeAlso

    INT 60Adaptec"    INT 62Adaptec"    INT 63Adaptec


INT 61

61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE

BX:DX -> control block

SeeAlso

    INT 67Sangoma


INT 61

61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE

Note

     	the virus copies the original INT 21h vector into INT 61h

SeeAlso

    INT 21    INT 60VIRUS"    INT 6BVIRUS


INT 61

61 - FTP Software PC/TCP - TCP/IP TSR System Call interface

AH = system call number (see also entries below)
    01h "pkt_alloc"
    02h "pkt_free"

Return

        CF clear if successful
CF set on error
    AL = basic error (see below)
    AH = suberror number

Notes

      	the installation check consists of testing for the signature "TCPTSR"
  three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
  interrupt from 20h through E0h

BUG

    	the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  greater than 54h in AH may crash the system.	Other kernels may have
  this bug as well.

SeeAlso

    INT 61 AH=00"PC/TCP"    INT 61 AH=2A    INT 61 AH=54

Values for error code:
 00h "NET_NOERR" successful
 01h "NET_ERR_INUSE" protocol or socket already in use
 02h "NET_DOS_ERR" MSDOS error (returned as suberror code in AH)
 03h "NET_ERR_NOMEM" out of memory
 04h "NET_ERR_NOTNETCONN" not a network descriptor
 05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
 06h "NET_ERR_BADPKT" illegal or corrupted packet
 07h "NET_ERR_NOHOST" no host bound to specified connection
 08h "NET_ERR_CANTOPEN" unable to open file
 09h "NET_ERR_NET_UNREACHABLE" network is unreachable
 0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable
 0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
 0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
 0Dh "NET_ERR_TIMEOUT" operation timed out
 0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
 0Fh "NET_ERR_NOSERVERS" no name servers configured
 10h "NET_ERR_SERVER_ERR" bad reply from name server
 11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address struc
is zero
 12h "NET_ERR_BADARG" invalid argument
 13h "NET_ERR_EOF" foreign host closed its end of connection
 14h "NET_ERR_RESET" connection has been reset
 15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
with no data available
 16h "NET_ERR_UNBOUND" insufficient resources to do operation
 17h "NET_ERR_NODESC" could not allocate network descriptor
 18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
 19h "NET_ERR_CANTBROADCAST" unable to broadcast
 1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
 1Bh kernel busy, try again later


INT 61 AH=00

61 U - PC/TCP kernel v2.05 - GET DEBUG INFORMATION

AH = 00h
DS:SI -> 216-byte buffer for network debugging information (see below)

Return

        CF clear
AX = 0000h
buffer filled

SeeAlso

    INT 61PC/TCP"    INT 61 AH=2A"PC/TCP"

Table Formats

Network debugging information:


INT 61 AX=0000

61 - OPTIMA 1024 VGA-Sync - ZOOM DISPLAY

AX = 0000h
BX = zoom factor (0-7)

Notes

      	zooms the display based on the given zoom factor
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0001"OPTIMA"    INT 61 AX=0002"OPTIMA"

SeeAlso

    INT 61 AX=0005"OPTIMA"


INT 61 AX=0001

61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET

AX = 0001h
DS:DX -> communications control block (function 0001h)

Return

        AX = status
    0000h  successful
    0001h  service not installed
    0002h  invalid service ID
    0098h  resource already in use
    009Eh  address family does not exist
    009Fh  socket type does not exist
    00A0h  protocol does not exist
    00A1h  no more sockets available
    00A2h  no more buffer space available

Note

     	BANYAN can use any interrupt from 60h through 66h.  The Banyan
  interrupt handler is identified by the string "BANV" in the four
  bytes immediately preceding the interrupt handler

Table Formats

Control block:
Argument block:
IPC port:


INT 61 AX=0001

61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT

AX = 0001h
DS:DX -> communications control block (function 0002h)

Return

        AX = status
    0000h  successful
    0001h  service not installed
    0002h  invalid service ID
    0003h-000Ah reserved for BANV interface errors
    0097h  invalid socket identifier
    009Bh  destination node unreachable
    009Ch  message overflow
    009Dh  destination socket nonexistent
    00A2h  no more buffer space
    00A3h  timeout
    00B1h  resource disconnect

Note

     	BANYAN can use any interrupt from 60h through 66h.  The Banyan
  interrupt handler is identified by the string "BANV" in the four
  bytes immediately preceding the interrupt handler

Table Formats

Control block:
Argument block:
Buffer descriptor:
Socket address for unreliable datagrams:


INT 61 AX=0001

61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION

AX = 0001h
DS:DX -> communications control block (function 0003h)

Return

        AX = status
    0000h  successful
    0001h  service not installed
    0002h  invalid service ID
    0003h-000Ah reserved for BANV interface errors
    0097h  invalid socket identifier
    00A2h  no more buffer space
    00A3h  timeout

Note

     	BANYAN can use any interrupt from 60h through 66h.  The Banyan
  interrupt handler is identified by the string "BANV" in the four
  bytes immediately preceding the interrupt handler

Table Formats

Control block:
Argument block:
Buffer descriptor:


INT 61 AX=0001

61 - Banyan VINES - "Soclose" - CLOSE A SOCKET

AX = 0001h
DS:DX -> communications control block (function 0004h)

Return

        AX = status
    0000h  successful
    0001h  service not installed
    0002h  invalid service ID
    0003h-000Ah reserved for BANV interface errors
    0097h  invalid socket identifier

Note

     	BANYAN can use any interrupt from 60h through 66h.  The Banyan
  interrupt handler is identified by the string "BANV" in the four
  bytes immediately preceding the interrupt handler

Table Formats

Control block:
Argument block:


INT 61 AX=0001

61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION

AX = 0001h
DS:DX -> communications control block (function 0005h)

Return

        AX = status
    0000h  successful
    0001h  service not installed
    0002h  invalid service ID
    0003h-000Ah reserved for BANV interface errors
    00A2h  no more buffer space available
    00A3h  timeout event

Notes

      	BANYAN can use any interrupt from 60h through 66h.  The Banyan
  interrupt handler is identified by the string "BANV" in the four
  bytes immediately preceding the interrupt handler
returns results for all asynchronous operations invoked from the
  data segment used for this call

Table Formats

Control block:
Argument block:


INT 61 AX=0001

61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE

AX = 0001h
DS:DX -> communications control block (function 0008h)

Return

        AX = status
    0000h  successful
    00A2h  no more buffer space available

Note

     	BANYAN can use any interrupt from 60h through 66h (default 61h).  The
  Banyan interrupt handler is identified by the string "BANV" in the
  four bytes immediately preceding the interrupt handler

Table Formats

Control block:


INT 61 AX=0001

61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION

AX = 0001h
DS:DX -> communications control block (function 000Bh)

Return

        AX = status
    0000h  successful
    0001h  service not installed
    0002h  invalid service ID
    0003h-000Ah reserved for BANV interface errors
    00A2h  no more buffer space available

Notes

      	BANYAN can use any interrupt from 60h through 66h.  The Banyan
  interrupt handler is identified by the string "BANV" in the four
  bytes immediately preceding the interrupt handler
FAR user function is invoked with SS,DS, and ES set to segment of
  control block, and with the stack containing
DWORD	return address
WORD	argument pointer (sosend or sorec argument block)
WORD	error return code
0000h argument pointer is valid
00A3h timeout

Table Formats

Control block:
Argument block:


INT 61 AX=0001

61 - OPTIMA 1024 VGA-Sync - CENTER ZOOM WINDOW

AX = 0001h
BX = X coordinate to center
CX = Y coordinate to center

Notes

      	Positions the zoom window such that the specified window-relative
  coordinates appear as close as possible to the center of the
  display.  Useful for scrolling and panning.
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"    INT 61 AX=0002"OPTIMA"

SeeAlso

    INT 61 AX=0005"OPTIMA"


INT 61 AX=0002

61 - Banyan VINES - 3270 INTERFACE

AX = 0002h
BH = function
    00h "pi2reset"  reset 3270/SNA or 3270/BSC driver
    02h "pi2bsc" (3270/BSC only)
    03h	"pi2get"    get information stored in 3270 resident driver
    04h "pi2put"    store information in 3270 resident driver
    05h "pi2gcur"   get current screen position
    07h "pi2sdat"   send data keystroke
    08h "pi2scom"   send command keystroke
    0Ah "pi2field"  get field info for arbitrary screen positions
    0Fh "pi2stat"   get logical unit/device status
    12h "pi2nlus"   determine logical unit/device assignment
    13h "pi2gate"   specifies comm port address to gateway service
    14h "pi2attach" attach a logical unit/device
    15h "pi2sdev"   save logical unit/device info in resident driver
    (not supported in >3.0)
    16h "pi2gdev"   get device information (not supported in >3.0)
    17h "pi2luinfo" get info about specific logical unit/device
    18h "pi2gerr"   get finer error detail
    19h "pi2dhold"  (3270/SNA only)  holds a 3270 device
    1Ah "pi2shut"   release memory-resident module
    1Ch "pi2sprof"  save profile info in res driver (not supp in >3.0)
    1Dh "pi2gprof"  get prevsly stored profile info (not supp in >3.0)
DS:CX -> argument block (except BH=00h,1Ah)

Return

        AX = status
    0000h successful
    000Bh invalid parameter or data does not fit data area
    000Ch another code path currently active in resident driver
    000Dh operation currently not allowed
    0032h encountered connection disconnect error
    0033h encountered "sosend" completion error
    0034h encountered "sosend" communication error
    0035h attach request refused.  extended error info via "pi2gerr":
01h resource unavailable
02h invalid type
03h version mismatch
04h invalid logical unit number
05h error during ARL processing
06h no access for user
    0071h encountered "sosock" error
    0072h encountered unrecognizable error
    0073h encountered "sowait" error (extended info via "pi2gerr")
    0074h encountered invalid type-of-request on "sowait"
    0075h encountered "sorec" error (extended info via "pi2gerr")
    0076h encountered "sorec" completion error (ext info via "pi2gerr")
    0077h encountered connection request
    0078h encountered unrecognizable data
    0079h encountered unknown connection ID (ext info via "pi2gerr")

Notes

      	Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  which is loaded first.  The other interface will use AX=000Ah
Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  or 3270/BSC resident driver, which must be reloaded by the user

Table Formats

Argument block for BH=03h,04h:
Argument block for BH=05h:
Argument block for BH=07h:
Argument block for BH=08h:
Argument block for BH=0Ah:
Argument block for BH=0Fh:
Argument block for BH=12h:
Argument block for BH=13h:
Argument block for BH=14h:
Argument block for BH=16h:
Argument block for BH=17h:
Argument block for BH=18h:
Argument block for BH=19h:
Argument block for BH=1Ch,1Dh:
Device block, argument block for BH=15h:
Information block:
Status line:
Profile block:


INT 61 AX=0002

61 - OPTIMA 1024 VGA-Sync - END ZOOM

AX = 0002h

Note

     	switches off zoom and returns window to its original state
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"


INT 61 AX=0003

61 - Banyan VINES - ASYNCHRONOUS TERMINAL EMULATION

AX = 0003h
DS:BX -> argument block with function number (see below)

Return

        AX = status
    0000h successful
    000Bh invalid session ID
    000Ch session not active
    000Dh invalid request type
    000Eh invalid parameters
    000Fh out of heap space
    0010h timeout on send
    0011h Banyan communications error
    0012h session not waiting for host
    0013h session is active
    0014h duplicate suspend session request
    0015h no session suspended
    0016h ring data buffer full
    0017h printer error encountered
    0018h Banyan communications error
    0019h unable to make connection
    001Ah no ring buffer specified at startup
    001Bh service is down
    001Ch invalid service name
    001Dh service is closed
    001Eh invalid connection name
    001Fh max session limit reached for service
    0020h access rights list for connection/dialout does not include
this user
    0021h service not responding
    0022h missing telephone number

Table Formats

Argument block:
Terminal status area:


INT 61 AX=0003

61 - OPTIMA 1024 VGA-Sync - REPORT ZOOM FACTOR

AX = 0003h

Return

        AX = zoom factor

Note

     	returns the current zoom factor
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"    INT 61 AX=0005"OPTIMA"


INT 61 AX=0004

61 - Banyan VINES - GET SERVER SERIAL NUMBER

AX = 0004h
DS:DX -> request block (function 0008h)

Return

        AX = status
    0000h server ID returned in request block
    000Fh invalid drive
    0015h drive not ready

Table Formats

Request block:


INT 61 AX=0004

61 - OPTIMA 1024 VGA-Sync - ENTER SPECIFY MODE

AX = 0004h

Note

     	Specify Mode is enabled by hot key (seeAlso below), and allows
panning and zooming via the numeric keypad.
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh
The Zoom interrupt no. can be obtained with function INT 16h,AH=0FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"    INT 61 AX=0007"OPTIMA"


INT 61 AX=0005

61 - Banyan VINES - PRINTER CONTROL

AX = 0005h
DS:DX -> request block

Return

        AX = status
    0000h successful
    0001h network software not installed or incompatible

SeeAlso

    INT 2F AX=D702

Table Formats

Request block:


INT 61 AX=0005

61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW

AX = 0005h
BX:CX -> buffer for window parameters (see below)

Note

     	INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"    INT 61 AX=0003"OPTIMA"

SeeAlso

    INT 61 AX=0006"OPTIMA"

Table Formats

Window parameters:


INT 61 AX=0006

61 - OPTIMA 1024 VGA-Sync - SET ZOOM WINDOW

AX = 0006h
BX:CX -> zoom window description (see below)

Notes

      	width of zoom window must be a multiple of the pixel replication
  factor
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"    INT 61 AX=0001"OPTIMA"

SeeAlso

    INT 61 AX=0005"OPTIMA"    INT 61 AX=0008"OPTIMA"

Table Formats

Zoom window description:


INT 61 AX=0007

61 - OPTIMA 1024 VGA-Sync - QUERY APPLICATION KEY

AX = 0007h

Return

        AX = 0000h/0001h

Notes

      	In specify mode, the END key has been reserved for applications.
Returns the current toggle state of that key. E.g. in the
  OPTIMA AutoCAD driver, 0 means, AutoCAD calls subfunction 0001h
  every time the cross cursor moves.
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"    INT 61 AX=0001"OPTIMA"

SeeAlso

    INT 61 AX=0004"OPTIMA"    INT 7AAutoCAD


INT 61 AX=0007

61 - Banyan VINES - GET PORTS FOR A SERVICE

AX = 0007h
BX = 0002h
DS:DX -> StreetTalk service name
DS:DI -> port record block (see below)

Return

        AX = status
    0000h successful
    0001h PC network software not installed or incompatible
    03E9h incorrect name syntax
    03EAh organization name too long
    03EBh group name too long
    03ECh item name too long
    03EDh StreetTalk name too long
    03F3h organization not found
    03F4h group not found
    03F5h StreetTalk name not found
    03F8h not a StreetTalk name
    040Dh appropriate StreetTalk name unavailable

Table Formats

Port record block:


INT 61 AX=0007

61 - Banyan VINES - SET PORTS FOR A SERVICE

AX = 0007h
BX = 0004h
DS:DX -> StreetTalk name of service
DS:DI -> port record block (see below)

Return

        AX = status
    0000h successful
    0001h PC network software not installed or incompatible
    03E9h incorrect name syntax
    03EAh organization name too long
    03EBh group name too long
    03ECh item name too long
    03EDh StreetTalk name too long
    03F3h organization not found
    03F4h group not found
    03F5h StreetTalk name not found
    03F8h not a StreetTalk name
    0409h modify access denied
    040Dh appropriate StreetTalk name unavailable

Table Formats

Port record block:


INT 61 AX=0007

61 - Banyan VINES - GET USER NAME

AX = 0007h
BX = 0005h
DS:DX -> 64-byte buffer for user's StreetTalk name

Return

        AX = status
    0000h successful
    0001h network software not installed or incompatible

Note

     	if no user logged in, first byte of returned name will be 00h


INT 61 AX=0007

61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING

AX = 0007h
BX = 0006h
SI = error code (>100)
DS:DX -> 80-byte buffer for error text

Return

        AX = status
    0000h successful
    0001h network software not installed or incompatible


INT 61 AX=0007

61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM

AX = 0007h
BX = 0007h
DS:DX -> NiceName block (see below)

Return

        AX = status
    0000h successful
    0001h PC network software not installed or incompatible
    03E9h incorrect name syntax
    03EAh organization name too long
    03EBh group name too long
    03ECh item name too long
    03EDh StreetTalk name too long
    03F3h organization not found
    03F4h group not found
    03F5h StreetTalk name not found
    03F8h not a StreetTalk name
    040Dh appropriate StreetTalk name unavailable

SeeAlso

    INT 61 AX=0007    /BX=0008

Table Formats

NiceName block:


INT 61 AX=0007

61 - Banyan VINES - ENUMERATE StreetTalk NAMES

AX = 0007h
BX = 0008h
DS:DX -> enumerate block (see below)

Return

        AX = status
    0000h successful
    0411h all matching names have been returned
    0412h some groups unavailable, all available matches returned

Note

     	each program using this call should continue until a nonzero status
  is returned; otherwise, some resources will not be freed for several
  hours

SeeAlso

    INT 61 AX=0007    /BX=0007

Table Formats

Enumerate block:
Category criteria block:
Values for common service categories:
 0002h file service
 0003h print service
 0004h mail service
 0005h StreetTalk
 0006h time service
 0008h semaphore service
 0009h 3270/SNA service
 000Ah asynchronous terminal emulation service
 000Ch NETBIOS service
 000Dh PC-based service


INT 61 AX=0008

61 - OPTIMA 1024 VGA-Sync - SET ZOOM OFFSET

AX = 0008h
BX = X start of zoom offset
CX = Y start of zoom offset

Notes

      	specifies the first byte of video memory to appear in the zoom window
INT 61h is the default interrupt; the actual interrupt number can be
  obtained by calling INT 16/AH=FFh

SeeAlso

    INT 16 AH=FF"OPTIMA"    INT 61 AX=0000"OPTIMA"    INT 61 AX=0006"OPTIMA"


INT 61 AX=0008

61 - Banyan VINES - POST MESSAGE ON LOCAL DISPLAY

AX = 0008h
BX = 0002h
CX = flags
    bit 0: message will remain on screen until user presses ^X
    bit 1: ring bell after displaying message
    bit 2: blink
DS:DX -> ASCIZ string to display (only first 80 chars used)

Return

        AX = status
    0000h successful
    000Bh message display function currently busy
    000Ch message queue full

Note

     	queues up to three messages to be displayed on the bottom line


INT 61 AX=0008

61 - Banyan VINES - INTERCEPT VINES 25th-LINE MESSAGES AT LOCAL PC

AX = 0008h
BX = 0003h
DS:DX -> request block

Return

        AX = status
    0000h successful
    0001h network software not installed or incompatible

Notes

      	message handler should not call BIOS or DOS functions, and should
  either call next handler or simply return
to stop intercepting messages, set prev and next request blocks to
  point at each other

Table Formats

Request block:
Message storage area:


INT 61 AX=000A

61 - Banyan VINES - SECONDARY 3270 INTERFACE

AX = 000Ah

Notes

      	either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  which is loaded second.  The first interface loaded will use AX=0002h

SeeAlso

    INT 61 AX=0002


INT 61 AH=01

61 - Banyan VINES - CHECK SERVICE

AH = 01h
AL = service ID
    01h communications
    02h primary 3270 emulation
    03h async terminal emulation
    04h file deflection
    07h StreetTalk
    08h environment
    0Ah secondary 3270 emulation
    0Bh semaphore service
    0Ch 3270 emulation active status
    0Dh 3270 keyboard interrupt simulator

Return

        AX = status
    0000h installed
    0001h not installed
    0002h invalid ID


INT 61 AH=02

61 - Banyan VINES - GET REVISION NUMBER

AH = 02h
DS:DX -> 2-byte buffer for result

Return

        AX = 0000h installed
    DS:DX buffer contains revision number as
10000d * major_ver + 100d * minor_ver + patch_revision


INT 61 AH=05

61 u - PC/TCP kernel v2.05 - "get_addr" - ???

AH = 05h
BX = connection handle???

Return

        CF clear if successful
    DX:AX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

Notes

      	the installation check consists of testing for the signature "TCPTSR"
  three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
  interrupt from 20h through E0h

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=06


INT 61 AH=06

61 u - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS

AH = 06h
BX = connection handle???
DS:SI -> 38-byte buffer (see below)

Return

        CF clear if successful
    buffer filled
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=05

Table Formats

Buffer:


INT 61 AH=07

61 u - PC/TCP kernel v2.05 - "net_globalize" - ???

AH = 07h
BX = connection handle???

Return

        CF clear if successful
    AX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=08

61 u - PC/TCP kernel v2.05 - "net_release" - ???

AH = 08h
BX = connection handle???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=09

61 u - PC/TCP kernel v2.05 - "net_releaseall" - ??? ALL

AH = 09h

Return

        CF clear

Notes

      	performs function 08h on every connection handle???
the installation check consists of testing for the signature "TCPTSR"
  three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
  interrupt from 20h through E0h

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=0A

61 - PC/TCP kernel v2.05 - "net_send" - ???

AH = 0Ah
???

Return

        ???


INT 61 AH=0B

61 - PC/TCP kernel v2.05 - "net_sendto" - ???

AH = 0Bh
???

Return

        ???


INT 61 AH=0C

61 u - PC/TCP kernel v2.05 - "net_stat" - GET CONNECTION STATISTICS

AH = 0Ch
BX = connection handle???
    FFFCh for kernel ICMP statistics
    FFFDh for kernel UDP statistics
    FFFEh for kernel IP statistics
    FFFFh for kernel TCP statistics
DS:DX -> 64-byte buffer

Return

        CF clear if successful
    buffer filled
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"

Table Formats

Handle statistics:
Kernel TCP statistics:
Kernel IP statistics:
Kernel UDP statistics:
Kernel ICMP statistics:


INT 61 AH=0D

61 u - PC/TCP kernel v2.05 - "is_netnd" - CHECK IF CONNECTION HANDLE VALID

AH = 0Dh
BX = connection handle

Return

        CF clear if valid
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=0E

61 u - PC/TCP kernel v2.05 - "net_select" - ???

AH = 0Eh
BX = ???
DS:DX -> ???
ES:DI -> ???

Return

        CF clear
???

Notes

      	the installation check consists of testing for the signature "TCPTSR"
  three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
  interrupt from 20h through E0h

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=0F

61 u - PC/TCP kernel v2.05 - "get_netversion" - GET SOFTWARE VERSION

AH = 0Fh

Return

        CF clear
    AX = version (AH = major, AL = minor)
    BX = patch level

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=10

61 u - PC/TCP kernel v2.05 - "net_shutdown" - UNINSTALL

AH = 10h

Return

        CF clear if successful
CF set on error???

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=11

61 u - PC/TCP kernel v2.05 - "disable_async" - ???

AH = 11h

Return

        CF clear
AX = ???

Note

     	clears location whose value is returned in AX and decrements another if
  it is not already zero

SeeAlso

    INT 61PC/TCP"    INT 61 AH=12


INT 61 AH=12

61 u - PC/TCP kernel v2.05 - "enable_async" - ???

AH = 12h

Return

        CF clear
AX = ???

Note

     	sets location whose value is returned in AX to 0001h and performs other
  actions if another location is nonzero; these two locations are the
  same ones used by AH=11h

SeeAlso

    INT 61PC/TCP"    INT 61 AH=11


INT 61 AH=13

61 u - PC/TCP kernel v2.05 - "net_connect" - ???

AH = 13h
BX = connection handle??? or FFFFh
DX = protocol
    0000h ??? (returns error 0016h)
    0001h ???
    0002h ???
    0003h ???
    0004h ???
    0005h ???
DS:SI -> result buffer???

Return

        CF clear if successful
    AX = connection handle???
CF set on error
    AX = error code (see INT 61"PC/TCP")

Note

     	invokes AH=22h if BX=FFFFh on entry; also invokes AH=19h in various
  cases

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=23


INT 61 AH=14

61 u - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED

AH = 14h
BX = connection handle???

Return

        CF set
    AX = 0018h (see INT 61"PC/TCP")

Note

     	displays error message "Illegal system call!  Please upgrade your
  PCserver software" to standard output

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=15

61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???

AH = 15h
???

Return

        ???


INT 61 AH=16

61 u - PC/TCP kernel v2.05 - "net_peer" - GET ADDRESS OF REMOTE PEER???

AH = 16h
BX = connection handle???
DS:DX -> 9-byte buffer for ???

Return

        CF clear if successful
    ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=17

61 u - PC/TCP kernel v2.05 - "net_reconfig" - ???

AH = 17h

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=18

61 u - PC/TCP kernel v2.05 - "net_eof" - ???

AH = 18h
BX = connection handle???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=19

61 u - PC/TCP kernel v2.05 - "net_abort" - ???

AH = 19h
BX = connection handle???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=1A

61 u - PC/TCP kernel v2.05 - "net_write" - ???

AH = 1Ah
BX = connection handle???
CX = ???
DX = ???
DS:SI -> ???

Return

        CF clear if successful
    AX = ???
    DX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

Notes

      	the installation check consists of testing for the signature "TCPTSR"
  three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
  interrupt from 20h through E0h

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=1B    INT 61 AH=1C


INT 61 AH=1B

61 u - PC/TCP kernel v2.05 - "net_read" - ???

AH = 1Bh
BX = connection handle???
CX = ???
DX = ???
DS:SI -> ???
ES:DI -> ???

Return

        CF clear if successful
    CX = ???
    DX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=1A    INT 61 AH=1D


INT 61 AH=1C

61 u - PC/TCP kernel v2.05 - "net_readfrom" - ???

AH = 1Ch
BX = connection handle???
CX = ???
DX = ???
DS:SI -> ???
ES:DI -> ???

Return

        CF clear if successful
    AX = ???
    DX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=1A    INT 61 AH=1D


INT 61 AH=1D

61 u - PC/TCP kernel v2.05 - "net_writeto" - ???

AH = 1Dh
BX = connection handle???
CX = ???
DX = ???
DS:SI -> ???
ES:DI -> 9-byte buffer containing ???

Return

        CF clear if successful
    CX = ???
    DX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=1B    INT 61 AH=1C


INT 61 AH=1E

61 u - PC/TCP kernel v2.05 - "net_flush" - ???

AH = 1Eh
BX = connection handle

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=1F

61 u - PC/TCP kernel v2.05 - "net_asynch" - ???

AH = 1Fh
BX = connection handle???
CX = ???
DS:SI -> ???
ES:DI -> ???

Return

        CF clear if successful
    DS:DX -> ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=20

61 u - PC/TCP kernel v2.05 - "set_option" - ???

AH = 20h
BX = connection handle???
CX = ???
DS:DX -> ???
SI = ???
DI = ???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=21


INT 61 AH=21

61 u - PC/TCP kernel v2.05 - "get_option" - ???

AH = 21h
BX = connection handle???
CX = ???
DS:DX -> ???
SI = ???
DI = ???

Return

        CF clear if successful
    DS:DX -> ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=20


INT 61 AH=22

61 u - PC/TCP kernel v2.05 - "net_getdesc" - ???

AH = 22h
BX = connection handle???

Return

        CF clear if successful
    AX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=23

61 u - PC/TCP kernel v2.05 - "net_listen" - ???

AH = 23h
BX = connection handle??? or FFFFh
DX = subfunction???
DS:SI -> ???

Return

        CF clear if successful
    AX = ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"    INT 61 AH=13


INT 61 AH=24

61 u - PC/TCP kernel v2.05 - "net_abortall" - ???

AH = 24h

Return

        ???

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=25

61 u - PC/TCP kernel v2.05 - "ad_res_name" - ???

AH = 25h
BX = ???
CX = ???
DX = ???
DS:SI -> ???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=26

61 u - PC/TCP kernel v2.05 - "ad_htable" - ???

AH = 26h
BX = ???
CX = ???
DX = ???
DS:SI -> ???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=27

61 u - PC/TCP kernel v2.05 - "ad_domain" - ???

AH = 27h
BX = ???
CX = ???
DX = ???
DS:SI -> ???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=28

61 u - PC/TCP kernel v2.05 - "net_swap" - ???

AH = 28h
BX = connection handle???
CX = ???

Return

        CF clear if successful
    ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=29

61 u - PC/TCP kernel v2.05 - "net_getglobdesc" - OPEN CONNECTION???

AH = 29h

Return

        CF clear if successful
    AX = connection handle???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=2A

61 U - PC/TCP kernel v2.05 - GET CONFIGURATION INFORMATION

AH = 2Ah
DS:SI -> 26-byte buffer for configuration information (see below)

Return

        CF clear
AX = 0000h
buffer filled

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"

Table Formats

Configuration information:


INT 61 AH=2B

61 U - PC/TCP kernel v2.05 - ???

AH = 2Bh
BX = connection handle???
CX = ???
DX = ???
DS:SI -> ???
ES:DI -> ???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=30

61 u - PC/TCP kernel v2.05 - "icmp_ping" ???

AH = 30h
BX = ???
CX = ???
DX = ???

Return

        CF clear if successful
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61

61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel

AH = function
    31h "net_add_route"
    32h "net_del_route"
    33h "net_dump_routes"


INT 61 AH=34

61 u - PC/TCP kernel v2.1 - "icmp_destun" - ???

AH = 34h
???

Return

        ???


INT 61 AH=50

61 u - PC/TCP kernel v2.05 - "nm_prs_addr" - ???

AH = 50h
DS:DX -> 127-byte buffer containing ???

Return

        CF clear if successful
    DX:AX -> ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=51

61 u - PC/TCP kernel v2.05 - "nm_htable" - ???

AH = 51h
CX = size of destination buffer
DS:DX -> 127-byte buffer containing ???
ES:DI -> destination buffer or 0000h:0000h

Return

        CF clear if successful
    DX:AX -> ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=52

61 u - PC/TCP kernel v2.05 - "nm_domain" - ???

AH = 52h
CX = size of destination buffer
DS:DX -> 127-byte buffer containing ???
ES:DI -> destination buffer or 0000h:0000h

Return

        CF clear if successful
    DX:AX -> ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=53

61 u - PC/TCP kernel v2.05 - "nm_ien116" - ???

AH = 53h
DS:DX -> 127-byte buffer containing ???

Return

        CF clear if successful
    DX:AX -> ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 61 AH=54

61 u - PC/TCP kernel v2.05 - "nm_res_name" - RESOLVE HOST NAME

AH = 54h
CX = size of destination buffer
DS:DX -> 127-byte buffer containing host name???
ES:DI -> destination buffer or 0000h:0000h

Return

        CF clear if successful
    DX:AX -> ???
CF set on error
    AX = error code (see INT 61"PC/TCP")

BUG

    	the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  greater than 54h in AH may crash the system.	Other kernels may have
  this bug as well.

SeeAlso

    INT 61PC/TCP"    INT 61 AH=00"PC/TCP"


INT 62

62 - reserved for user interrupt


INT 62

62 - Adaptec and OMTI controllers - DRIVE 0 DATA

Notes

      	this vector stores the third four bytes of the parameter table for
  hard disk 0

SeeAlso

    INT 60Adaptec"    INT 61Adaptec"    INT 63Adaptec


INT 62

62 - HP 95LX - USED BY CALCULATOR

SeeAlso

    INT 60HP 95LX


INT 62

62 - MS SQL Server/Sybase DBLIBRARY interface - ???

AH = function (00h to 07h)
CX = FFFEh
DX = FFFFh
???

Return

        ???

Note

     	the installation check consists of testing for the string "DBLIBRARY"
  2 bytes past the interrupt handler

SeeAlso

    INT 62 AH=08"SQL"


INT 62 AX=0000

62 u - FGDRIVER v1.10 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER

AX = 0000h
ES:BX -> ???

Return

        AX = current video mode number

Notes

      	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software
the installation check consists of testing for the signature "FG" ten
  bytes beyond the start of the interrupt handler

SeeAlso

    INT 62 AX=0001    INT 62 AX=0006


INT 62 AX=0001

62 u - FGDRIVER v1.10 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE

AX = 0001h
BX = new video mode or FFFFh for current mode
ES:DX -> ???

Notes

      	video modes are the same as the BIOS video modes except for
0Bh Hercules graphics 720x348
0Ch Hercules graphics 320x200
15h VGA graphics 320x400x256
16h VGA graphics 320x240x256
17h VGA graphics 320x480x256
this call resets the active video page to page 0000h, the clipping
  region to the entire screen, text rows to 25, etc.

SeeAlso

    INT 62 AX=0000    INT 62 AX=0002    INT 10 AH=00


INT 62 AX=0002

62 u - FGDRIVER v1.10 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE

AX = 0002h
BX = desired video mode (00h-17h)
CX = required number of video pages (ignore memory size if <= 0)

Return

        AX = status
    0000h mode not available with requested number of pages
    0001h mode is available

SeeAlso

    INT 62 AX=0001    INT 62 AX=0003    INT 62 AX=0004    INT 62 AX=0005


INT 62 AX=0003

62 u - FGDRIVER v1.10 - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN

AX = 0003h
BX = horizontal resolution
CX = vertical resolution
DX = number of video pages required (both physical and virtual)

Return

        AX = proposed video mode number or FFFFh if no matching video mode

SeeAlso

    INT 62 AX=0002    INT 62 AX=0004


INT 62 AX=0004

62 u - FGDRIVER v1.10 - "FG_AUTOMODE" - GET VIDEO MODE WITH MOST FEATURES

AX = 0004h

Return

        AX = proposed video mode number

Note

     	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software

SeeAlso

    INT 62 AX=0002    INT 62 AX=0003    INT 62 AX=0005


INT 62 AX=0005

62 u - FGDRIVER v1.10 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY

AX = 0005h

Return

        AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
without an Enhanced Color Display

SeeAlso

    INT 62 AX=0002    INT 62 AX=0003


INT 62 AX=0006

62 u - FGDRIVER v1.10 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR

AX = 0006h

Notes

      	this call is ignored in graphics modes
the screen attributes are only restored if ANSI.SYS is loaded

SeeAlso

    INT 62 AX=0000


INT 62 AX=0007

62 u - FGDRIVER v1.10 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE

AX = 0007h
BX = new state (0000h invisible, 0001h visible)

Note

     	this call is ignored in text modes


INT 62 AX=0008

62 - FGDRIVER v1.10 - UNUSED

AX = 0008h to 0009h

Return

        AX = 0000h


INT 62 AX=000A

62 u - FGDRIVER v1.10 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE

AX = 000Ah

Return

        AX = maximum X coordinate in screen space
(or character space if in text mode)

SeeAlso

    INT 62 AX=000B    INT 62 AX=0045


INT 62 AX=000B

62 u - FGDRIVER v1.10 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE

AX = 000Bh

Return

        AX = maximum Y coordinate in screen space
(or character space if in text mode)

SeeAlso

    INT 62 AX=000A    INT 62 AX=0045


INT 62 AX=000C

62 u - FGDRIVER v1.10 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN

AX = 000Ch
BX = screen space column

Return

        AX = character space column containing specified coordinate

SeeAlso

    INT 62 AX=000D    INT 62 AX=000E


INT 62 AX=000D

62 u - FGDRIVER v1.10 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW

AX = 000Dh
BX = screen space row

Return

        AX = character space row containing specified coordinate

SeeAlso

    INT 62 AX=000C    INT 62 AX=000F


INT 62 AX=000E

62 u - FGDRIVER v1.10 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL

AX = 000Eh
BX = character space column

Return

        AX = screen space column of leftmost pixel in specified character col

SeeAlso

    INT 62 AX=000C    INT 62 AX=000F


INT 62 AX=000F

62 u - FGDRIVER v1.10 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW

AX = 000Fh
BX = character space row

Return

        AX = screen space row of topmost pixel in specified character row

SeeAlso

    INT 62 AX=000D    INT 62 AX=000E


INT 62 AX=0010

62 u - FGDRIVER v1.10 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE

AX = 0010h

Return

        AX = number of text rows on screen in current video mode

SeeAlso

    INT 62 AX=0011


INT 62 AX=0011

62 u - FGDRIVER v1.10 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN

AX = 0011h
BX = new screen size (25, 43, 50)

SeeAlso

    INT 62 AX=0010


INT 62 AX=0012

62 - FGDRIVER v1.10 - UNUSED

AX = 0012h to 0013h

Return

        AX = 0000h


INT 62 AX=0014

62 u - FGDRIVER v1.10 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX

AX = 0014h
BX = color index (0000h-00FFh)
CX = new color value (0 to maximum color value for current video mode)

Note

     	this call is ignored in text modes and 256-color graphics modes

SeeAlso

    INT 62 AX=0015    INT 62 AX=0016    INT 62 AX=001D


INT 62 AX=0015

62 u - FGDRIVER v1.10 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE

AX = 0015h

Return

        AX = current text attribute or color index (graphics modes)

Note

     	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software

SeeAlso

    INT 62 AX=0019    INT 62 AX=001A


INT 62 AX=0016

62 u - FGDRIVER v1.10 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX

AX = 0016h
BX = color index (0000h to 00FFh)

Return

        AX = color value for specified color index

Note

     	this call returns the value passed to it in text and 256-color
  graphics modes

SeeAlso

    INT 62 AX=0014    INT 62 AX=001C


INT 62 AX=0017

62 u - FGDRIVER v1.10 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER

AX = 0017h
---CGA 4-color graphics---
BX = CGA paletee number
CX = background color
---CGA 2-color graphics---
BX ignored
CX = foreground color
---16-color graphics---
BX = palette register number
CX = palette value
---256-color graphics---
BX = DAC register number
CX =  DAC value

Notes

      	ignored in text modes and Hercules graphics modes
few EGA/VGA adapters correctly set the foreground color in CGA mode 6

SeeAlso

    INT 62 AX=0018    INT 62 AX=001D


INT 62 AX=0018

62 u - FGDRIVER v1.10 - "FG_PALETTES" - SET ALL PALETTE REGISTERS

AX = 0018h
ES:BX -> array of 16 WORDs containing values for palette registers
(or first 16 DAC registers in 256-color modes)

Note

     	ignored in text modes, CGA and Hercules graphics modes

SeeAlso

    INT 62 AX=0017


INT 62 AX=0019

62 u - FGDRIVER v1.10 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE

AX = 0019h
BX = foreground
CX = background
DX = blink (0000h nonblinking, 0001h blink)

Note

     	this call is ignored in graphics modes

SeeAlso

    INT 62 AX=0015    INT 62 AX=001A    INT 62 AX=0037


INT 62 AX=001A

62 u - FGDRIVER v1.10 - "FG_SETCOLOR" - SET CURRENT COLOR

AX = 001Ah
BX = new color index (or text attribute in text modes)

SeeAlso

    INT 62 AX=0015    INT 62 AX=0019


INT 62 AX=001B

62 u - FGDRIVER v1.10 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS

AX = 001Bh
BX = palette or DAC register number
CX = red color component
DX = green component
SI = blue component

Notes

      	the register number may be negative for Tandy, PCjr, and 200-line
  EGA graphics modes to specify an intense color
this call has no effect in text, CGA graphics, and Hercules graphics
  modes

SeeAlso

    INT 62 AX=001C    INT 62 AX=00A5


INT 62 AX=001C

62 u - FGDRIVER v1.10 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS

AX = 001Ch
ES:BX -> variable pointer record (see below)
CX = DAC register number

Return

        variables updated

Note

     	this call is ignored in text modes and CGA/EGA video modes (since
  they do not use DAC registers)

SeeAlso

    INT 62 AX=001B    INT 62 AX=001D    INT 62 AX=00A4

Table Formats

Variable pointer record:


INT 62 AX=001D

62 u - FGDRIVER v1.10 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL

AX = 001Dh
BX = red component
CX = green component
DX = blue component

Return

        AX = mode-specific palette value corresponding to specified components

Note

     	only meaningful in 16-color graphics modes

SeeAlso

    INT 62 AX=0015    INT 62 AX=0017


INT 62 AX=001E

62 u - FGDRIVER v1.10 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE

AX = 001Eh

Note

     	sets each pixel to 0 in graphics modes, each character cell to a blank
  with a gray foreground attribute in text modes


INT 62 AX=001F

62 u - FGDRIVER v1.10 - "FG_POINT" - DISPLAY A PIXEL

AX = 001Fh
BX = column
CX = row

Note

     	this call is ignored in text modes

SeeAlso

    INT 62 AX=0020


INT 62 AX=0020

62 u - FGDRIVER v1.10 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL

AX = 0020h
BX = column in screen space
CX = row in screen space

Return

        AX = color value of pixel (0 to num_colors-1)
    0000h in text modes

SeeAlso

    INT 62 AX=001F


INT 62 AX=0021

62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN

AX = 0021h

Return

        AX = screen space X coordinate of graphics cursor position

SeeAlso

    INT 62 AX=0022    INT 62 AX=0023    INT 62 AX=0024


INT 62 AX=0022

62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR ROW

AX = 0022h

Return

        AX = screen space Y coordinate of graphics cursor position

SeeAlso

    INT 62 AX=0021    INT 62 AX=0023    INT 62 AX=0024


INT 62 AX=0023

62 u - FGDRIVER v1.10 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION

AX = 0023h
BX = new column
CX = new row

Note

     	this call is ignored in text modes

SeeAlso

    INT 62 AX=0021    INT 62 AX=0022    INT 62 AX=0024


INT 62 AX=0024

62 u - FGDRIVER v1.10 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION

AX = 0024h
BX = column offset
CX = row offset

Note

     	this call is ignored in text modes

SeeAlso

    INT 62 AX=0021    INT 62 AX=0022    INT 62 AX=0023


INT 62 AX=0025

62 u - FGDRIVER v1.10 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION

AX = 0025h
BX = endpoint column
CX = endpoint row

Notes

      	this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
  position is updated

SeeAlso

    INT 62 AX=0026    INT 62 AX=0027


INT 62 AX=0026

62 u - FGDRIVER v1.10 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION

AX = 0026h
BX = endpoint column offset
CX = endpoint row offset

Notes

      	this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
  position is updated

SeeAlso

    INT 62 AX=0025    INT 62 AX=0028


INT 62 AX=0027

62 u - FGDRIVER v1.10 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION

AX = 0027h
BX = endpoint column
CX = endpoint row
DX = dash pattern (set bits cause drawn pixels)

Notes

      	this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
  position is updated

SeeAlso

    INT 62 AX=0025    INT 62 AX=0028


INT 62 AX=0028

62 u - FGDRIVER v1.10 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION

AX = 0028h
BX = endpoint column offset
CX = endpoint row offset
DX = dash pattern (set bits cause drawn pixels)

Notes

      	this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
  position is updated

SeeAlso

    INT 62 AX=0026    INT 62 AX=0027


INT 62 AX=0029

62 u - FGDRIVER v1.10 - "FG_SETCLIP" - SET CLIPPING REGION

AX = 0029h
BX = left edge of clipping region
CX = right edge of clipping region
DX = top edge of clipping region
SI = bottom edge of clipping region

SeeAlso

    INT 62 AX=004A    INT 62 AX=004C    INT 62 AX=0052    INT 62 AX=0054


INT 62 AX=002A

62 u - FGDRIVER v1.10 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE

AX = 002Ah
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row

SeeAlso

    INT 62 AX=002B    INT 62 AX=002C    INT 62 AX=002E    INT 62 AX=00A2


INT 62 AX=002B

62 u - FGDRIVER v1.10 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE

AX = 002Bh
BX = screen space column of left edge
CX = screen space column of right edge
DX = screen space row of top edge
SI = screen space row of bottom edge

Note

     	this call is ignored in text modes

SeeAlso

    INT 62 AX=002A    INT 62 AX=002C    INT 62 AX=00A2


INT 62 AX=002C

62 u - FGDRIVER v1.10 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE

AX = 002Ch
BX = screen space column of left edge
CX = screen space column of right edge
DX = screen space row of top edge
SI = screen space row of bottom edge
ES:DI -> dithering matrix (video-mode dependent)

Note

     	this call is ignored in text modes

SeeAlso

    INT 62 AX=002B    INT 62 AX=00A2


INT 62 AX=002D

62 u - FGDRIVER v1.10 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE

AX = 002Dh
BX = horizontal semi-axis length in screen space units
CX = vertical semi-axis length in screen space units

Notes

      	this call is ignored in text modes
the ellipse is centered at the current graphics cursor position

SeeAlso

    INT 62 AX=002A    INT 62 AX=002E    INT 62 AX=00A2


INT 62 AX=002E

62 u - FGDRIVER v1.10 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON

AX = 002Eh
CX = number of vertices in polygon
ES:BX -> variable pointer record (see below)

SeeAlso

    INT 62 AX=002D    INT 62 AX=0030    INT 62 AX=00A2

Table Formats

Variable pointer record:


INT 62 AX=002F

62 u - FGDRIVER v1.10 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR

AX = 002Fh
BX = column
CX = row

Notes

      	fills an arbitrary closed region around the specified point with the
  current color; the screen edges are not considered region boundaries
ignored in text modes


INT 62 AX=0030

62 u - FGDRIVER v1.10 - "FG_CIRCLE" - DRAW UNFILLED CIRCLE

AX = 0030h
BX = radius in horizontal screen space units (> 0)

Notes

      	the circle is drawn in screen space, centered at the current graphics
  cursor position
this call is ignored in text modes

SeeAlso

    INT 62 AX=00A2


INT 62 AX=0031

62 - FGDRIVER v1.10 - UNUSED

AX = 0031h

Return

        AX = 0000h


INT 62 AX=0032

62 u - FGDRIVER v1.10 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS

AX = 0032h
CX = length of string
ES:BX -> string

Notes

      	the string is displayed staring at the text cursor position using the
  current text attribute (text modes) or color index (graphics modes)
the text cursor position is updated after this call

SeeAlso

    INT 62 AX=001A    INT 62 AX=0033    INT 62 AX=0035    INT 62 AX=0036


INT 62 AX=0033

62 u - FGDRIVER v1.10 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION

AX = 0033h
BX = row
CX = column

Note

     	there are only eight text cursors shared by successive groups of
  eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
  share the second, etc)

SeeAlso

    INT 62 AX=0034


INT 62 AX=0034

62 u - FGDRIVER v1.10 - "FG_WHERE" - GET CURRENT CURSOR POSITION

AX = 0034h
ES:BX -> variable pointers (see below)

Return

        indicated variables filled with cursor row and column for active
  display

Note

     	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software

SeeAlso

    INT 62 AX=0033

Table Formats

Variable pointers:


INT 62 AX=0035

62 u - FGDRIVER v1.10 - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS

AX = 0035h
BX = number of characters to recolor

Notes

      	this call is ignored in graphics modes
starting at the current text cursor position, the specified number of
  characters have their attributes to the current text attribute

SeeAlso

    INT 62 AX=0036


INT 62 AX=0036

62 u - FGDRIVER v1.10 - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION

AX = 0036h
CX = length of string
ES:BX -> string to be displayed

Return

        text cursor updated

Note

     	this call is ignored in graphics modes

SeeAlso

    INT 62 AX=0032    INT 62 AX=0035


INT 62 AX=0037

62 u - FGDRIVER v1.10 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION

AX = 0037h
BX = row
CX = column

Return

        AX = character attribute at specified location on active video page

Note

     	this call is ignored in graphics modes

SeeAlso

    INT 62 AX=0019    INT 62 AX=0038


INT 62 AX=0038

62 u - FGDRIVER v1.10 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION

AX = 0038h
BX = row
CX = column

Return

        AX = character at specified location on active video page

Note

     	this call is ignored in graphics modes

SeeAlso

    INT 62 AX=0037


INT 62 AX=0039

62 - FGDRIVER v1.10 - UNUSED

AX = 0039h to 003Bh

Return

        AX = 0000h


INT 62 AX=003C

62 u - FGDRIVER v1.10 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER

AX = 003Ch

Return

        AX = active video page (0000h-003Fh)

SeeAlso

    INT 62 AX=003D    INT 62 AX=003E    INT 62 AX=0040


INT 62 AX=003D

62 u - FGDRIVER v1.10 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE

AX = 003Dh
BX = new video page (0000h to 003Fh)

Note

     	the specified page must be a physical or virtual page

SeeAlso

    INT 62 AX=0001    INT 62 AX=003C    INT 62 AX=003F    INT 62 AX=0041


INT 62 AX=003E

62 u - FGDRIVER v1.10 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER

AX = 003Eh

Return

        AX = visible video page (0000h-003Fh)

SeeAlso

    INT 62 AX=003C    INT 62 AX=003F    INT 62 AX=0040


INT 62 AX=003F

62 u - FGDRIVER v1.10 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE

AX = 003Fh
BX = new video page (0000h to 003Fh)

Note

     	the specified page must be a physical or virtual page

SeeAlso

    INT 62 AX=0001    INT 62 AX=003D    INT 62 AX=003E    INT 62 AX=0041


INT 62 AX=0040

62 u - FGDRIVER v1.10 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM

AX = 0040h

Return

        AX = current hidden video page number (0000h-003Fh)

SeeAlso

    INT 62 AX=003C    INT 62 AX=003E    INT 62 AX=0041


INT 62 AX=0041

62 u - FGDRIVER v1.10 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE

AX = 0041h
BX = new hidden page (0000h to 003Fh)

Note

     	specified page must be a physical page or a virtual page

SeeAlso

    INT 62 AX=003D    INT 62 AX=003F    INT 62 AX=0040


INT 62 AX=0042

62 u - FGDRIVER v1.10 - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE

AX = 0042h
BX = page number (0000h-003Fh)

Return

        AX = status
    0000h successful
    0001h specified page is a physical or logical page
    0007h virtual page created, but memory control blocks corrupted
    0008h not enough memory

Notes

      	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software
the amount of memory required by the virtual video page depends on the
  current video mode

SeeAlso

    INT 62 AX=0043    INT 62 AX=009D    INT 62 AX=009F


INT 62 AX=0043

62 u - FGDRIVER v1.10 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE

AX = 0043h
BX = page number (0000h-003Fh)

Return

        AX = status
    0000h successful
    0001h specified page is a physical page
    0007h virtual page released, but memory control blocks corrupted
    0009h attempt to free a page which was never created

SeeAlso

    INT 62 AX=0042    INT 62 AX=009D    INT 62 AX=009E    INT 62 AX=009F


INT 62 AX=0044

62 u - FGDRIVER v1.10 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE

AX = 0044h

Return

        AX = segment of active video page


INT 62 AX=0045

62 u - FGDRIVER v1.10 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE

AX = 0045h
BX = new page width in pixels
CX = new page height in pixels

Notes

      	the visible page must be set to 0000h before making this call
mouse, joysticks, expanded memory, and extended memory must be
  reinitialized after this call

SeeAlso

    INT 62 AX=000A    INT 62 AX=000B    INT 62 AX=0075    INT 62 AX=007A    INT 62 AX=00A0    INT 62 AX=00A1


INT 62 AX=0046

62 u - FGDRIVER v1.10 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP

AX = 0046h
ES:BX -> buffer for video mode-independent bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows

Return

        each bit in bitmap is set if corresponding pixel is of the current
  color, cleared otherwise

Note

     	this call is ignored in text modes

SeeAlso

    INT 62 AX=0047    INT 62 AX=0048


INT 62 AX=0047

62 u - FGDRIVER v1.10 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP

AX = 0047h
ES:BX -> bitmap (each set bit is pixel drawn in current color)
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows

SeeAlso

    INT 62 AX=0046    INT 62 AX=004A    INT 62 AX=004D    INT 62 AX=0052


INT 62 AX=0048

62 u - FGDRIVER v1.10 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP

AX = 0048h
ES:BX -> buffer for video mode-specific bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows

SeeAlso

    INT 62 AX=0046    INT 62 AX=0049    INT 62 AX=0062


INT 62 AX=0049

62 u - FGDRIVER v1.10 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE

AX = 0049h
ES:BX -> video mode-specific bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows

Note

     	the image will be drawn with its lower left corner at the current
  cursor position (either text or graphics)

SeeAlso

    INT 62 AX=0048    INT 62 AX=004A    INT 62 AX=0062


INT 62 AX=004A

62 u - FGDRIVER v1.10 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)

AX = 004Ah
ES:BX -> mode-specific bitmap
CX = width of bit map in bytes
DX = height of bit map in pixel rows

Notes

      	this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics
  cursor position
the current clipping region is used, extended to a byte boundary

SeeAlso

    INT 62 AX=0029    INT 62 AX=0047    INT 62 AX=0049    INT 62 AX=004C    INT 62 AX=0052


INT 62 AX=004B

62 u - FGDRIVER v1.10 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)

AX = 004Bh
ES:BX -> mode-specific bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows

Notes

      	this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics
  cursor position

SeeAlso

    INT 62 AX=004A    INT 62 AX=004C


INT 62 AX=004C

62 u - FGDRIVER v1.10 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)

AX = 004Ch
ES:BX -> mode-specific bitmap
CX = width of bit map in bytes
DX = height of bit map in pixel rows

Notes

      	this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics
  cursor position
the current clipping region is used, extended to a byte boundary

SeeAlso

    INT 62 AX=0029    INT 62 AX=004A


INT 62 AX=004D

62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)

AX = 004Dh
ES:BX -> pixel run map (pairs of bytes: color index, count)
CX = number of pixel runs to display
DX = width of image in pixels (> 0)

Notes

      	this call is ignored in text modes
the image is displayed with its lower left corner at the current
  graphics cursor position

SeeAlso

    INT 62 AX=0047    INT 62 AX=004E    INT 62 AX=004F    INT 62 AX=0050    INT 62 AX=0060


INT 62 AX=004E

62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (PACKED PIXEL RUN FMT)

AX = 004Eh
ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
contains the color for the first run in its high nybble and the
color for the second run in its low nybble)
CX = number of pixel runs to display
DX = width of image in pixels (> 0)

Notes

      	this call is ignored in text modes
the image is displayed with its lower left corner at the current
  graphics cursor position

SeeAlso

    INT 62 AX=004D    INT 62 AX=004F    INT 62 AX=0050    INT 62 AX=0060


INT 62 AX=004F

62 u - FGDRIVER v1.10 - "FG_DISPFILE" - DISPLAY STORED IMAGE

AX = 004Fh
ES:BX -> ASCIZ filename
CX = image width in pixels (> 0)
DX = image format
    0000h Fastgraph standard pixel run format
    0001h packed pixel run format

Notes

      	this call is ignored in text modes
the image is displayed with its lower left corner at the current
  graphics cursor position

SeeAlso

    INT 62 AX=004D    INT 62 AX=004E    INT 62 AX=0050    INT 62 AX=0060


INT 62 AX=0050

62 u - FGDRIVER v1.10 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR

AX = 0050h
BX = index of pattern to define
CX = number of predefined display pattern

Notes

      	when displaying a pixel run map, Fastgraph uses the pattern associated
  with each color index rather than displaying the actual color
this call has no effect in text and 256-color graphics modes

SeeAlso

    INT 62 AX=004D    INT 62 AX=004E    INT 62 AX=004F


INT 62 AX=0051

62 u - FGDRIVER v1.10 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)

AX = 0051h
ES:BX -> array containing image stores as a masking map (see below)
CX = number of pixel runs in masking map
DX = width of masking map in pixels

Notes

      	this call is ignored in text modes and in native EGA and VGA graphics
  modes
the image is drawn with its lower left corner at the current graphics
  cursor position

SeeAlso

    INT 62 AX=0052

Table Formats

Masking map:


INT 62 AX=0052

62 u - FGDRIVER v1.10 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)

AX = 0052h
ES:BX -> array containing image stored as a masking map (see AX=0051h)
CX = number of pixel runs in masking map
DX = width of masking map in pixels

Notes

      	this call is ignored in text modes and in native EGA and VGA graphics
  modes
the image is drawn with its lower left corner at the current graphics
  cursor position

SeeAlso

    INT 62 AX=0029    INT 62 AX=004A    INT 62 AX=0051    INT 62 AX=0053    INT 62 AX=0054


INT 62 AX=0053

62 u - FGDRIVER v1.10 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)

AX = 0053h
ES:BX -> array containing image stored as a masking map (see AX=0051h)
CX = number of pixel runs in masking map
DX = width of masking map in pixels

Notes

      	this call is ignored in text modes and in native EGA and VGA graphics
  modes
the image is drawn with its lower left corner at the current graphics
  cursor position

SeeAlso

    INT 62 AX=0052    INT 62 AX=0054


INT 62 AX=0054

62 u - FGDRIVER v1.10 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)

AX = 0054h
ES:BX -> array containing image stored as a masking map (see AX=0051h)
CX = number of pixel runs in masking map
DX = width of masking map in pixels

Notes

      	this call is ignored in text modes and in native EGA and VGA graphics
  modes
the image is drawn with its lower left corner at the current graphics
  cursor position

SeeAlso

    INT 62 AX=0029    INT 62 AX=0052    INT 62 AX=0053


INT 62 AX=0055

62 - FGDRIVER v1.10 - UNUSED

AX = 0055h to 0059h

Return

        AX = 0000h


INT 62 AX=005A

62 u - FGDRIVER v1.10 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE

AX = 005Ah
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row

Note

     	left and right edges are adjusted to byte boundaries if necessary

SeeAlso

    INT 62 AX=005B


INT 62 AX=005B

62 u - FGDRIVER v1.10 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE

AX = 005Bh
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row

Note

     	left and right edges are adjusted to byte boundaries if necessary

SeeAlso

    INT 62 AX=005A    INT 62 AX=0064


INT 62 AX=005C

62 u - FGDRIVER v1.10 - "FG_TRANSFER" - COPY REGION

AX = 005Ch
CX = source video page
DX = destination video page
ES:BX -> copy record (see below)

Note

     	source and destination regions must not overlap if on the same page

SeeAlso

    INT 62 AX=005D    INT 62 AX=005F

Table Formats

Copy record:


INT 62 AX=005D

62 u - FGDRIVER v1.10 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT

AX = 005Dh
CX = source video page
DX = destination video page
ES:BX -> copy record (see AX=005Ch)

Notes

      	pixels which are in any of the colors defined as transparent with
  AX=005Eh are left unchanged in the destination region
source and destination regions must not overlap if on the same page
this call is ignored in text modes

SeeAlso

    INT 62 AX=005C    INT 62 AX=005E


INT 62 AX=005E

62 u - FGDRIVER v1.10 - "FG_TCMASK" - SET TRANSPARENT COLORS

AX = 005Eh
BX = colors to consider transparent (bit 0 = color 0, etc)

Notes

      	this call is ignored in text modes
the specified colors are considered transparent by AX=005Dh

SeeAlso

    INT 62 AX=005D


INT 62 AX=005F

62 u - FGDRIVER v1.10 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS

AX = 005Fh
BX = source page number (0000h-003Fh)
CX = destination page number (0000h-003Fh)

Note

     	if both source and destination pages are logical pages, they must both
  be located in the same type (conventional, EMS, XMS) of memory

SeeAlso

    INT 62 AX=005C    INT 62 AX=009D    INT 62 AX=009E    INT 62 AX=009F


INT 62 AX=0060

62 u - FGDRIVER v1.10 - "FG_DISPPCX" - DISPLAY PCX FILE

AX = 0060h
ES:BX -> ASCIZ filename
CX = flags
    bit 0: use current palette rather than PCX file's palette
    bits 1-15: reserved (0)

Return

        AX = status
    0000h success
    0001h file not found
    0002h file is not a valid PCX file

Notes

      	this call is ignored in text modes and Hercules low-resolution graphics
the image is displayed with its upper left corner at the current
  graphics cursor position

SeeAlso

    INT 62 AX=004D    INT 62 AX=004E    INT 62 AX=004F    INT 62 AX=0061


INT 62 AX=0061

62 u - FGDRIVER v1.10 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW

AX = 0061h
BX = left edge in screen space units
CX = right edge in screen space units
DX = top edge in screen space units
SI = bottom edge in screen space units
ES:DI -> ASCIZ filename of PCX file to create

Return

        AX = status
    0000h successful
    0001h file not created

Notes

      	the PCX file is created from the specified region of the active video
  page; the left and right edges are adjusted to a byte boundary if
  necessary
if the specified file already exists, it is overwritten
this call is ignored in text and Hercules low-resolution graphics modes

SeeAlso

    INT 62 AX=0060


INT 62 AX=0062

62 u - FGDRIVER v1.10 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT

AX = 0062h
BX = image width in pixels
CX = image height in pixels

Return

        DX:AX = size in bytes of mode-specific bitmap for current video mode

SeeAlso

    INT 62 AX=0048


INT 62 AX=0063

62 - FGDRIVER v1.10 - UNUSED

AX = 0063h

Return

        AX = 0000h


INT 62 AX=0064

62 u - FGDRIVER v1.10 - "FG_FADEIN" - FADE IN HIDDEN PAGE

AX = 0064h
BX = delay (0000h = fastest possible fade-in)

Notes

      	the current hidden page is copied to the current visible page in small
  random sections to produce a fade-in effect
this call is ignored in text modes

SeeAlso

    INT 62 AX=005B    INT 62 AX=0065


INT 62 AX=0065

62 u - FGDRIVER v1.10 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR

AX = 0065h
BX = delay (0000h = fastest possible fade-out)

Notes

      	this call is ignored in text modes
the current visible page is filled with pixels of the current color in
  small random sections to give a fade-out effect

SeeAlso

    INT 62 AX=0064


INT 62 AX=0066

62 u - FGDRIVER v1.10 - "FG_PAN" - SET SCREEN ORIGIN

AX = 0066h
BX = new column for screen origin
CX = new row for screen origin

SeeAlso

    INT 62 AX=0067


INT 62 AX=0067

62 u - FGDRIVER v1.10 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION

AX = 0067h
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row
DI = number of pixels by which to scroll (positive scrolls up,
negative scrolls down)
ES = type of scroll
    0000h circular (rows scrolled off are copied to vacated rows)
    else vacated rows are filled with the current color

Notes

      	in graphics modes, the left and right edges are adjusted to byte
  boundaries if necessary
circular scrolling uses part of the hidden page as a workspace

SeeAlso

    INT 62 AX=0066


INT 62 AX=0068

62 - FGDRIVER v1.10 - UNUSED

AX = 0068h to 006Ch

Return

        AX = 0000h


INT 62 AX=006D

62 u - FGDRIVER v1.10 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY

AX = 006Dh

Return

        after next key pressed

SeeAlso

    INT 62 AX=006E    INT 62 AX=006F    INT 62 AX=0096


INT 62 AX=006E

62 u - FGDRIVER v1.10 - "FG_GETKEY" - GET NEXT KEYSTROKE

AX = 006Eh
ES:BX -> variable pointer record (see below)

Return

        (after next keystroke if no typeahead) variables updated

SeeAlso

    INT 62 AX=006D    INT 62 AX=006F    INT 62 AX=0070

Table Formats

Variable pointer record:


INT 62 AX=006F

62 u - FGDRIVER v1.10 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT

AX = 006Fh
ES:BX -> variable pointer record (see below)

Return

        variables updated

Note

     	if the keyboard buffer is empty, both the ASCII and extended keycodes
  are set to 00h

SeeAlso

    INT 62 AX=006D    INT 62 AX=006E    INT 62 AX=0070    INT 62 AX=0079

Table Formats

Variable pointer record:


INT 62 AX=0070

62 u - FGDRIVER v1.10 - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY

AX = 0070h

Return

        AX = CapsLock state (0000h off, 0001h on)

SeeAlso

    INT 62 AX=006E    INT 62 AX=006F    INT 62 AX=0071    INT 62 AX=0072    INT 62 AX=0074


INT 62 AX=0071

62 u - FGDRIVER v1.10 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY

AX = 0071h
BX = new state (0000h off, 0001h on)

SeeAlso

    INT 62 AX=0070    INT 62 AX=0073


INT 62 AX=0072

62 u - FGDRIVER v1.10 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY

AX = 0072h

Return

        AX = NumLock state (0000h off, 0001h on)

SeeAlso

    INT 62 AX=0070    INT 62 AX=0074


INT 62 AX=0073

62 u - FGDRIVER v1.10 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY

AX = 0073h
BX = new state (0000h off, 0001h on)

SeeAlso

    INT 62 AX=0071    INT 62 AX=0072


INT 62 AX=0074

62 u - FGDRIVER v1.10 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY

AX = 0074h

Return

        AX = ScrollLock state (0000h off, 0001h on)

SeeAlso

    INT 62 AX=0070    INT 62 AX=0072


INT 62 AX=0075

62 u - FGDRIVER v1.10 - "FG_INITJOY" - INITIALIZE JOYSTICK USE

AX = 0075h
BX = joystick number (0001h or 0002h)

Return

        AX = status
    0000h successful
    FFFFh joystick not connected or no game port

Note

     	Fastgraph assumes that the requested joystick is centered at the time
  this function is called

SeeAlso

    INT 62 AX=0076    INT 62 AX=0077    INT 62 AX=0078    INT 62 AX=0079


INT 62 AX=0076

62 u - FGDRIVER v1.10 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK

AX = 0076h
BX = joystick number (0001h or 0002h)

Return

        AX = horizontal position of joystick
    FFFFh if joystick uninitialized or not present

Notes

      	the actual coordinates are processor- and joystick-dependent
you must call AX=0075h before this function

SeeAlso

    INT 62 AX=0075    INT 62 AX=0077    INT 62 AX=0078


INT 62 AX=0077

62 u - FGDRIVER v1.10 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK

AX = 0077h
BX = joystick number (0001h or 0002h)

Return

        AX = vertical position of joystick
    FFFFh if joystick uninitialized or not present

Notes

      	the actual coordinates are processor- and joystick-dependent
you must call AX=0075h before this function

SeeAlso

    INT 62 AX=0075    INT 62 AX=0076    INT 62 AX=0078


INT 62 AX=0078

62 u - FGDRIVER v1.10 - "FG_BUTTON" - GET JOYSTICK BUTTON STATE

AX = 0078h
BX = joystick number (0001h or 0002h)

Return

        AX = button states
    bit 0: top button pressed
    bit 1: bottom button pressed

SeeAlso

    INT 62 AX=0075    INT 62 AX=0076    INT 62 AX=0077    INT 62 AX=0079


INT 62 AX=0079

62 u - FGDRIVER v1.10 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS

AX = 0079h
CX = joystick number (0001h or 0002h)
ES:BX -> variable pointer record (see below)

Notes

      	if the indicated joystick has not been initialized with AX=0075h, both
  the button code and joystick position will be set to 00h
if either button is pressed, a button code of 0Dh is returned;
  otherwise, a button code of 00h is returned

SeeAlso

    INT 62 AX=006F    INT 62 AX=0075    INT 62 AX=0078

Table Formats

Variable pointer record:


INT 62 AX=007A

62 u - FGDRIVER v1.10 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT

AX = 007Ah

Return

        AX = status
    0002h two-button mouse
    0003h three-button mouse
    FFFFh initialization failed

Note

     	after this call, the mouse cursor is invisible

SeeAlso

    INT 62 AX=007B    INT 62 AX=007C    INT 62 AX=007E    INT 62 AX=0080    INT 33 AX=0000


INT 62 AX=007B

62 u - FGDRIVER v1.10 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY

AX = 007Bh
BX = new state (0000h invisible, 0001h visible)

SeeAlso

    INT 62 AX=007A    INT 62 AX=007E    INT 33 AX=0001    INT 33 AX=0002


INT 62 AX=007C

62 u - FGDRIVER v1.10 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS

AX = 007Ch
CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
  -1=left release, -2=right release, -3=middle release)
ES:BX -> variable pointer record (see below)

Return

        variables updated

Note

     	returns the count of presses or releases since the last call to this
  function; if the count is zero, row and col will also be zero

SeeAlso

    INT 62 AX=007A    INT 33 AX=0005    INT 33 AX=0006

Table Formats

Variable pointer record:


INT 62 AX=007D

62 u - FGDRIVER v1.10 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION

AX = 007Dh
ES:BX -> variable pointer record (see below)

SeeAlso

    INT 62 AX=007A    INT 62 AX=0081

Table Formats

Variable pointer record:


INT 62 AX=007E

62 u - FGDRIVER v1.10 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR

AX = 007Eh
BX = screen mask
CX = cursor mask

Note

     	this call is ignored in graphics modes

SeeAlso

    INT 62 AX=007A    INT 62 AX=007F    INT 33 AX=000A


INT 62 AX=007F

62 u - FGDRIVER v1.10 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR

AX = 007Fh
ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
CX = X offset of hot spot from upper left corner
DX = Y offset of hot spot from upper left corner

Note

     	this call is ignored in text modes

SeeAlso

    INT 62 AX=007A    INT 62 AX=007E    INT 33 AX=0009


INT 62 AX=0080

62 u - FGDRIVER v1.10 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS

AX = 0080h
BX = left-most position allowed for mouse cursor
CX = right-most position allowed
DX = top-most position allowed
SI = bottom-most position allowed

SeeAlso

    INT 62 AX=007A    INT 62 AX=0081    INT 33 AX=0007    INT 33 AX=0008


INT 62 AX=0081

62 u - FGDRIVER v1.10 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION

AX = 0081h
BX = new column
CX = new row

Note

     	will not move the mouse cursor outside the bounding box specified with
  AX=0080h

SeeAlso

    INT 62 AX=007A    INT 62 AX=007D    INT 62 AX=0080    INT 33 AX=0004


INT 62 AX=0082

62 u - FGDRIVER v1.10 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED

AX = 0082h
BX = horizontal mickeys per eight pixels of movement (default 16)
CX = vertical mickeys per eight pixels of movement (default 16)

SeeAlso

    INT 33 AX=000F    INT 33 AX=001A


INT 62 AX=0083

62 - FGDRIVER v1.10 - UNUSED

AX = 0083h to 0087h

Return

        AX = 0000h


INT 62 AX=0088

62 u - FGDRIVER v1.10 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION

AX = 0088h
BX = frequency in Hertz (18-32767)
CX = duration in clock ticks (0000h or negative for continuous sound)

Note

     	ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  progress

SeeAlso

    INT 62 AX=0089    INT 62 AX=008A    INT 62 AX=008E    INT 62 AX=0090


INT 62 AX=0089

62 u - FGDRIVER v1.10 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND

AX = 0089h
CX = number of times to cycle through sound list
ES:BX -> sounds array (see below)

Note

     	ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  progress

SeeAlso

    INT 62 AX=0088    INT 62 AX=008E    INT 62 AX=008F

Table Formats

Sounds array element:


INT 62 AX=008A

62 u - FGDRIVER v1.10 - "FG_VOICE" - START SOUND

AX = 008Ah
BX = channel on TI sound chip
1-3 = channels 1-3, 4 = channel 4 with periodic noise,
5 = channel 4 with white noise
CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz,
2=2048 Hz for channels 4 and 5)
DX = volume
SI = duration in clock ticks (continuous if <= 0)

Notes

      	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software
only available on PCjr and Tandy 1000

SeeAlso

    INT 62 AX=0088    INT 62 AX=008B    INT 62 AX=008C


INT 62 AX=008B

62 u - FGDRIVER v1.10 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND

AX = 008Bh
ES:BX -> tone array (see below)
CX = number of times to repeat tone array

Notes

      	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software
only available on PCjr and Tandy 1000

SeeAlso

    INT 62 AX=008A    INT 62 AX=008D    INT 62 AX=008E    INT 62 AX=008F    INT 62 AX=0091

Table Formats

Tone array element:


INT 62 AX=008C

62 u - FGDRIVER v1.10 - "FG_MUSIC" - PLAY SERIES OF NOTES

AX = 008Ch
ES:BX -> '$'-terminated music string in BASIC PLAY format

Return

        after music completed

Note

     	ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  progress

SeeAlso

    INT 62 AX=008A    INT 62 AX=008D


INT 62 AX=008D

62 u - FGDRIVER v1.10 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND

AX = 008Dh
CX = number of repetitions (negative = continuous play)
ES:BX -> '$'-terminated music string in BASIC PLAY format

Note

     	ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  progress

SeeAlso

    INT 62 AX=008B    INT 62 AX=008C    INT 62 AX=008E    INT 62 AX=008F    INT 62 AX=0091


INT 62 AX=008E

62 u - FGDRIVER v1.10 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY

AX = 008Eh

Note

     	immediately stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
  or AX=008Bh; ignored if no asynchronous sound is playing

SeeAlso

    INT 62 AX=0088    INT 62 AX=008B    INT 62 AX=008F    INT 62 AX=0090    INT 62 AX=0091


INT 62 AX=008F

62 u - FGDRIVER v1.10 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND

AX = 008Fh

Note

     	stops any sounds started with "FG_MUSICB", "FG_SOUNDS", or AX=008Bh
  after the current repetition completes; ignored unless asynchronous
  sound is continuous

SeeAlso

    INT 62 AX=008B    INT 62 AX=008E    INT 62 AX=0090


INT 62 AX=0090

62 u - FGDRIVER v1.10 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND

AX = 0090h

Note

     	this call has no effect if there is no continuous sound playing

SeeAlso

    INT 62 AX=008E    INT 62 AX=008F    INT 62 AX=0091


INT 62 AX=0091

62 u - FGDRIVER v1.10 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE

AX = 0091h

Return

        AX = sound state (0 = no asynchronous sound, 1 = async sound playing)

SeeAlso

    INT 62 AX=008B    INT 62 AX=008D    INT 62 AX=0090


INT 62 AX=0092

62 u - FGDRIVER v1.10 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND

AX = 0092h

SeeAlso

    INT 62 AX=008E    INT 62 AX=008F    INT 62 AX=0090


INT 62 AX=0093

62 u - FGDRIVER v1.10 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND

AX = 0093h

Notes

      	this call has no effect if there is no asynchronous sound in progress
the program must not exit while sound is suspended

SeeAlso

    INT 62 AX=0092


INT 62 AX=0094

62 - FGDRIVER v1.10 - UNUSED

AX = 0094h to 0095h

Return

        AX = 0000h


INT 62 AX=0096

62 u - FGDRIVER v1.10 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION

AX = 0096h
BX = duration in clock ticks

Return

        after delay elapses

SeeAlso

    INT 62 AX=006D    INT 62 AX=0097


INT 62 AX=0097

62 u - FGDRIVER v1.10 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION

AX = 0097h
BX = duration in processor-dependent delay units (see AX=0098h)

Return

        after delay elapses

SeeAlso

    INT 62 AX=0096    INT 62 AX=0098


INT 62 AX=0098

62 u - FGDRIVER v1.10 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK

AX = 0098h

Return

        AX = delay units per clock tick (processor-dependent)

Note

     	delay units are used by "FG_STALL" (AX=0097h)

SeeAlso

    INT 62 AX=0097


INT 62 AX=0099

62 u - FGDRIVER v1.10 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT

AX = 0099h

Return

        DX:AX = number of clock ticks since midnight

Note

     	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software


INT 62 AX=009A

62 - FGDRIVER v1.10 - UNUSED

AX = 009Ah

Return

        AX = 0000h


INT 62 AX=009B

62 u - FGDRIVER v1.10 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY

AX = 009Bh

Return

        DX:AX = number of bytes of conventional memory available

SeeAlso

    INT 62 AX=009D


INT 62 AX=009C

62 u - FGDRIVER v1.10 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS

AX = 009Ch
BX = operation
    0000h replacement
    0001h AND
    0002h OR
    0003h XOR

Note

     	only available in native EGA/VGA graphics mode (0Dh to 12h)


INT 62 AX=009D

62 u - FGDRIVER v1.10 - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONVMEM)

AX = 009Dh
BX = page number (0001h-003Fh)

Return

        AX = status
    0000h successful
    FFFCh insufficient memory
    FFFDh page already created, or exists as physical or virtual page
    FFFEh invalid page number

Note

     	the only operation which is allowed on logical pages is AX=005Fh

SeeAlso

    INT 62 AX=0043    INT 62 AX=005F    INT 62 AX=009B    INT 62 AX=009E    INT 62 AX=009F


INT 62 AX=009E

62 u - FGDRIVER v1.10 - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)

AX = 009Eh
BX = page number (0001h-003Fh)

Return

        AX = status
    0000h successful
    FFFCh insufficient memory
    FFFDh page already created, or exists as physical or virtual page
    FFFEh invalid page number
    FFFFh memory manager not initialized

Notes

      	must first call AX=00A0h
the only operation which is allowed on logical pages is AX=005Fh

SeeAlso

    INT 62 AX=0043    INT 62 AX=005F    INT 62 AX=009D    INT 62 AX=009F    INT 62 AX=00A0


INT 62 AX=009F

62 u - FGDRIVER v1.10 - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)

AX = 009Fh
BX = page number (0001h-003Fh)

Return

        AX = status (see AX=009Eh)

Notes

      	must first call AX=00A1h
the only operation which is allowed on logical pages is AX=005Fh

SeeAlso

    INT 62 AX=0043    INT 62 AX=005F    INT 62 AX=009D    INT 62 AX=009E    INT 62 AX=00A1


INT 62 AX=00A0

62 u - FGDRIVER v1.10 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE

AX = 00A0h

Return

        AX = status
    0000h successful
    FFFFh expanded memory manager inaccessible or not installed

SeeAlso

    INT 62 AX=009E    INT 62 AX=00A1


INT 62 AX=00A1

62 u - FGDRIVER v1.10 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE

AX = 00A1h

Return

        AX = status
    0000h successful
    FFFFh extended memory manager inaccessible or not installed

SeeAlso

    INT 62 AX=009F    INT 62 AX=00A0


INT 62 AX=00A2

62 u - FGDRIVER v1.10 - "FG_BOX" - DRAW UNFILLED RECTANGLE

AX = 00A2h
BX = left column
CX = right column
DX = top row
SI = bottom row

Notes

      	FGDRIVER is the external video driver for the shareware
  Fastgraph/Light by Ted Gruber Software
the rectangle is drawn in screen space, respecting the clipping region,
  width edges of the width specified with AX=00A3h (default = 1 is set
  by "FG_SETMODE")
this function has no effect in text modes

SeeAlso

    INT 62 AX=002B    INT 62 AX=002C    INT 62 AX=002E    INT 62 AX=0030    INT 62 AX=00A3


INT 62 AX=00A3

62 u - FGDRIVER v1.10 - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH

AX = 00A3h
BX = width of left and right edges in pixels (> 0)
CX = width of top and bottom edges in pixels (> 0)

SeeAlso

    INT 62 AX=00A2


INT 62 AX=00A4

62 u - FGDRIVER v1.10 - "FG_GETDACS" - GET VIDEO DAC CONTENTS

AX = 00A4h
CX = number of DAC registers to return (0001h to 0100h)
DX = starting DAC register number (0000h to 00FFh)
ES:BX -> buffer for DAC red/green/blue triples

Note

     	the register number wraps back to zero after FFh

SeeAlso

    INT 62 AX=001C    INT 62 AX=00A5


INT 62 AX=00A5

62 u - FGDRIVER v1.10 - "FG_SETDACS" - SET VIDEO DAC CONTENTS

AX = 00A5h
CX = number of DAC registers to set (0001h to 0100h)
DX = starting DAC register number (0000h to 00FFh)
ES:BX -> buffer containing DAC red/green/blue triples

Notes

      	the register number wraps back to zero after FFh
this call has no effect in text modes or graphics modes below 11h

SeeAlso

    INT 62 AX=001B    INT 62 AX=00A4


INT 62 AH=01

62 - Cswitch - GIVE UP REST OF TIME-SLICE

AH = 01h

Note

     	Cswitch is a set of multitasking functions by Herb Rose

SeeAlso

    INT 62 AH=05    INT 62 AH=06    INT 15 AX=1000


INT 62 AH=02

62 - Cswitch - WAIT FOR SEMAPHORE

AH = 02h
DX = semaphore number (0-63)

Return

        AX = FFFFh bad semaphore number
     else  success

SeeAlso

    INT 62 AH=03    INT 62 AH=04


INT 62 AH=03

62 - Cswitch - CHECK SEMAPHORE

AH = 03h
DX = semaphore number (0-63)

Return

        AX = FFFFh not owned
     else  owned

SeeAlso

    INT 62 AH=02    INT 62 AH=04


INT 62 AH=04

62 - Cswitch - TRIGGER SEMAPHORE

AH = 04h
DX = semaphore number (0-63)

Return

        AX = FFFFh bad semaphore number
     else  success

SeeAlso

    INT 62 AH=02    INT 62 AH=03


INT 62 AH=05

62 - Cswitch - SLEEP

AH = 05h
BX = seconds to sleep

SeeAlso

    INT 62 AH=01    INT 62 AH=06    INT 62 AH=08"Cswitch"


INT 62 AH=06

62 - Cswitch - SUSPEND

AH = 06h

SeeAlso

    INT 62 AH=05    INT 62 AH=08"Cswitch"


INT 62 AH=07

62 - Cswitch - SPAWN

AH = 07h
ES:BX -> function address to start executing at
CX = priority (1-10)

Return

        AX = FFFDh  no free memory control blocks
   = FFFEh  no free task control blocks
   = FFFFh  not enough memory to create new task stack
   = >0	    the tcb number of the new task, indicating no error

SeeAlso

    INT 62 AH=0F    INT 62 AH=10


INT 62 AH=08

62 - Cswitch - WAKE UP TASK

AH = 08h
BX = tcb identifier

SeeAlso

    INT 62 AH=05    INT 62 AH=06


INT 62 AH=08

62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR

AH = 08h
CX = FFFEh
DX = FFFFh

Return

        AX = PSP address of resident DBLIBRARY

Note

     	this call does not free the memory allocated to the TSR; the calling
  code must do the deallocation.

SeeAlso

    INT 62DBLIBRARY


INT 62 AH=09

62 - Cswitch - SET PRIORITY

AH = 09h
BX = new base priority (1-10)

Note

     	the lower the priority is numerically, the more often the task will run


INT 62 AH=0A

62 - Cswitch - TEST MESSAGE QUEUE

AH = 0Ah
DX = queue number (0-63)

Return

        AX = FFFFh bad queue number
   = 0000h nothing on queue
     else  number of bytes in first message in queue

SeeAlso

    INT 62 AH=0B    INT 62 AH=0C


INT 62 AH=0B

62 - Cswitch - SEND MESSAGE

AH = 0Bh
CX = number of bytes to write
DS:SI -> buffer
DX = queue number (0-63)

Return

        AX = FFFEh triggered by something arriving, redo the call
   = FFFFh bad queue number
   = 0000h no message was on queue
     else  number of bytes in message

SeeAlso

    INT 62 AH=0A    INT 62 AH=0C


INT 62 AH=0C

62 - Cswitch - READ MESSAGE

AH = 0Ch
CX = number of bytes to read
DS:SI -> buffer
DX = queue number (0-63)

Return

        AX = FFFFh bad queue number
     else  number of bytes transferred

SeeAlso

    INT 62 AH=0A    INT 62 AH=0B


INT 62 AH=0D

62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT

AH = 0Dh

SeeAlso

    INT 62 AH=0E


INT 62 AH=0E

62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT

AH = 0Eh

SeeAlso

    INT 62 AH=0D


INT 62 AH=0F

62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK

AH = 0Fh
ES:BX -> command line
CX = priority (1-10)
DX = background flag
   = != 0000h  allows loading to EMS

Return

        AX = 0000h task loader queue is full
   = 0001h  no error

SeeAlso

    INT 62 AH=07    INT 62 AH=10    INT 62 AH=13


INT 62 AH=10

62 - Cswitch - TERMINATE SPAWNED PROGRAM

AH = 10h

SeeAlso

    INT 62 AH=07    INT 62 AH=0F


INT 62 AH=11

62 - Cswitch - GET TCB INFORMATION

AH = 11h
ES:BX -> a pointer which will be set to the tcb address

Return

        AX = tcb indentifier

SeeAlso

    INT 62 AH=12


INT 62 AH=12

62 - Cswitch - GET TCB ADDRESS

AH = 12h
ES:BX -> a pointer which will be set to the tcb table address

Return

        AX = tcb indentifier

SeeAlso

    INT 62 AH=11


INT 62 AH=13

62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK

AH = 13h

Return

        AX = FFFCh no Memory Control Blocks available
   = FFFDh no TCBs available
   = FFFEh insufficient memory
   = FFFFh cannot open file
   = 0000h load in progress (not done yet)
     else  tcb indentifier

SeeAlso

    INT 62 AH=0F


INT 62 AH=47

62 - PC Tools 7 COMMUTE - ???

AH = 47h
AL = subfunction (00h-31h)
???
CF set

Return

        ???


INT 62 AH=48

62 - PC Tools 7 COMMUTE - ???

AH = 48h
AL = ???
???
CF set

Return

        ???


INT 62 AH=49

62 - PC Tools 7 COMMUTE - ???

AH = 49h
???
CF set

Return

        ???

Note

     	may be the same as AH=4Ch


INT 62 AH=4A

62 - PC Tools 7 COMMUTE - ???

AH = 4Ah
AL = subfunction (00h-46h)
???
CF set

Return

        ???


INT 62 AH=4B

62 - PC Tools 7 COMMUTE - ???

AH = 4Bh
BX = 1234h
CX = 1234h
ES = ???
CF set

Return

        ???


INT 62 AH=4C

62 - PC Tools 7 COMMUTE - ???

AH = 4Ch
BL = subfunction
    00h ???
    02h ???

Return

        CF clear if successful
CF set on error


INT 62 AX=6262

62 - PC Tools 7 COMMUTE - INSTALLATION CHECK

AX = 6262h
CF set

Return

        AX = 0000h
BX = segment of resident code's PSP


INT 63

63 - reserved for user interrupt


INT 63

63 - Adaptec and OMTI controllers - DRIVE 0 DATA

Notes

      	this vector stores the last four bytes of the parameter table for
  hard disk 0

SeeAlso

    INT 60Adaptec"    INT 61Adaptec"    INT 62Adaptec"    INT 64Adaptec


INT 63

63 - Oracle SQL Protected Mode Executive - ???


INT 63

63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40

   the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13
   has been moved there) and places the old value here


INT 63

63 - Kofax KF9X00 image manipulation card interface


INT 63

63 - DESQview/X - SOCKET API

Notes

      	parameters are passed by patching!! data field immediately following
  the entry point, as detailed below; the preferred method for calling
  the socket API is via INT 15/AX=DE2Eh
the installation check consists of testing for the string "dvxunix"
  (yes, lowercase) at offset 9 from the interrupt handler start

SeeAlso

    INT 15 AX=DE2E    INT BEDESQview

Table Formats

Interrupt handler entry:


INT 64

64 - reserved for user interrupt


INT 64

64 - Adaptec controllers - DRIVE 1 DATA

Notes

      	this vector stores the first four bytes of the parameter table for
  hard disk 1
these vectors are used by the following Adaptec controllers:
    ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
these vectors are NOT used by the following Adaptec controllers:
    ACB 2310, ACB 2312, ACB 2320D, ACB 2322D

SeeAlso

    INT 60Adaptec"    INT 65Adaptec"    INT 66Adaptec"    INT 67Adaptec


INT 64

64 - Oracle SQL Protected Mode Executive - ???


INT 64

64 - Novell NetWare to v2.0a - LOW-LEVEL API

Note

     	equivalent to INT 7A for NetWare versions through 2.0a only; later
  versions do not use this interrupt for IPX/SPX access, instead
  getting an entry point from INT 2F/AX=7A00h

SeeAlso

    INT 2F AX=7A00    INT 7ANovell


INT 64

64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE

SeeAlso

    INT 65DG10"    INT 66DG10


INT 64

64 - Extended Batch Language v3.14+

AH = function
    00h to 5Fh chained to previous handler
    60h to 6Ch reserved, return immediately
    80h to FFh chained to previous handler
    6Dh (v4.01+) insert tone in queue
AL = ???
CX = frequency in Hertz
DL = duration in clock ticks
Return: AL = 00h if note stored
   = 01h if no room to store
    6Eh clear ??? counter/flag
    6Fh return counter/flag that AH=6Eh clears
    70h ???
AL = ???
    71h ???
AL = ???
    72h ???
    73h insert byte at end of keyboard buffer
AL = byte to insert
Return: AL = 00h if byte inserted
   = 01h if no room to store
    74h insert byte at front of keyboard buffer
AL = byte to insert
Return: AL = 00h if byte inserted
   = 01h if no room to store
    75h ???
    76h get keyboard "stack" status
AL = 'K' if kbd read will read physical keyboard
     'S' if it will read EBL internal keyboard buffer
AH = ???
    77h clear internal keyboard buffer
    78h ???
AL = ???
    79h ???
    7Ah ???
AL = ???
    7Bh ???
AL = ???
    7Ch ???
AL = ???
    7Dh ???
AL = ???
    7Eh clear buffer for ???
    7Fh installation check
Return: CX = version in BCD
DI = segment of ???
BX = segment of next program's PSP???

Notes

      	Extended Batch Language is a batch-file enhancer by Seaware
the chaining does not check whether the interrupt had been hooked
  before, so if you try to chain when the previous vector was
  0000h:0000h, you'll be in trouble
functions 72h and 7Ah-7Dh appear to be interfaces to the optional
  floating-point and extended function packages


INT 64

64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information

Note

     	This vector is overwritten by Pdisk to install custom harddrive types.
  It can either destroy 4 vectors and take no memory or TSR and take
  up some memory.

SeeAlso

    INT 65Pdisk


INT 65

65 - reserved for user interrupt


INT 65

65 - Adaptec controllers - DRIVE 1 DATA

Note

     	this vector stores the second four bytes of the parameter table for
  hard disk 1

SeeAlso

    INT 64Adaptec"    INT 66Adaptec"    INT 67Adaptec


INT 65

65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE

SeeAlso

    INT 64DG10"    INT 66DG10


INT 65

65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT


INT 65

65 - SD.COM v6.2

   The unregistered version of SD62.COM uses the low byte of this vector to
   count the number of invocations, displaying a registration reminder each
   time after the 20th use.


INT 65

65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information

SeeAlso

    INT 64Pdisk"    INT 66Pdisk


INT 65

65 - Ad Lib SOUND.COM - INTERFACE

SI = function number (see also entries below)
    0000h Init
    0002h RelTimeStart
    0003h SetState
    0004h GetState
    0005h Flush
    0006h SetMode
    0007h GetMode
    0008h SetRelVolume
    0009h SetTempo
    000Ah SetTranspose
    000Bh GetTranspose
    000Ch SetActVoice
    000Dh GetActVoice
    000Eh PlayNoteDel
    000Fh PlayNote
    0010h SetTimbre
    0011h SetPitch
    0012h SetTickBeat
    0013h NoteOn
    0014h NoteOff
    0015h Timbre
    0016h SetPitchBend
    0017h WaveForm
ES:BX -> arguments

Note

     	the installation check consists of checking for the signature block
  immediately preceding the interrupt handler (see below)

Table Formats

Signature block:


INT 65

65 - Ad Lib SOUND.COM - INITIALIZE (RESET)

SI = 0000h


INT 65

65 - Ad Lib SOUND.COM - SET STATE

SI = 0003h
ES:BX -> WORD state = 0000h disabled
    = 0001h enabled

SeeAlso

    SI=0004


INT 65

65 - Ad Lib SOUND.COM - GET STATE

SI = 0004h

Return

        AX = 0000h all done playing sounds
   = else  still playing sounds

SeeAlso

    SI=0003


INT 65

65 - Ad Lib SOUND.COM - SET MODE

SI = 0006h
ES:BX -> WORD mode = 0000h melodic
   = 0001h percussive

SeeAlso

    SI=0007


INT 65

65 - Ad Lib SOUND.COM - GET MODE

SI = 0007h

Return

        AX = 0000h melodic
   = 0001h percussive

SeeAlso

    SI=0006


INT 65

65 - Ad Lib SOUND.COM - SET ACTIVE VOICE

SI = 000Ch
ES:BX -> WORD voice = 0000h to 0008h

SeeAlso

    SI=000D


INT 65

65 - Ad Lib SOUND.COM - GET ACTIVE VOICE

SI = 000Dh

Return

        AX = voice (0000h to 0008h)

SeeAlso

    SI=000C


INT 66

66 - reserved for user interrupt


INT 66

66 - Adaptec controllers - DRIVE 1 DATA

Note

     	this vector stores the third four bytes of the parameter table for
  hard disk 1

SeeAlso

    INT 64Adaptec"    INT 65Adaptec"    INT 67Adaptec


INT 66

66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE

SeeAlso

    INT 64DG10


INT 66

66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???

Notes

      	hooked but not used (IRET) by both redirector and server; called from
  server's INT 28 handler
TurboNET is a NetBIOS-based file redirector and server

SeeAlso

    INT 2F AX=8100


INT 66

66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information

SeeAlso

    INT 64Pdisk"    INT 67Pdisk


INT 66

66 - Microsoft Windows VITD.386 Virtual Interval Timer

Note

     	This Windows 3.x Virtual Device Driver implements a virtual timer
  which will expire and call INT 66.  This timer can be used to
  calculate elapsed execution time etc.


INT 66 AH=01

66 - BitFax Scheduler - SET MODE???

AH = 01h

SeeAlso

    INT 66 AH=02


INT 66 AH=02

66 - BitFax Scheduler - SET MODE???

AH = 02h

SeeAlso

    INT 66 AH=01


INT 66 AH=03

66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS

AH = 03h
???

Return

        ???

SeeAlso

    INT 66 AH=05


INT 66 AH=04

66 - BitFax Scheduler - GET STATUS???

AH = 04h

Return

        AX = ??? (0000h or 0001h)
DX = BitSched version???  (for versions >= 3.00)
    9796h (ver. 3.00)
    97E6h (ver. 3.02)
    92D0h (ver. 3.04.06)
    9510h (ver. 3.06.02)

SeeAlso

    INT 66 AH=06    INT 66 AX=3345    INT 2F AX=8000"FaxBIOS"


INT 66 AH=05

66 - BitFax Scheduler - CONVERT FILE AND SEND FAX

AH = 05h
BX:CX -> command block (see below)
???

Return

        ???

SeeAlso

    INT 66 AH=03

Table Formats

Command block:


INT 66 AH=06

66 - BitFax Scheduler - SET MODE???

AH = 06h

Return

        DX = BitSched version??? (same as AH=04h)

SeeAlso

    INT 66 AH=04


INT 66 AX=0688

66 - John W. Ratcliff (The IBM Digitized Sound Package)

AX = 0688h
???

Return

        ???

SeeAlso

    INT 66 AX=0689


INT 66 AX=0689

66 - John W. Ratcliff (The IBM Digitized Sound Package)

AX = 0689h
???

Return

        ???

SeeAlso

    INT 66 AX=0688


INT 66 AX=3345

66 - BitFax Scheduler - REMOVE TSR FROM MEMORY

AX = 3345h

Return

        AX = FFFFh error removing TSR

Note

     	the installation check consists of checking for the signature
  "BitFax Scheduler" beginning two bytes past the interrupt handler

SeeAlso

    INT 66 AH=04    INT 2F AH=2A    INT 2F AX=CB00


INT 66 AX=FFFB

66 - MicroHelp Stay-Res Plus - ???

AX = FFFBh
BX = FFFBh
???

Return

        ???

SeeAlso

    INT 66 AX=FFFE    INT 2DAMIS


INT 66 AX=FFFE

66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL

AX = FFFEh
BX = FFFEh

Return

        only if unsuccessful

Notes

      	installation check is for the interrupt handler to begin with the bytes
  FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to
  appear at offset 0005h (older versions) or the offset returned by
  AX=FFFFh/BX=FFF0h in the interrupt handler segment.
Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
  and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.

SeeAlso

    INT 66 AX=FFFB    INT 66 AX=FFFF    INT 2DAMIS


INT 66 AX=FFFF

66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME

AX = FFFFh
BX = FFF0h

Return

        DI = offset of program name in interrupt handler segment

SeeAlso

    INT 66 AX=FFFB    INT 66 AX=FFFE    INT 2DAMIS


INT 67

67 - Adaptec controllers - DRIVE 1 DATA

Note

     	this vector stores the last four bytes of the parameter table for
  hard disk 1

SeeAlso

    INT 64Adaptec"    INT 65Adaptec"    INT 66Adaptec


INT 67

67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information

SeeAlso

    INT 64Pdisk"    INT 66Pdisk


INT 67

67 - Sangoma CCPOP 3270 resident module

SeeAlso

    INT 61Sangoma"    INT 68Sangoma


INT 67

67 - CUCKOO.COM - INSTALLATION CHECK

Notes

      	this is not a vector; when loaded for the first time, CUCKOO.COM uses
  the last unused (0000h:0000h) vector in the range 60h-67h to store
  the signature value 434Ch:4F4Bh ('CLOK')
CUCKOO is a resident on-screen clock with optional hourly chime or
  cuckoo by an unknown author with revisions by Thomas A. Lundin


INT 67 AH=00

67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT

AH = 00h
DS:DX -> ASCIZ semaphore name (max 64 bytes)

Return

        AL = status
    00h successful
    01h invalid function
    02h semaphore already locked
    03h unable to lock semaphore
    04h semaphore space exhausted
AH = semaphore owner if status=02h

SeeAlso

    INT 67 AH=01    INT 67 AH=02"PC-NET"    INT 7F AH=00


INT 67 AH=01

67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE

AH = 01h
DS:DX -> ASCIZ semaphore name (max 64 bytes)

Return

        AL = status (see AH=00h)
AH = semaphore owner if status=02h

SeeAlso

    INT 67 AH=00    INT 67 AH=02"PC-NET"    INT 7F AH=01"Alloy"


INT 67 AH=02

67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE

AH = 02h
DS:DX -> ASCIZ semaphore name (max 64 bytes)

Return

        AL = status (see AH=00h)
AH = semaphore owner if status=02h

SeeAlso

    INT 67 AH=00    INT 67 AH=01"PC-NET"    INT 7F AH=02


INT 67 AH=3F

67 U - QEMM-386 v4.23+ - INSTALLATION CHECK

AH = 3Fh
CX = 5145h ("QE")
DX = 4D4Dh ("MM")

Return

        AH = 00h if installed
    ES:DI -> QEMM API entry point

Notes

      	if no other program has hooked INT 67, an alternate installation
  check is to test for the string
  "QUARTERDECK EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  handler's segment; the word at offset 12h contains the offset in
  the handler's segment of the API entry point
MICEMM (Micronics Expanded Memory Manager) versions 2.0C and 4D support
  the alternate QEMM installation check and entry point functions 00h,
  02h, and 03h; version 4D only provides the signature string if the
  commandline argument "DV" is provided
386MAX v6.01 responds to this call, but DESQview 2.42 does not
  recognize the returned entry point as providing QEMM's capabilities
  because a) only functions 0Ch (different from QEMM 0Ch) and
1000h-1009h are supported,
  b) status is returned as for EMS functions, not QEMM funcs
  c) the protected-mode entry point returned by function 1000h
only supports functions	0Ch, 1004h, 1005h, and 100Ah
the string check mentioned above is not supported by 386MAX

SeeAlso

    INT 67 AH=DD    INT 67 AX=5BF0    INT 67 AX=FFA5    INT 15 AX=11DE    INT 21 AX=4402"QEMM"

SeeAlso

    INT 21 AX=4402"386MAX"    INT 2F AX=D201    /BX=5145

Call QEMM entry point with:
AH = 00h get QEMM state
Return: CF clear
AL = QEMM state
    bit 0 set if QEMM turned OFF
    bit 1 set if in "Auto" mode
AH = 01h set QEMM state
AL = new state
    bit 0 set: place QEMM in OFF state
Return: CF clear if successful
CF set on error
AH = 02h get ???
Return: CF clear
AX = segment of ??? data structure
Data Structure
Offset	Size	Description
 00h	DWORD	page table entry for ???
???
AH = 03h get QEMM version
Return: CF clear
AX = BX = version in BCD
Notes:	the official docs only state that the version is
  returned in BX
MICEMM returns AX=0001h, BX unchanged
AH = 04h allocate 4K page and set AUTO/ON mode
Return: CF clear if successful
    DX = page number of a 4K page
CF set if unable to allocate page
Note:	QEMM mode unchanged if not AUTO/OFF
AH = 05h free 4K page and turn QEMM off
DX = page number returned by function 04h
Return: CF clear
Note:	QEMM mode unchanged if not AUTO/ON
AH = 06h make new mapping context???
DX = page number of 4K page to hold page table
Return: CF clear
Note:	copies page table into given page and then sets ???
  page table entry to point at copy
AH = 07h get mapping context
Return: CF clear
DX = page number of page table for current mapping
context
AH = 08h set mapping context???
DX = linear page number of page table
Return: CF clear
AH = 09h get linear page number for page table entry
CX = page table index
Return: CF clear
DX = linear page number
AH = 0Ah set linear page number for page table entry
CX = page table index
DX = linear page number
Return: CF clear
AH = 0Bh map 4K pages
BX = number of pages
CX = first page number (must be 0100h to allocate HMA)
DX = EMS handle (memory belonging to EMS handle will be mapped
into the address space beginning with the first page
allocated to the handle)
Return: AH = 00h
AH = 0Ch get available memory
Return: CF clear
BX = 0001h
CX = total 4K pages???
DX = number of 4K pages free
AH = 0Dh ??? (related to callbacks)
AL = 00h/01h/02h ???
Return: CF clear
AH = 0Eh set ??? callbacks
DS:BX -> FAR routine for ???
ES:DX -> FAR routine for ???
Return: CF clear
Note:	DS:BX callback should return BX=???; ES:DX is called
  with BX=???, and should set the ??? from which the
  other handler read the value of BX.  BH and BL
  appear to be separate values.
AH = 0Fh unmap 4K pages
CX = first page number
DX = number of pages
Return: CF clear
AL = 00h/01h if ???
Note:	if CX=0100h and DX=0010h, the HMA is remapped to
  simulate a disabled A20
AX = 1000h get protected-mode interface
DS:SI -> 16-byte buffer for two GDT entries
ES:DI -> buffer for 4K page table
Return: CF clear
EAX = offset of protected-mode API entry point
DS:SI buffer filled with two GDT descriptors
first is QEMM code segment, second is data???
ES:DI buffer filled with 4K page table
DI points to first unused page table entry
SeeAlso: INT 67/AX=DE01h
AX = 1001h get CPU debug registers
ES:DI -> buffer for debug registers (8 DWORDs)
Return: CF clear
BL = INT01 handling (see function 1002h)
ES:DI buffer filled
AX = 1002h set CPU debug registers
BL = INT01 handling
    00h	 reflect all debugging exceptions as V86-mode INT 01's
    else convert debugging exceptions other than single-step
   into V86-mode INT 03's, single-step to INT 01's
ES:DI -> buffer containing debug registers (8 DWORDs)
Return: CF clear
Notes:	identical to INT 67/AX=DE09h if BL=01h
the INT01 handling flag is set to 01h by the general-
  protection violation handler for certain privileged
  instructions
AX = 1003h get machine status word CR0
Return: CF clear
EAX = contents of CR0
SeeAlso: INT 67/AX=DE07h
AX = 1004h allocate a 4K page
Return: CF clear if successful
    EDX = linear address of allocated page
CF set on error
SeeAlso: INT 67/AX=DE04h
AX = 1005h free 4K page
EDX = linear address of page to free
Return: CF clear
SeeAlso: INT 67/AX=DE05h
AX = 1006h NOP
Return: CF set
AX = 1007h get maximum physical memory address
Return: CF clear
EDX = physical address of highest 4K memory page
SeeAlso: INT 67/AX=DE02h
AX = 1008h get physical address of page in first megabyte
CX = page number (linear address shifted right 12 bits)
Return: CF clear
EDX = linear address of page
SeeAlso: function 1F00h
AX = 1009h switch to protected mode
ESI = linear address in first megabyte of system reg values
(see INT 67/AX=DE0Ch)
interrupts disabled
Return: interrupts disabled
GDTR, IDTR, LDTR, TR loaded
SS:ESP must have at least 16 bytes space, and the
entry point is required to set up a new stack
before enabling interrupts
EAX, ESI, DS, ES, FS, GS destroyed
AX = 100Ah switch back to virtual-86 mode
DS = selector for data segment from function 1000h
SS:ESP in first megabyte of linear memory
interrupts disabled
STACK:	QWORD  return address from FAR call to 32-bit segment
DWORD  EIP
DWORD  CS
DWORD  reserved for EFLAGS
DWORD  ESP
DWORD  SS
DWORD  ES
DWORD  DS
DWORD  FS
DWORD  GS
will switch to virtual86 mode with interrupts disabled, all
  segment registers loaded, and EAX destroyed.
AH = 11h get memory type map
AL = zero/nonzero ??? (set by QEMM.COM but apparently ignored
by QEMM 6.00)
ES:DI -> 256-byte buffer for memory types
Return: CF clear
BL = ???
ES:DI buffer filled
Note:	each byte of the buffer corresponds to a 4K page, and
  contains the type of that page: 00h = mappable,
  02h = mapped ROM, 03h = high RAM, 04h = excluded,
  05h = video, 06h = ROM, 07h = adapter ROM,
  08h = split ROM, 09h = page frame, 0Ah = RAMmable,
  0Bh = conventional
AH = 12h get HIRAM chain
Return: CF clear
BX = segment of first MCB in high memory
    0000h if no high memory
AX = 1300h VIDRAMEGA???
BL = 00h copy ???
     nonzero copy ??? (reverse)
Return: CF clear
AL = 00h if all pages clean
   = 01h if any page dirty
AX = 1301h check if ???
DX:DI = start address of range to check ???
CX = length of range
Return: CF clear
CX = ??? (0000h or 1000h)
AX = 1302h ???
BL = ???
BH = ???
CX = ???
SI = offset of ???
DI = offset of ???
???
Return: CF clear
???
Note:	disables certain interrupts at the two 8259 PICs during
  execution; also modifies CRT controller during
  execution under certain circumstances
AX = 1303h ??? EMS allocation
BX = number of pages of EMS to allocate
???
Return: CF clear if successful
CF set on error
???
AX = 1304h EMS deallocation
DX = EMS handle
Return: CF clear
AX = 1305h ???
CX = ???
Return: CF clear
Note:	disables certain interrupts at the two 8259 PICs during
  execution (see AX=130Ch)
AX = 1306h set DESQview critical section counter address
ES:BX -> WORD DESQview critical section counter or 0000h:0000h
Return: CF clear
Note:	also sets pointer in low-memory part of QEMM to current
  value of INT 15 if ES:BX not 0000h:0000h
AX = 1307h ???
Return: CF clear
Note:	disables certain interrupts at the two 8259 PICs during
  execution (see AX=130Ch)
AX = 1308h ???
BL = ??? (zero/nonzero)
Return: CF clear
AX = 1309h Hercules mode-change support
ES:BX -> new address for Hercules mode-change callback
Return: CF clear
Note:	the callback function is called whenever the CRTC mode
  register is written, with AL set to the value written
AX = 130Ah virtualize EGA/VGA I/O ports 03C8h/03C9h???
CX:DX -> buffer for storing CRTC register contents???
or 0000h:0000h to disable
Return: CF clear
AX = 130Bh ???
BL = ???
Return: CF clear
???
AX = 130Ch set interrupts to mask
BX = interrupts to mask out during AX=1302h,AX=1307h,AX=1308h,
AX=130Dh,AX=1310h (BL = master PIC, BH = slave PIC)
Return: CF clear
AX = 130Dh ???
???
Return: CF clear
Note:	disables certain interrupts at the two 8259 PICs during
  execution (see AX=130Ch)
AX = 130Eh ??? (modifies CRT controller setup)
???
Return: CF clear
AX = 130Fh reset ???
Return: CF clear
AX = 1310h ???
???
Return: CF clear
Note:	disables certain interrupts at the two 8259 PICs during
  execution (see AX=130Ch)
AX = 1311h set ???
BL = ???
Return: CF clear
AX = 1312h (v6.02) NOP???
Note:	called by DV 2.42, but appears to be a NOP in QEMM 6.02
AX = 1400h ???
ES:DI -> ??? data structure (at least 24 bytes)
BL = ???
Return: AX = ???
Data structure
Offset	Size	Description
 00h	WORD	???
 02h	DWORD	far pointer to ???
 06h	DWORD	far pointer to ??? pointer array (see below)
 0Ah	DWORD	far pointer to ???
 0Eh	DWORD	???
 12h	WORD	segment of ???
 14h	DWORD	far pointer to ???
Pointer array
Offset	Size	Description
 00h	WORD	number of pointers to follow
 02h  N DWORDs	far pointers to ???
Note: QEMM converts the pointers into linear addresses in place
AX = 1401h ???
Return: CF clear
???
AX = 1402h ???
BL = function
    00h NOP
    01h ???
    02h ???
    other ???
ES:DI -> ???
Return: CF clear
???
Data structure
Offset	Size	Description
 00h	WORD	segment of ??? (X, word at X:0136h set to X)
 02h	WORD	segment of ??? (word at X:0124h set to this)
 04h	WORD	number of paragraphs of ???
 06h  3 WORDs	??? (copied to X:0000h)
 0Ch	WORD	???
AX = 1403h add ??? to list and ??? (execute func 1406h)
ES:DI -> ??? structure added to end of ??? list
(at least 31 bytes, DWORD at offset 06h used for
 storing pointer to next struc, WORD at offset 00h
 seems to be a key or index)
Return: CF clear
AX = 1404h NOP
AX = 1405h remove ??? from ??? list
BX = key???
Return: CF clear
AX = 1406h ???
???
Return: CF clear
???
AX = 1407h ???
???
Return: CF clear
???
AX = 1408h ???
???
Return: CF clear
???
AX = 1409h ???
???
Return: CF clear
???
AX = 140Ah ???
BX = ???
Return: CF clear
???
AX = 140Bh ???
BX = ???
Return: CF clear
SI = segment of 256-byte buffer???
AH = 15h ???
ES:BX -> ??? or 0000h:0000h
Return: CF clear
     ---QEMM v5.00+ ---
AX = 1600h get memory access status
ES:DI -> 256-byte buffer
Return: ES:DI buffer filled
Note:	each byte of the buffer indicates the status of a 4K
  page (bit 0 set if read, bit 1 set if written)
AX = 1601h set memory access status
ES:DI -> 256-byte buffer containing access statuses (see above)
AH = 17h get memory usage statistics
ES:DI -> 81-byte buffer for memory statistics (see below)
Return: CF clear
     ---QEMM v5.11+ ---
AH = 18h check whether conventional memory mapped into address range
ES:BX = starting address
CX = number of 4K pages
Return: CF clear
AL = 00h one or more pages is remapped
     01h all pages in range are conventional memory
(physical address == virtual address)
AH = 19h NOP
Return: CF set
AH = 1Ah I/O port access
AL = subfunction
    00h get byte from I/O port
Return: BL = port value
    01h send byte to I/O port
BL = value to send
    02h send byte to I/O port, get byte from following port
BH = value to send
Return: BL = value read
    03h send bytes to two consecutive I/O ports
BH = value for first I/O port (DX)
BL = value for second I/O port (DX+1)
DX = port number
Return: CF clear
AH = 1Bh MS Windows 3 support
AL = subfunction
    00h get ???
ES:DI -> buffer for ??? data structure
Return: CF set on error
CF clear if successful
Data structure:
Offset	Size	Description
 00h	DWORD	pointer to ???
 04h	BYTE	??? (v6.00 sets to 01h)
 05h	BYTE	??? (v6.00 sets to 00h or 0Bh)
SeeAlso: INT 21/AX=4402h"QEMM"
    01h ???
Return: CF set on error
CF clear if successful
    02h ???
Return: CF set on error
CF clear if successful
    03h MS Windows initializing
CX = segment from which Windows init broadcast made???
DL = Windows startup flags???
DI = Windows version number (major in upper byte)
Return: ???
SeeAlso: INT 2F/AX=1605h
    04h MS Windows terminating
Return: CF clear
    05h determine whether program is driver???
DS:DX -> ASCIZ filename
Return: CF clear
AL = 01h if string ends in ".DRV"
   = FFh if string ends in "GDI.EXE"
   = 00h otherwise
    06h ???
CX = length of data pointed at by DS:DX
DS:DX -> ???
Return: CF clear
    07h BUG: QEMM 6.00-6.03 accept this and branch randomly
    else Return: CF set
AH = 1Ch protected-mode hardware interrupt handlers ???
AL = subfunction
    00h restore??? IRQ0-7 handlers
    01h set??? IRQ0-7 handlers
ES:DI -> 8 DWORDs containing ???
    02h restore??? IRQ8-15 handlers
    03h set??? IRQ8-15 handlers
ES:DI -> 8 DWORDs containing ???
BUG: although the jump table only contains four entries,
QEMM 6.00 will attempt to use it for any value of
AL between 00h and 2Ah, thus branching unpredictably
for AL=04h-2Ah
     ---QEMM v6.00+ ---
AH = 1Dh Stealth interrupts
AL = subfunction
    00h switch to pre-Stealth interrupt vector table
Note:	also switches VGA Save table pointer
  (0040h:00A8h)	and overwrites the vectors
  currently assigned for use by the two
  interrupt controllers (see INT 67/AX=DE0Ah)
  with the vectors for INT 08-0F and 70-77 (to
  avoid crashing the system).
    01h restore user interrupt vector table
Notes:	interrupts should be disabled around the
  AX=1D00h and AX=1D01h calls because QEMM does
  not modify the memory maps to map in ROM, so
  an interrupt could be disastrous
clears any pending IRQ7 at end of function
    else
Return: CF set
AH = 1Eh Stealth information
AL = subfunction
    00h get Stealth configuration
Return: BL = flags
    bit 0: conventional memory sorted
    bit 1: conventional memory filled
    bit 2: ???
    bit 3: ???
    bit 4: expanded memory is in use
    bit 5: ???
BH = ??? (always 00h for v6.00)
CL = stealth type (00h none,46h Frame,4Dh Map)
CH = ??? (zero/nonzero important)
DX = ??? (always 0000h for v6.00)
SI = ??? (always 0000h for v6.00)
DI = ??? (always 0000h for v6.00)
    01h get number of Stealth'ed ROMs
Return: CF clear
BX = number of Stealth'ed ROMs
    02h get Stealth'ed ROM info
ES:DI -> buffer for Stealth ROM info (see below)
Return: CF clear
BX = number of Stealth'ed ROMs
ES:DI buffer filled
    else
Return: CF set
AH = 1Fh page table manipulation
AL = subfunction
    00h get page table entry
CX = page number
Return: EDX = page table entry
CF clear
    01h set page table entry
CX = page number
EDX = page table entry
Return: CF clear
SeeAlso: function 1008h
    else
Return: CF set
AH = 20h asynchronous disk access support???
AL = subfunction
    00h get ???
Return: CF clear
BL = flags
    bit 7: ??? (set if Stealth:F or :M active)
    bit 0: ???
    01h set ???
BL = ??? (bit 0 only)
Return: CF clear
    else
Return: CF set
AH = 21h Stealth support
AL = subfunction
    00h copy data from Stealthed address space
DS:SI -> start address of hidden memory to copy
ES:DI -> buffer for copied data
ECX = number of bytes to copy
Return: CF clear if successful
CF set on error (DS:SI < C000h:0000h or
 DS:SI + ECX > 1M)
    else
Return: CF set
---QEMM v6.03 only---
AH = 22h DESQview/X support
AL = subfunction
    00h get ???
Return: CF clear
ES:DI -> ???
    01h set ???
ES:DI -> ??? or 0000h:0000h
Return: CF clear if successful
CF set on error
other
Return: CF set

Table Formats

QEMM 6.0 memory statistics:
Stealth ROM info [array]:


INT 67 AH=40

67 - LIM EMS - GET MANAGER STATUS

AH = 40h

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    84h undefined function requested by application

Note

     	this call can be used only after establishing that the EMS driver is in
  fact present

SeeAlso

    INT 67 AH=3F    INT 67 AX=FFA5


INT 67 AH=41

67 - LIM EMS - GET PAGE FRAME SEGMENT

AH = 41h

Return

        AH = 00h function successful
    BX = segment of page frame
AH = error code (see AH=40h)

SeeAlso

    INT 67 AH=58    INT 67 AH=68


INT 67 AH=42

67 - LIM EMS - GET NUMBER OF PAGES

AH = 42h

Return

        AH = 00h function successful
    BX = number of unallocated pages
    DX = total number of pages
AH = error code (see AH=40h)

SeeAlso

    INT 2F AX=2702


INT 67 AH=43

67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY

AH = 43h
BX = number of logical pages to allocate

Return

        AH = status
    00h function successful
DX = handle
    80h internal error
    81h hardware malfunction
    84h undefined function requested
    85h no more handles available
    87h more pages requested than physically exist
    88h more pages requested than currently available
    89h zero pages requested

SeeAlso

    INT 67 AH=45


INT 67 AH=44

67 - LIM EMS - MAP MEMORY

AH = 44h
AL = physical page number (0-3)
BX = logical page number
DX = handle

Return

        AH = status
    00h function successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    8Ah invalid logical page number
    8Bh illegal physical-page number

SeeAlso

    INT 67 AH=69


INT 67 AH=45

67 - LIM EMS - RELEASE HANDLE AND MEMORY

AH = 45h
DX = EMM handle

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    86h error in save or restore of mapping context

SeeAlso

    INT 67 AH=43


INT 67 AH=46

67 - LIM EMS - GET EMM VERSION

AH = 46h

Return

        AH = status
    00h successful
AL = EMM version number
    80h internal error
    81h hardware malfunction
    84h undefined function requested


INT 67 AH=47

67 - LIM EMS - SAVE MAPPING CONTEXT

AH = 47h
DX = handle

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    8Ch page-mapping hardware state save area is full
    8Dh save of mapping context failed

SeeAlso

    INT 67 AH=48


INT 67 AH=48

67 - LIM EMS - RESTORE MAPPING CONTEXT

AH = 48h
DX = handle

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    8Eh restore of mapping context failed

SeeAlso

    INT 67 AH=47


INT 67 AH=49

67 - LIM EMS - reserved - GET I/O PORT ADDRESSES

AH = 49h

Note

     	defined in EMS 3.0, but undocumented in EMS 3.2


INT 67 AH=4A

67 - LIM EMS - reserved - GET TRANSLATION ARRAY

AH = 4Ah

Note

     	defined in EMS 3.0, but undocumented in EMS 3.2


INT 67 AH=4B

67 - LIM EMS - GET NUMBER OF EMM HANDLES

AH = 4Bh

Return

        AH = status
    00h successful
BX = number of EMM handles
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested


INT 67 AH=4C

67 - LIM EMS - GET PAGES OWNED BY HANDLE

AH = 4Ch
DX = EMM handle

Return

        AH = status
    00h successful
BX = number of logical pages
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested

SeeAlso

    INT 67 AH=4D


INT 67 AH=4D

67 - LIM EMS - GET PAGES FOR ALL HANDLES

AH = 4Dh
ES:DI -> array to receive information

Return

        AH = status
    00h successful
BX = number of active EMM handles
array filled with 2-word entries, consisting of a handle
  and the number of pages allocated to that handle
    80h internal error
    81h hardware malfunction
    84h undefined function requested

SeeAlso

    INT 67 AH=4C


INT 67 AH=4E

67 - LIM EMS - GET OR SET PAGE MAP

AH = 4Eh
AL = 00h if getting mapping registers
     01h if setting mapping registers
     02h if getting and setting mapping registers at once
     03h if getting size of page-mapping array
DS:SI -> array holding information (AL=01/02)
ES:DI -> array to receive information (AL=00/02)

Return

        AH = status
    00h successful
AL = bytes in page-mapping array (AL=03h only)
array pointed to by ES:DI receives mapping info (AL=00h/02h)
    80h internal error
    81h hardware malfunction
    84h undefined function requested
    8Fh undefined subfunction parameter
    A3h contents of source array corrupted (EMS 4.0?)

Note

     	this function was designed to be used by multitasking operating systems
  and should not ordinarily be used by appplication software.

SeeAlso

    INT 67 AH=4F


INT 67 AH=4F

67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP

AH = 4Fh
AL = subfunction
    00h get partial page map
       DS:SI -> structure containing list of segments whose mapping
contexts are to be saved
       ES:DI -> array to receive page map
    01h set partial page map
       DS:SI -> structure containing saved partial page map
    02h get size of partial page map
       BX = number of mappable segments in the partial map to be saved

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    84h undefined function requested
    8Bh one of specified segments is not mappable
    8Fh undefined subfunction parameter
    A3h contents of partial page map corrupted or count of mappable
segments exceeds total number of mappable segments in system
AL = size of partial page map for subfunction 02h

SeeAlso

    INT 67 AH=4E


INT 67 AH=50

67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES

AH = 50h
AL = subfunction
    00h use physical page numbers
    01h use segment addresses
DX = handle
CX = number of entries in array
DS:SI -> mapping array (see below)

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    8Ah one or more logical pages are invalid
    8Bh one or more physical pages are invalid
    8Fh invalid subfunction

SeeAlso

    INT 67 AH=40

Table Formats

Mapping array entry:


INT 67 AH=51

67 - LIM EMS 4.0 - REALLOCATE PAGES

AH = 51h
DX = handle
BX = number of pages to be allocated to handle

Return

        BX = actual number of pages allocated to handle
AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    87h more pages requested than present in system
    88h more pages requested than currently available


INT 67 AH=52

67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES

AH = 52h
AL = subfunction
    00h get handle attributes
Return: AL = attribute
    00h handle is volatile
    01h handle is nonvolatile
    01h set handle attributes
BL = new attribute (see returned AL)
    02h get attribute capability
Return: AL = attribute capability
    00h only volatile handles supported
    01h both volatile and non-volatile supported
DX = handle

Return

       	AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    8Fh undefined subfunction
    90h undefined attribute type
    91h feature not supported

SeeAlso

    INT 67 AH=53


INT 67 AH=53

67 - LIM EMS 4.0 - GET/SET HANDLE NAME

AH = 53h
AL = subfunction
    00h get handle name
       ES:DI -> 8-byte buffer for handle name
    01h set handle name
       DS:SI -> 8-byte handle name
DX = handle

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    83h invalid handle
    84h undefined function requested
    8Fh undefined subfunction
    A1h duplicate handle name

SeeAlso

    INT 67 AH=52


INT 67 AH=54

67 - LIM EMS 4.0 - GET HANDLE DIRECTORY

AH = 54h
AL = subfunction
    00h get handle directory
       ES:DI -> buffer for handle directory (see below)
    01h search for named handle
       DS:SI -> 8-byte name
    02h get total number of handles

Return

        AL = number of entries in handle directory (subfunction 00h)
DX = value of named handle (subfunction 01h)
BX = total number of handles (subfunction 02h)
AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    84h undefined function requested
    8Fh undefined subfunction
    A0h no such handle name
    A1h a handle found had no name

Table Formats

Handle directory entry:


INT 67 AH=55

67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP

AH = 55h
AL = subfunction
    00h physical page numbers provided by caller
    01h segment addresses provided by caller
DX = handle
DS:SI -> structure containing map and jump address

Return

        (at target address unless error)
AH = status
    00h successful
    80h internal error
    81h hardware failure
    83h invalid handle
    84h undefined function requested
    8Ah invalid logical page number encountered
    8Bh invalid physical page number encountered
    8Fh invalid subfunction

SeeAlso

    INT 67 AH=56


INT 67 AH=56

67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL

AH = 56h
AL = subfunction
    00h physical page numbers provided by caller
DX = handle
DS:SI -> structure containing page map and call address
    01h segment addresses provided by caller
DX = handle
DS:SI -> structure containing page map and call address
    02h get page map stack space required
Return: BX = stack space required

Return

        (if successful, the target address is called.  Use a RETF to return and
 restore mapping context)
AH = status (see AH=55h)

SeeAlso

    INT 67 AH=55


INT 67 AH=57

67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION

AH = 57h
AL = subfunction
    00h move memory region
    01h exchange memory region
DS:SI -> structure describing source and destination (see below)

Return

        AH = status
    00h successful
    80h internal error
    81h hardware failure
    83h invalid handle
    84h undefined function requested
    8Ah invalid logical page number encountered
    8Fh undefined subfunction
    92h successful, but a portion of the source region has been
overwritten
    93h length of source or destination region exceeds length of region
allocated to either source or destination handle
    94h conventional and expanded memory regions overlap
    95h offset within logical page exceeds size of logical page
    96h region length exceeds 1M
    97h source and destination EMS regions have same handle and overlap
    98h memory source or destination type undefined
    A2h attempted to wrap around 1M conventional address space

Note

     	source and destination may overlap for a move, in which case the copy
  direction is chosen such that the destination receives an intact copy
  of the source region

Table Formats

EMS copy data:


INT 67 AH=58

67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY

AH = 58h
AL = subfunction
    00h get mappable physical address array
ES:DI -> buffer to be filled with array
    01h get number of entries in m.p.a. array

Return

        CX = number of entries in array
AH = status
    00h successful
    80h internal error
    81h hardware failure
    84h undefined function requested
    8Fh undefined subfunction

Note

     	the returned array for subfunction 00h is filled in physical segment
  address order

Table Formats

Mappable physical address entry:


INT 67 AH=59

67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION

AH = 59h
AL = subfunction
    00h get hardware configuration array
ES:DI -> buffer to be filled with array (see below)
    01h get unallocated raw page count
Return: BX = unallocated raw pages
DX = total raw pages

Return

       	AH = status
    00h successful
    80h internal error
    81h hardware failure
    84h undefined function requested
    8Fh undefined subfunction
    A4h access denied by operating system

Note

     	subfunction 00h is for use by operating systems only, and can be
  enabled or disabled at any time by the operating system

Table Formats

Hardware configuration array:


INT 67 AH=5A

67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES

AH = 5Ah
AL = subfunction
    00h allocate standard pages
    01h allocate raw pages
BX = number of pages to allocate

Return

        DX = handle
AH = status
    00h successful
    80h internal error
    81h hardware failure
    84h undefined function requested
    85h no more handles available
    87h insufficient memory pages in system
    88h insufficient memory pages available
    8Fh undefined subfunction


INT 67 AH=5B

67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET

AH = 5Bh
AL = subfunction
    00h get alternate map register set
Return: BL = current active alternate map register set number
ES:DI -> map register context save area if BL=00h
    01h set alternate map register set
BL = new alternate map register set number
ES:DI -> map register context save area if BL=0
    02h get alternate map save array size
Return: DX = array size in bytes
    03h allocate alternate map register set
Return: BL = number of map register set; 00h = not supported
    04h deallocate alternate map register set
BL = number of alternate map register set

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    84h undefined function requested
    8Fh undefined subfunction
    9Ah specified alternate map register set not supported
    9Bh all alternate map register sets currently allocated
    9Ch alternate map register sets not supported
    9Dh undefined or unallocated alternate map register set
    A3h source array corrupted
    A4h operating system denied access

Note

     	this function is for use by operating systems only, and can be
  enabled or disabled at any time by the operating system


INT 67 AH=5B

67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS

AH = 5Bh
AL = subfunction
    05h allocate DMA register set
Return: BL = DMA register set number, 00h if not supported
    06h enable DMA on alternate map register set
       BL = DMA register set number
       DL = DMA channel number
    07h disable DMA on alternate map register set
       BL = DMA register set number
    08h deallocate DMA register set
       BL = DMA register set number

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    84h undefined function requested
    8Fh undefined subfunction
    9Ah specified DMA register set not supported
    9Bh all DMA register sets currently allocated
    9Ch alternate DMA sets not supported
    9Dh undefined or unallocated DMA register set
    9Eh dedicated DMA channels not supported
    9Fh specified dedicated DMA channel not supported
    A3h source array corrupted
    A4h operating system denied access

Note

     	this function is for use by operating systems only, and can be
  enabled or disabled at any time by the operating system


INT 67 AX=5BE0

67 - MICEMM v4D - GET LINEAR ADDRESS OF MEMORY

AX = 5BE0h
ES:BX -> memory for which to get linear address

Return

        AH = 00h
DX:CX = linear address of physical memory corresponding to ES:BX

SeeAlso

    INT 67 AX=5BF0    INT 67 AX=5BF1


INT 67 AX=5BF0

67 - MICEMM v4D - INSTALLATION CHECK

AX = 5BF0h

Return

        AH = 00h if MICEMM present
    BX = code segment of driver

Note

     	MICEMM is the Micronics Expanded Memory Manager

SeeAlso

    INT 67 AH=3F    INT 67 AX=5BE0    INT 67 AX=5BF1


INT 67 AX=5BF1

67 - MICEMM v4D - GET MEMORY TYPES

AX = 5BF1h
ES:BX -> 256-byte buffer for memory types

Return

        AH = 00h
ES:BX buffer filled

Note

     	each byte in the buffer specifies the type of a 4K page of memory:
    00h unused
    02h DOS extension
    04h shadowed ROM
    08h mappable EMS
    10h page frame
    20h ROM
    40h reserved (video memory, etc)
    80h RAM

SeeAlso

    INT 67 AX=5BE0    INT 67 AX=5BF0


INT 67 AH=5C

67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT

AH = 5Ch

Return

        AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    84h undefined function requested


INT 67 AH=5D

67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS

AH = 5Dh
AL = subfunction
    00h enable OS Function Set
    01h disable OS Function Set
    02h return access key (resets memory manager, returns access key at
next invocation)
BX,CX = access key returned by first invocation

Return

        BX,CX = access key, returned only on first invocation of function
AH = status
    00h successful
    80h internal error
    81h hardware malfunction
    84h undefined function requested
    8Fh undefined subfunction
    A4h operating system denied access


INT 67 AH=60

67 - EEMS - GET PHYSICAL WINDOW ARRAY

AH = 60h
ES:DI -> buffer

Return

        AH = status
AL = number of entries
buffer at ES:DI filled


INT 67 AH=61

67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT

AH = 61h
???

Return

        ???

Note

     	can be used by accelerator card manufacturer to flush RAM cache,
  ensuring that the cache accurately reflects what the processor would
  see without the cache.


INT 67 AH=68

67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM

AH = 68h
ES:DI -> buffer

Return

        AH = status
AL = number of entries
buffer at ES:DI filled

Note

     	equivalent to LIM 4.0 function 58h


INT 67 AH=69

67 - EEMS - MAP PAGE INTO FRAME

AH = 69h
AL = frame number
BX = page number
DX = handle

Return

        AH = status

Note

     	similar to EMS function 44h

SeeAlso

    INT 67 AH=44    INT 67 AH=50    INT 67 AH=6A


INT 67 AH=6A

67 - EEMS - PAGE MAPPING

AH = 6Ah
AL = subfunction
    00h save partial page map
CH = first page frame
CL = number of frames
ES:DI -> buffer which is to be filled
    01h restore partial page map
CH = first page frame
CL = number of frames
DI:SI -> previously saved page map
    02h save and restore partial page map
CH = first page frame
CL = number of frames
ES:DI = buffer for current page map
DI:SI = new page map
    03h get size of save array
CH = first page frame
CL = number of frames
Return: AL = size of array in bytes
    04h switch to standard map register setting
    05h switch to alternate map register setting
    06h deallocate pages mapped to frames in conventional memory
CH = first page frame
CL = number of frames

Return

        AH = status

Note

     	similar to EMS function 4Eh, except that a subrange of pages can be
  specified

SeeAlso

    INT 67 AH=69


INT 67 AH=DD

67 - Quadtel QMAPS - API

AH = DDh
AL = function
???

Return

        ???

Notes

      	details are not yet available
Hewlett-Packard's HPMM.SYS is a licensed version of QMAPS, and thus
  supports this API

SeeAlso

    INT 67 AH=3F    INT 67 AX=FFA5


INT 67 AX=DE00

67 - Virtual Control Program Interface - INSTALLATION CHECK

AX = DE00h

Return

        AH = 00h    VCPI is present
    BH = major version number
    BL = minor version number
AH nonzero  VCPI not present

SeeAlso

    INT 2F AX=1687


INT 67 AX=DE01

67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE

AX = DE01h
ES:DI -> 4K page table buffer
DS:SI -> three descriptor table entries in GDT
first becomes code segment descriptor, other two for use by
main control program

Return

        AH = 00h successful
    DI -> first unused page table entry in buffer
    EBX -> protected mode entry point in code segment
AH = nonzero  failed

Note

     	protected mode entry point may be called with AX=DE00h-DE05h and
  AX=DE0Ch (in each case, all other registers as appropriate for
  the function)

SeeAlso

    INT 2F AX=1687    INT 67 AH=3F

QEMM v6.03 protected mode entry point may also be called with:
AX = DF00h ???
???
Return: ???
AX = DF01h ???
???
Return: ???


INT 67 AX=DE02

67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS

AX = DE02h

Return

        AH = 00h  successful
    EDX = physical address of highest 4K memory page
AH nonzero: failed

SeeAlso

    INT 67 AH=3F


INT 67 AX=DE03

67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES

AX = DE03h

Return

        AH = 00h  successful
    EDX = number of free 4K pages
AH nonzero: failed

Notes

      	returns total number of pages available to ALL tasks in system
also available in protected mode by calling the protected-mode VCPI
  entry point

SeeAlso

    INT 67 AX=DE04


INT 67 AX=DE04

67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE

AX = DE04h

Return

        AH = 00h successful
    EDX = physical address of allocated page
AH nonzero: failed

Notes

      	the client program is responsible for freeing all memory allocated
  with this call before terminating
also available in protected mode by calling the protected-mode VCPI
  entry point

SeeAlso

    INT 67 AH=3F    INT 67 AX=DE03    INT 67 AX=DE05


INT 67 AX=DE05

67 - Virtual Control Program Interface - FREE 4K PAGE

AX = DE05h
EDX = physical address of 4K page

Return

        AH = 00h successful
AH nonzero: failed

Note

     	also available in protected mode by calling the protected-mode VCPI
  entry point

SeeAlso

    INT 67 AH=3F    INT 67 AX=DE04


INT 67 AX=DE06

67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB

AX = DE06h
CX = page number (linear address shifted right 12 bits)

Return

        AH = 00h successful
    EDX = physical address of page
AH nonzero: invalid page number (AH = 8Bh recommended)


INT 67 AX=DE07

67 - Virtual Control Program Interface - READ CR0

AX = DE07h

Return

        AH = 00h
EBX = value of Control Register 0

SeeAlso

    INT 67 AH=3F    INT 67 AX=DE07


INT 67 AX=DE08

67 - Virtual Control Program Interface - READ DEBUG REGISTERS

AX = DE08h
ES:DI -> array of 8 DWORDs

Return

        AH = 00h
buffer filled with DR0 first, DR7 last, DR4 and DR5 unused

SeeAlso

    INT 67 AH=3F    INT 67 AX=DE09


INT 67 AX=DE09

67 - Virtual Control Program Interface - SET DEBUG REGISTERS

AX = DE09h
ES:DI -> array of 8 DWORDs holding new values of debug registers

Return

        AH = 00h

Note

     	values for DR4 and DR5 ignored

SeeAlso

    INT 67 AH=3F    INT 67 AX=DE08


INT 67 AX=DE0A

67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS

AX = DE0Ah

Return

        AH = 00h successful
    BX = first vector used by master 8259 (IRQ0)
    CX = first vector used by slave 8259 (IRQ8)
AH nonzero: failed

Note

     	CX is undefined in systems without a slave 8259

SeeAlso

    INT 67 AX=DE0B    INT 21 AX=250C    INT 31 AX=0400


INT 67 AX=DE0B

67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS

AX = DE0Bh
BX = first vector used by master 8259
CX = first vector used by slave 8259
interrupts disabled

Return

        AH = 00h successful
AH nonzero: failed

Notes

      	This call merely informs the server that the client has changed the
  interrupt mappings.  The client may not change the mappings if they
  have already been changed by the server or another client, and is
  responsible for restoring the original mappings before terminating.

SeeAlso

    INT 67 AX=DE0A


INT 67 AX=DE0C

67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE

AX = DE0Ch
ESI = linear address in first megabyte of values for system registers
interrupts disabled

Return

        interrupts disabled
GDTR, IDTR, LDTR, TR loaded
SS:ESP must have at least 16 bytes space, and the entry point is
required to set up a new stack before enabling interrupts
EAX, ESI, DS, ES, FS, GS destroyed

SeeAlso

    INT 67 AH=3F    INT 15 AH=89    INT 38 AH=10

Note

     	in protected mode, calling the protected-mode VCPI entry point with
  AX = DE0Ch
  DS = segment selector mapping entire linear address space obtained
via AX=DE01h
  SS:ESP in first megabyte of linear memory
  STACK:QWORD  return address from FAR call to 32-bit segment
DWORD  EIP
DWORD  CS
DWORD  reserved for EFLAGS
DWORD  ESP
DWORD  SS
DWORD  ES
DWORD  DS
DWORD  FS
DWORD  GS
  and interrupts disabled, will switch to virtual86 mode with
  interrupts disabled, all segment registers loaded, and EAX destroyed.

Table Formats

System register values for switch to protected mode:


INT 67 AX=FFA5

67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK

AX = FFA5h

Return

        AX = 845Ah if loaded
    BX:CX -> API entry point

Notes

      	this call is available even if EMM386 is not providing EMS
if no other program has hooked INT 67, an alternate installation
  check is to search for the string
  "MICROSOFT EXPANDED MEMORY MANAGER 386" early in the INT 67
  handler's segment, usually at offset 14h

SeeAlso

    INT 67 AH=3F

Call API entry point with:
AH = 00h get memory manager's status
    Return: AH = status
bit 0: not active (OFF)
bit 1: in "Auto" mode
AH = 01h set memory manager's state
    AL = new state (00h ON, 01h OFF, 02h AUTO)
AH = 02h Weitek coprocessor support
    AL = subfunction
00h get Weitek support state
    Return: AL = status
bit 0: Weitek coprocessor is present
bit 1: Weitek support is enabled
01h turn on Weitek support
02h turn off Weitek support
     --- v4.20-4.41 only ---
AH = 03h Windows support???
    AL = subfunction (00h, 01h)
AH = 04h print copyright notice to standard output
 (using INT 21/AH=09h)
AH = 05h print available report
 (the one shown when running EMM386 from the DOS prompt)


INT 68

68 - Sangoma CCPOP 3270 resident module

SeeAlso

    INT 67Sangoma"    INT 92Sangoma


INT 68 AH=01

68 - APPC/PC - NETWORK DEVICE CONTROL

AH = 01h
DS:DX -> control block

Table Formats

Control block:
Values for return code:
 0000h	successful
 0001h	BAD_TP_ID
 0002h	BAD_CONV_ID
 0003h	bad logical unit ID
 0008h	no physical unit attached
 0110h	bad state
 01B1h	BAD_PART_LUNAME
 01B2h	bad mode name
 0201h	physical unit already active
 0211h	logical unit already active
 0212h	BAD_PART_SESS
 0213h	BAD_RU_SIZES
 0214h	BAD_MODE_SESS
 0216h	BAD_PACING_CNT
 0219h	EXTREME_RUS
 021Ah	SNASVCMG_1
 0223h	SSCP_CONNECTED_LU
 0230h	invalid change
 0243h	too many TPs
 0272h	adapter close failure
 0281h	GET_ALLOC_BAD_TYPE
 0282h	unsuccessful
 0283h	DLC failure
 0284h	unrecognized DLC
 0286h	duplicate DLC
 0301h	SSCP_PU_SESSION_NOT_ACTIVE
 0302h	data exceeds RU size
 0401h	invalid direction
 0402h	invalid type
 0403h	segment overlap
 0404h	invalid first character
 0405h	table error
 0406h	conversion error
     F0010000h	APPC disabled
     F0020000h	APPC busy
     F0030000h	APPC abended
     F0040000h	incomplete

Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
pointers are called by pushing the DWORD pointer to the verb on the stack and
then performing a FAR call.

ACCESS_LU_LU_PW verb:
CREATE_TP verb:
SYSLOG verb:


INT 68 AH=02

68 - APPC/PC - CONNECTION CONTROL

AH = 02h
DS:DX -> control block

Table Formats

Control block:
Values for primary return code:
 0000h	successful
 0001h	parameter check
 0002h	state check
 0003h	allocation error
 0005h	deallocate abended
 0006h	deallocate abended program
 0007h	deallocate abended SVC
 0008h	deallocate abended timer
 0009h	deallocate normal return
 000Ah	data posting blocked
 000Bh	posting not active
 000Ch	PROG_ERROR_NO_TRUNC
 000Dh	PROG_ERROR_TRUNC
 000Eh	PROG_ERROR_PURGING
 000Fh	CONV_FAILURE_RETRY
 0010h	CONV_FAILURE_NO_RETRY
 0011h	SVC_ERROR_NO_TRUNC
 0012h	SVC_ERROR_TRUNC
 0013h	SVC_ERROR_PURGING
 0014h	unsuccessful
 0018h	CNOS partner logical unit reject
 0019h	conversation type mixed
 F001h	APPC disabled
 F002h	APPC busy
 F003h	APPC abended
 F004h	incomplete

Values for error code:
 0001h bad TP ID
 0002h bad conversation ID
 0004h allocation error, no retry
 0005h allocation error, retry
 0006h data area crosses segment boundary
 0010h bad TPN length
 0011h bad CONV length
 0012h bad SYNC level
 0013h bad security selection
 0014h bad return control
 0015h SEC_TOKENS too big
 0016h PIP_LEN incorrect
 0017h no use of SNASVCMG
 0018h unknown partner mode
 0031h confirm: SYNC_NONE
 0032h confirm: bad state
 0033h confirm: NOT_LL_BDY
 0041h confirmed: bad state
 0051h deallocate: bad type
 0052h deallocate: flush bad state
 0053h deallocate: confirm bad state
 0055h deallocate: NOT_LL_BDY
 0057h deallocate: log LL_WRONG
 0061h flush: not send state
 0091h post on receipt: invalid length
 0092h post on receipt: not in receive state
 0093h post on receipt: bad fill
 00A1h prepare to receive:invalid type
 00A2h prepare to receive: unfinished LL
 00A3h prepare to receive: not in send state
 00B1h receive and wait: bad state
 00B2h receive and wait: NOT_LL_BDY
 00B5h receive and wait: bad fill
 00C1h receive immediate: not in receive state
 00C4h receive immediate: bad fill
 00E1h request to send: not in receive state
 00F1h send data: bad LL
 00F2h send data: not in send state
 0102h send error: log LL wrong
 0103h send error: bad type
 0121h test: invalid type
 0122h test: not in receive state


INT 68 AH=03

68 - APPC/PC

AH = 03h
DS:DX -> control block (see below)

Table Formats

Control block:


INT 68 AH=04

68 - APPC/PC

AH = 04h
DS:DX -> control block (see below)

Table Formats

Control block:


INT 68 AH=05

68 - APPC/PC - TRANSFER MSG DATA

AH = 05h
DS:DX -> control block (see below)

Table Formats

Control block:


INT 68 AH=06

68 - APPC/PC - CHANGE NUMBER OF SESSIONS

AH = 06h
DS:DX -> control block (see below)

Table Formats

Control block:
Values for secondary return code (see also AH=01h):
  0000h accepted
  0001h negotiated
  0003h bad logical unit ID
  0004h allocation failure, no retry
  0005h allocation failure, retry
  0151h can't raise limits
  0153h all modes must reset
  0154h bad SNASVCMG limits
  0155h minimum greater than total
  0156h mode closed (prim return code = 1)
CNOS mode closed (prim return code = 18h)
  0157h bad mode name (prim return code = 1)
CNOS bad mode name (prim return code = 18h)
  0159h reset SNA drains
  015Ah single not SRC response
  015Bh bad partner logical unit
  015Ch exceeds maximum allowed
  015Dh change SRC drains
  015Eh logical unit detached
  015Fh CNOS command race reject


INT 68 AH=07

68 - APPC/PC - PASSTHROUGH

AH = 07h
DS:DX -> control block (format depends on application subsystem)

SeeAlso

    INT 68 AH=FF


INT 68 AH=FA

68 - APPC/PC - ENABLE/DISABLE APPC

AH = FAh
AL bit 0 = 0 enable
   1 disable


INT 68 AH=FB

68 - APPC/PC - CONVERT

AH = FBh
DS:DX -> control block (see below)

Table Formats

Control block:


INT 68 AH=FC

68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING

AH = FCh
AL = 00h disable tracing
   = 01h enable tracing
DX = number of bytes to keep (0=all)

SeeAlso

    INT 68 AH=FD


INT 68 AH=FD

68 - APPC/PC - ENABLE/DISABLE API VERB TRACING

AH = FDh
AL = 00h disable tracing
     01h enable tracing

SeeAlso

    INT 68 AH=FC    INT 68 AH=FE


INT 68 AH=FE

68 - APPC/PC - SET TRACE DESTINATION

AH = FEh
AL = trace destinations
    bit 0  storage (DS:DX -> trace stats record)
    bit 1  display
    bit 2  file (trace written to file OUTPUT.PC)
    bit 3  printer

SeeAlso

    INT 68 AH=FD

Table Formats

Trace Statistics Record:


INT 68 AH=FF

68 - APPC/PC - SET PASSTHROUGH

AH = FFh
DS:DX -> passthrough exit routine

SeeAlso

    INT 68 AH=07


INT 69

69 - Zenith AT BIOS - ???

   called by INT 09 handler


INT 69 AX=0100

69 - DECnet DOS CTERM - INSTALLATION CHECK

AX = 0100h

Return

        AL = FFh if present

SeeAlso

    INT 69 AX=010F


INT 69 AX=0101

69 - DECnet DOS CTERM - SEND BYTE

AX = 0101h
BL = character
DX = session handle

Return

        AH >= 80h on error

SeeAlso

    INT 69 AX=0102


INT 69 AX=0102

69 - DECnet DOS CTERM - READ BYTE

AX = 0102h
DX = session handle

Return

        AH >= 80h on error
AH < 80h if successful
    AL = character

SeeAlso

    INT 69 AX=0101


INT 69 AX=0103

69 - DECnet DOS CTERM - STATUS

AX = 0103h
DX = session handle

Return

        AH status flags
    bit 7 session has been aborted
6 DECnet error
1 trace data available
0 receive data available
AL = reason code if DECnet error
    00h normal disconnect
    01h unknown message from host
    02h protocol violation from host
    03h could not process the initiate message
    04h error receiving message from host
    05h error sending message to host
    06h error checking for message from host
    07h remote system does not support CTERM
    08h remote system does not support correct protocol version
    09h did not receive BIND message from host
    0Ah could not send BIND message to host
    0Bh no more sessions available
    0Ch session does not exist
    0Dh not enough memory to complete operation
    0Eh connection has broken

SeeAlso

    INT 69 AX=0104


INT 69 AX=0104

69 - DECnet DOS CTERM - DECnet STATUS

AX = 0104h
DX = session handle

Return

        AX = reason code (see AX=0103h)

Note

     	use this call when AX=0103h returns a DECnet error

SeeAlso

    INT 69 AX=0103


INT 69 AX=0105

69 - DECnet DOS CTERM - OPEN SESSION

AX = 0105h
DS:BX -> ASCIZ node name
ES:DX -> buffer for session control block (see INT 6A/AH=D0h)

Return

        AX <= 0 on error
AX > 0 session handle

SeeAlso

    INT 69 AX=0103    INT 69 AX=0106    INT 69 AX=010A


INT 69 AX=0106

69 - DECnet DOS CTERM - CLOSE SESSION

AX = 0106h
DX = session handle

Return

        AH = 00h good close
   other error code (see AX=0103h)

SeeAlso

    INT 69 AX=0103    INT 69 AX=0105


INT 69 AX=010A

69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE

AX = 010Ah

Return

        AX = length of session control block in bytes

SeeAlso

    INT 69 AX=0105


INT 69 AX=010B

69 - DECnet DOS CTERM - GET DECnet SOCKET

AX = 010Bh
DX = session handle

Return

        AX > 0	DECnet socket for the session
   = 0	no match for handle


INT 69 AX=010F

69 - DECnet DOS CTERM - DEINSTALL CTERM

AX = 010Fh

Return

        AH = 00h succesful uninstall
   other error code

Note

     	CTERM must have been the last TSR loaded in order to deinstall it

SeeAlso

    INT 69 AX=0100


INT 69 AH=0A

69 - DECnet DOS 2.1+ - DATA LINK LAYER

AH = 0Ah
AL = function
    00h initialize
    01h open portal
    02h close portal
    03h enable multicast address
    04h disable multicast address
    05h transmit
    06h request transmit buffer
    07h deallocate transmit buffer
    08h read channel status
    09h read datalink portal list
    0Ah read information about a datalink portal
    0Bh read and/or clear counters
    0Ch request to boot from a network server
    0Dh enable Ethernet channel
    0Eh disable Ethernet channel
    0Fh start MOP/send a System ID message
    10h stop MOP
    11h get DECPARM
    12h set DECPARM
    13h external loopback
ES:BX -> Datalink Communication Block

Return

        AX = status
    00h successful
    01h hardware failed to initialize
    02h channel state was not off (must be off to execute that command)
    03h channel state is off (must be on to execute that command)
    04h address not set
    05h hardware missing
    06h buffer too small
    07h no more buffers available
    08h no more resources available
    09h promiscuous receiver active
    0Ah non exclusive
    0Bh unrecognized portal
    0Ch protocol type in use
    0Dh not a valid Multicast address
    0Eh outstanding calls
    0Fh hardware doesn't support receiving bad frames
    10h none outstanding
    11h no events
    12h broken
    13h buffer quota exceeded
    14h already initialized
    15h loopback failure

SeeAlso

    INT 6DDECnet

Table Formats

Datalink Communication Block


INT 69 AX=4001

69 - 10NET v5.0 - SYSSVC.COM - ???

AX = 4001h

Return

        CF clear
AX = 0000h
ES:SI -> ???

Note

     	INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  the signature "SYSV" immediately before the interrupt handler serves
  as the installation check

SeeAlso

    INT 69 AX=4002


INT 69 AX=4002

69 - 10NET v5.0 - SYSSVC.COM - ???

AX = 4002h
???

Return

        ???

Note

     	INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  the signature "SYSV" immediately before the interrupt handler serves
  as the installation check


INT 69 AX=4101

69 - 10NET v5.0 - SYSSVC.COM - ???

AX = 4101h

Return

        CF clear
ES:SI -> ???

SeeAlso

    INT 69 AX=4102    INT 69 AX=4103    INT 69 AX=4104


INT 69 AX=4102

69 - 10NET v5.0 - SYSSVC.COM - ???

AX = 4102h
???

Return

        ???


INT 69 AX=4103

69 - 10NET v5.0 - SYSSVC.COM - ???

AX = 4103h
???

Return

        ???


INT 69 AX=4104

69 - 10NET v5.0 - SYSSVC.COM - ???

AX = 4104h
???

Return

        ???


INT 69 AH=42

69 - 10NET v5.0 - SYSSVC.COM - ???

AH = 42h
AL = function (01h-14h)
???

Return

        ???


INT 69 AH=43

69 - 10NET v5.0 - SYSSVC.COM - ???

AH = 43h
AL = function (01h-05h)
???

Return

        ???


INT 69 AH=44

69 - 10NET v5.0 - SYSSVC.COM - ???

AH = 44h
AL = function (01h-03h)
???

Return

        ???


INT 69 AH=49

69 - 10NET v5.0 - SYSSVC.COM - BUG

AH = 49h

Note

     	due to a fencepost error, this function branches to hyperspace

SeeAlso

    INT 69 AX=4001    INT 69 AH=FF


INT 69 AX=6996

69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER

AX = 6996h
DS:DX -> interrupt handler or 0000h:0000h to disable

Return

        AX = 9669h

Notes

      	ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
  a program to provide hardware interrupt handlers even while being
  debugged with a debugger that swaps interrupt vectors during
  debugging.
the interrupt vector which is to be reflected is set at installation
  time and cannot be changed


INT 69 AH=FF

69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR

AH = FFh

Return

        never???

Notes

      	displays "System Error" message and register dump, then halts system
INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  the signature "SYSV" immediately before the interrupt handler serves
  as the installation check

SeeAlso

    INT 69 AX=4001    INT 69 AH=49


INT 6A

6A - OPTHELP.COM

Notes

      	OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  assembler
may be configured to use any interrupt from 60h to 7Fh (default 6Ah)


INT 6A

6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM

Note

     	the installation check consists of testing for a signature area
  immediately preceding the interrupt handler

SeeAlso

    INT 6BDECnet"    INT 6DDECnet

Table Formats

Signature area:


INT 6A AH=01

6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE

AH = 01h
DH = FFh
AL = character
DL = handle

Return

        AH >= 80h on error

SeeAlso

    INT 6A AH=02


INT 6A AH=02

6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE

AH = 02h
DH = FFh
DL = handle

Return

        AH < 80h if successful
    AL = character
AH >= 80h on error

SeeAlso

    INT 6A AH=01


INT 6A AH=03

6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS

AH = 03h
DH = FFh
DL = handle

Return

        AH = status flags
    bit 5 transmit buffer empty
3 session in start state
2 session not active
1 unable to queue transmit data
0 receive data available


INT 6A AH=D0

6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION

AH = D0h
DH = FFh
AL = FFh no password
   = 0Fh password at ES:DI
ES:BX -> LAT session control block (see below)
ES:DI -> 16-byte blank-padded password

Return

        AH = 00h success
    DL = handle

SeeAlso

    INT 6A AX=D000

Table Formats

LAT Session Control Block:


INT 6A AX=D000

6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION

AX = D000h
DH = FFh
DL = handle

Return

        AX = 0000h successful
   = 0001h no such session
   = 0002h session not running, try again later

SeeAlso

    INT 6A AH=D0


INT 6A AX=D100

6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK

AX = D100h
DH = FFh
DL = handle

Return

        AX = 0000h if successful
AH bit 7 set if unable to send break


INT 6A AX=D300

6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS

AX = D300h
DH = FFh

SeeAlso

    INT 6A AX=D400


INT 6A AX=D400

6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS

AX = D400h
DH = FFh
CX = buffer size
ES:BX -> buffer for LAT counters

Return

        AX = 0000h counters copied into buffer
   = FFFFh buffer too small

SeeAlso

    INT 6A AX=D300


INT 6A AX=D500

6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME

AX = D500h
DH = FFh
ES:BX -> 17-byte buffer for name

Return

        AH = 00h if successful
   ES:BX buffer filled
AX = FFFFh if end of table or no name available

Notes

      	use this function to get the names of the hosts on the network
successive calls are necessary to get all names

SeeAlso

    INT 6A AX=D600


INT 6A AX=D600

6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET

AX = D600h
DH = FFh

Return

        AX = number of service table entries
BX = 0000h service table has not overflowed
   = FFFFh service table has overflowed

SeeAlso

    INT 6A AX=D500


INT 6B AX=0000

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

Note

     	also supported by NPC NCSI

SeeAlso

    INT 6B AX=0100    INT 6B AH=18    INT 14 AH=19


INT 6B AX=0100

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 NPC NCSI

SeeAlso

    INT 6B AX=0000    INT 6B AH=19    INT 14 AH=18    INT 14 AX=FF02


INT 6B AH=02

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

     	also supported by NPC NCSI

SeeAlso

    INT 6B AX=0700


INT 6B AX=0600

6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL

AX = 0600h
CX = command
    02h send break
    04h disconnect
    06h hold

Note

     	also supported by NPC NCSI


INT 6B AX=0700

6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS

AX = 0700h

Return

        CH <> 00h if connection active

Note

     	also supported by NPC NCSI

SeeAlso

    INT 6B AH=02    INT 6B AH=10


INT 6B AH=10

6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS

AH = 10h
???

Return

        ???

SeeAlso

    INT 6B AX=0700    INT 6B AH=12    INT 6B AH=1F


INT 6B AH=11

6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT

AH = 11h
???

Return

        ???

SeeAlso

    INT 6B AH=12    INT 6B AH=15    INT 6B AH=16    INT 6B AH=17    INT 6B AH=18


INT 6B AH=12

6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS

AH = 12h
???

Return

        ???

SeeAlso

    INT 6B AH=10    INT 6B AH=15    INT 6B AH=1A    INT 6B AH=1B    INT 6B AH=1F


INT 6B AH=13

6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME

AH = 13h
???

Return

        ???

SeeAlso

    INT 6B AH=14    INT 6B AH=15


INT 6B AH=14

6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS

AH = 14h
???

Return

        ???

SeeAlso

    INT 6B AH=13    INT 6B AH=15    INT 6B AH=21


INT 6B AH=15

6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG

AH = 15h
???

Return

        ???

SeeAlso

    INT 6B AH=13    INT 6B AH=14


INT 6B AH=16

6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT

AH = 16h
???

Return

        ???

SeeAlso

    INT 6B AH=11    INT 6B AH=12    INT 6B AH=17


INT 6B AH=17

6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT

AH = 17h
???

Return

        ???

SeeAlso

    INT 6B AH=11    INT 6B AH=16


INT 6B AH=18

6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT

AH = 18h
???

Return

        ???

SeeAlso

    INT 6B AX=0000    INT 6B AH=12    INT 6B AH=19


INT 6B AH=19

6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT

AH = 19h
???

Return

        ???

SeeAlso

    INT 6B AX=0100    INT 6B AH=12    INT 6B AH=18


INT 6B AH=1A

6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS

AH = 1Ah
???

Return

        ???

SeeAlso

    INT 6B AH=12    INT 6B AH=1B


INT 6B AH=1B

6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS

AH = 1Bh
???

Return

        ???

SeeAlso

    INT 6B AH=12    INT 6B AH=1A


INT 6B AH=1C

6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL

AH = 1Ch
???

Return

        ???

SeeAlso

    INT 6B AH=1D    INT 6B AH=1E


INT 6B AH=1D

6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL

AH = 1Dh
???

Return

        ???

SeeAlso

    INT 6B AH=1C    INT 6B AH=1E


INT 6B AH=1E

6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST

AH = 1Eh
???

Return

        ???

SeeAlso

    INT 6B AH=1C    INT 6B AH=1D


INT 6B AH=1F

6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS

AH = 1Fh
???

Return

        ???

SeeAlso

    INT 6B AH=10    INT 6B AH=12


INT 6B AH=21

6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE

AH = 21h
???

Return

        ???

SeeAlso

    INT 6B AH=14


INT 6B AH=6B

6B - Tandy SCHOOLMATE PLUS - API

AH = 6Bh
AL = E0h to FFh


INT 6B

6B - VIRUS - "Saddam" - ???

SeeAlso

    INT 21 AX=FFFF    INT 61VIRUS"    INT 70VIRUS


INT 6C

6C - system resume vector (CONVERTIBLE)


INT 6C

6C - DOS 3.2 Realtime Clock update


INT 6C

6C - DECnet DOS network scheduler

Notes

      	the installation check consists of testing for a signature area
  immediately preceding the interrupt handler
also supported by DEC Pathworks for DOS

SeeAlso

    INT 6BDECnet"    INT 6DDECnet"    INT 6EDECnet

Table Formats

Signature area:


INT 6D

6D - VGA - internal

Note

     	used by IBM, Paradise, Video7, and NCR


INT 6D

6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT

   points at the original INT 10 entry point set up by the ATI BIOS

SeeAlso

    INT 10


INT 6D

6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM

AH = function
???

Return

        ???

Note

     	the installation check consists of testing for a signature area
  immediately preceding the interrupt handler

SeeAlso

    INT 69 AH=0A    INT 6CDECnet"    INT 6EDECnet

Table Formats

Signature area:


INT 6E

6E - DECnet DOS - DECnet NETWORK PROCESS API

Notes

      	this is the main DECnet DOS access, and is described in Digital manual
  AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
there is a signature/data area immediately prior to the interrupt
  handler which may be used as an installation check

Table Formats

Signature area:


INT 6F AH=22

6F - HP ES-12 EXTENDED BIOS - READ CMOS MEMORY

AH = 22h
BP = 0012h
BL = address of CMOS byte to read

Return

        AH = status
AL = byte read
BP, DS destroyed

SeeAlso

    BP=0012h/AH=24


INT 6F AH=24

6F - HP ES-12 EXTENDED BIOS - WRITE CMOS MEMORY

AH = 24h
BP = 0012h
BL = address of CMOS byte to write
AL = new value

Return

        AH = status
BP, DS destroyed

SeeAlso

    BP=0012h/AH=22


INT 6F

6F - Novell NetWare - PCOX API (3270 PC terminal interface)


INT 6F AH=00

6F - 10NET - LOGIN

AH = 00h
DS:DX -> login record (see below)

Return

        CL = security level
AX = status (see below)

SeeAlso

    INT 6F AH=01    INT 21 AX=4402"10MEMMGR"

Table Formats

Login record:
Values for status:
    0000h successful
    01FFh time out on response
    02FFh network (hardware) error
    03FFh invalid password
    04FFh local resource not available
    05FFh server resource not available
    06FFh already logged in under different name
    07FFh login security failure (node)
    08FFh not logged in
    09FFh position calc error
    0AFFh receive subfunction not = send subfunction (i.e. read, write)
    0BFFh request function not in range
    0CFFh no more server file handle entries left
    0DFFh no more shared file table entries left
    0EFFh no more user file handle entries left
    0FFFh chat permit not on
    10FFh not a server on request
    11FFh no transporter board error
    12FFh time out on send
    13FFh item not found (spool item not on queue)
    14FFh DOS access incompatible
    15FFh record already locked
    16FFh invalid parameter
    17FFh record lock time out error
    18FFh currently spooling to named device
    19FFh dropped receive message (throttle)
    1AFFh open sharing violation
    1BFFh no more tuf entries left
    1CFFh not file owner on open
    1DFFh read security not passed
    1EFFh write security not passed
    1FFFh group security not passed
    20FFh security file failure
    21FFh activity file failure
    22FFh spool cntrl file failure
    23FFh device not mounted (spooling)
    24FFh spool file has not been terminated
    25FFh device not mounted or is not being shared
    26FFh duplicate node id
    27FFh file not found error
    28FFh no more files
    29FFh unknown internal system error
    2AFFh print queue is full or corrupted
    2BFFh invalid function
    2CFFh invalid handle
    2DFFh too many files opened
    2EFFh path not found
    2FFFh named file is active
/* I've gotten one submission which says FFxxh, and another with xxFFh */
/* I don't know which way around these should be, does somebody else know? */
    FF01h timeout
    FF02h network error
    FF03h invalid password
    FF04h no local buffer
    FF05h superstation not available
    FF06h node already logged in
    FF07h login not valid from this node
    FF08h node ID already in use
    FF16h invalid parameter (bad length, invalid node ID, etc)
    FF17h record locked by another user
    FF18h sent message has been dropped


INT 6F AH=01

6F - 10NET - LOGOFF

AH = 01h
DS:DX -> superstation ID or nulls (12 bytes)

Return

        CX = number of files closed
AX = status (see AH=00h)
    FF08h superstation ID not already logged in

SeeAlso

    INT 6F AH=00


INT 6F AH=02

6F - 10NET - STATUS OF NODE

AH = 02h
DS:DX -> 512-byte status record (see below)

Return

        CF set on error
    AX = error code (see AH=00h)
CF clear if successful

Table Formats

Node status record:


INT 6F AH=03

6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE

AH = 03h
DS:DI -> node ID (optional)

Return

        ES:BX -> configuration table

SeeAlso

    INT 6F AH=13

Table Formats

Configuration table:


INT 6F AH=04

6F - 10NET - SEND

AH = 04h
DS:BX -> record
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
   WORD	 length of data at DX
DS:DX -> data (max 1024 bytes)

Return

        CF set on error
    AX = error code (see AH=00h)
CF clear if successful

SeeAlso

    INT 6F AH=05


INT 6F AH=05

6F - 10NET - RECEIVE

AH = 05h
CX = number of seconds before timeout
DS:DX -> receive buffer (see below)

Return

        CF set on error
    AX = error code (see AH=00h)
CF clear if successful
    AH = FEh if dequeued message is a CB message

SeeAlso

    INT 6F AH=04

Table Formats

Receive buffer:


INT 6F AH=07

6F - 10NET - LOCK HANDLE

AH = 07h
BX = file handle
CX:DX = starting offset in file
SI = record length

Return

        CF set on error
    AX = error code (see also AH=00h)
0002h file not found
CF clear if successful

SeeAlso

    INT 6F AH=08    INT 21 AH=5C


INT 6F AH=08

6F - 10NET - UNLOCK HANDLE

AH = 08h
BX = file handle
AL = mode
    00h unlock all
    01h unlock record at CX:DX

Return

        CF set on error
    AX = error code (see also AH=00h)
0002h file not found
CF clear if successful

SeeAlso

    INT 6F AH=07    INT 21 AH=5C


INT 6F AH=09

6F - 10NET - SUBMIT

AH = 09h
DS:BX -> submit record (see below)

Table Formats

Submit record:


INT 6F AH=0A

6F - 10NET - CHAT

AH = 0Ah
DS:BX -> control parameters (see below)
DS:DX -> chat message (see below)

Table Formats

Control parameters:
Chat message:


INT 6F AH=0B

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
    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

Note

     	same as INT 60/AH=12h

SeeAlso

    INT 6F AH=0C    INT 60 AH=12


INT 6F AH=0C

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 AH=0Bh)
    01h semaphore not locked

Note

     	same as INT 60/AH=13h

SeeAlso

    INT 6F AH=0B    INT 60 AH=13


INT 6F AH=0D

6F - 10NET - WHO

AH = 0Dh
AL = type code
    01h return superstations only
    02h return non-superstations only
    otherwise return all
CX = length of data
DS:DX -> array of records to be filled (see below)

Return

        CL = number of records returned (responding stations)

Table Formats

Station record:


INT 6F AH=0E

6F - 10NET - SPOOL/PRINT

AH = 0Eh
DS:DX -> spool/print record (see below)

Return

        CF set on error
    AX = error code (see also AH=00h)
FF17h device not mounted
FF18h already spooling to named device
CF clear if successful

Table Formats

Spool/Print record:
$SCNTL record:


INT 6F AH=0F

6F - 10NET v5.0 - "RM LOCK" - ???

AH = 0Fh
???

Return

        ???


INT 6F AH=10

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=5D08


INT 6F AH=11

6F - 10NET - LOCK FCB

AH = 11h
AL = mode
    01h sequential
    02h random
    03h random block
CX = number of records
DS:DX -> FCB (see INT 21/AH=0Fh)

Return

        CF set on error
    AX = error code (see also AH=00h)
0002h file not found
CF clear if successful

SeeAlso

    INT 6F AH=12


INT 6F AH=12

6F - 10NET - UNLOCK FCB

AH = 12h
AL = mode
    00h sequential
    01h random
    02h random block
CX = number of records
DS:DX -> FCB (see INT 21/AH=0Fh)

Return

        CF set on error
    AX = error code (see also AH=00h)
0002h file not found
CF clear if successful

SeeAlso

    INT 6F AH=11


INT 6F AH=13

6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS

AH = 13h
DS:DX -> node ID, 12 bytes blank-padded

Return

        CF set on error
    AX = error code (see AH=00h)
CF clear if successful
    ES:BX = configuration table address on given machine

SeeAlso

    INT 6F AH=03


INT 6F AH=14

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 set on error
    AX = error code (see AH=00h)
CF clear if successful
    CX = amount of memory copied to DS:SI


INT 6F AX=1501

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 below)

Return

        CF set on error
    AX = error code (see AH=00h)
CF clear if successful
    ES:DI buffer contains shared device table entry of BXth device:

SeeAlso

    INT 6F AX=1502    INT 6F AX=1503

Table Formats

Shared device table entry:


INT 6F AX=1502

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 set on error
    AX = error code (see AH=00h)
CF clear if successful

SeeAlso

    INT 6F AX=1501    INT 6F AX=1503


INT 6F AX=1503

6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY

AX = 1503h
BX = zero-based index
DS:SI -> node ID, 12 bytes blank-padded

Return

        CF set on error
    AX = error code (see AH=00h)
CF clear if successful

SeeAlso

    INT 6F AX=1501    INT 6F AX=1502


INT 6F AH=16

6F - 10NET v5.0 - "GL WHO" - ???

AH = 16h
???

Return

        ???


INT 6F AH=17

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 set on error
    AX = error code (see AH=00h)
CF clear if successful

SeeAlso

    INT 6F AH=18


INT 6F AH=18

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 set on error
    AX = error code (see AH=00h)
CF clear if successful

SeeAlso

    INT 6F AH=17


INT 6F AH=19

6F - 10NET v5.0 - "AUDIT" - ???

AH = 19h
???

Return

        ???


INT 6F AH=1A

6F - 10NET v5.0 - "BULL" - ???

AH = 1Ah
???

Return

        ???


INT 6F AH=1B

6F - 10NET v5.0 - "GMOUNT" - ???

AH = 1Bh
???

Return

        ???


INT 6F AH=1C

6F - 10NET v5.0 - "GLOGIN" - ???

AH = 1Ch
???

Return

        ???


INT 6F AH=1D

6F - 10NET v5.0 - "TABDATA" - ???

AH = 1Dh
???

Return

        ???


INT 6F AH=1E

6F - 10NET v5.0 - "SCHED" - ???

AH = 1Eh
???

Return

        ???


INT 6F AH=1F

6F - 10NET v5.0 - "WHOAMI" - ???

AH = 1Fh
???

Return

        ???


INT 6F AH=20

6F - 10NET v5.0 - ???

AH = 20h
???

Return

        ???


INT 6F AH=21

6F - 10NET v5.0 - ???

AH = 21h
???

Return

        ???


INT 6F AH=22

6F - 10NET v5.0 - ???

AH = 22h
???

Return

        ???


INT 70

70 - IRQ8 - CMOS REAL-TIME CLOCK

Desc

     	this interrupt is called when the real-time clock chip generates an
  alarm or periodic interrupt, among others.  The periodic interrupt
  occurs 1024 times per second.
Nots:	many BIOSes turn off the periodic interrupt in the INT 70h handler
  unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
may be masked by setting bit 0 on I/O port A1h

SeeAlso

    INT 08INT 0F"HP 95LX"    INT 15 AH=01"Amstrad"    INT 15 AH=83

SeeAlso

    INT 15 AH=86    INT 1A AH=02    INT 58DESQview


INT 70

70 - VIRUS "Stupid" - ???

SeeAlso

    INT 6BVIRUS"    INT E0VIRUS


INT 71

71 - 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 0AINT 5


INT 72

72 - IRQ10 - RESERVED

Note

     	may be masked by setting bit 2 on I/O port A1h

SeeAlso

    INT 5A


INT 73

73 - IRQ11 - RESERVED

Note

     	may be masked by setting bit 3 on I/O port A1h

SeeAlso

    INT 5B


INT 74

74 - IRQ12 - POINTING DEVICE (PS)

Notes

      	may be masked by setting bit 4 on I/O port A1h
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 33INT 5


INT 75

75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)

   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 10COPROCESSOR"    INT 5D


INT 76

76 - IRQ14 - HARD DISK CONTROLLER (AT and later)

Note

     	may be masked by setting bit 6 on I/O port A1h

SeeAlso

    INT 0EIRQ6"    INT 5E


INT 77

77 - IRQ15 - RESERVED (AT,PS)

Note

     	may be masked by setting bit 7 on I/O port A1h

SeeAlso

    INT 5F


INT 77

77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)

Note

     	may be masked by setting bit 7 on I/O port A1h

SeeAlso

    INT 15 AX=4600    INT 5F


INT 78

78 - UofSalford DBOS DOS extender - API

BYTE following INT instruction contains function code
    03h switch to protected mode
    1Eh set real-mode memory size (specify how much real-mode memory
  to leave free when running FTN77 programs)
    22h uninstall
???

Return

        ???

Note

     	DBOS supports functions 00h through 50h


INT 78

78 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ0

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 08INT 10/AH=FFh"GO32"    INT 79GO32


INT 78

78 - AutoCAD 10 ADI for Plotters

AX = function
    0001h initialize comm port and reset plotter
BX = ??? (comm port?)
    0002h 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 return pen to pen carrier??? (called before change-pen cmd)

Return

        ???

SeeAlso

    INT 7AAutoCAD"    INT 7BAutoCAD


INT 78

78 - ADP-60 IDE controller - ORIGINAL INT 13

SeeAlso

    INT 79ADP-60


INT 78 AH=00

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
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

Note

     	if this routine is not called, the port is the driver's default
  (usually 0280h or 0300h)
an installation check is performed by TARGA.DEV upon initialization
  by checking for the string "SCSI" at offset 03h into the interrupt
  handler

SeeAlso

    INT 78 AH=01    INT 78 AH=02


INT 78 AH=01

78 - TARGA.DEV - GET I/O PORT

AH = 01h

Return

        DX = current interface board I/O port

SeeAlso

    INT 78 AH=00    INT 78 AH=03"TARGA"


INT 78 AH=02

78 - TARGA.DEV - SET DMA CHANNEL

AH = 02h
AL = interface board DMA channel

Return

        CF set on error
AL = error code (see AH=00h)

Note

     	if this routine is not called, the DMA channel is the driver's default
  (usually 3)

SeeAlso

    INT 78 AH=00    INT 78 AH=03"TARGA"


INT 78 AH=03

78 - TARGA.DEV - GET DMA CHANNEL

AH = 03h

Return

        AL = current interface board DMA channel

SeeAlso

    INT 78 AH=01    INT 78 AH=02


INT 78 AH=04

78 - TARGA.DEV - SET SCSI DEVICE NUMBER

AH = 04h
AL = SCSI device number

Return

        CF set on error
AL = error code (see AH=00h)

Note

     	if this routine is not called, the device number used is the driver's
  default (usually 0)

SeeAlso

    INT 78 AH=02    INT 78 AH=05


INT 78 AH=05

78 - TARGA.DEV - GET SCSI DEVICE NUMBER

AH = 05h

Return

        AL = current SCSI device number

SeeAlso

    INT 78 AH=03"TARGA"    INT 78 AH=04


INT 78 AH=06

78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE

AH = 06h
AL = 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

    INT 78 AH=13    INT 78 AH=14    INT 78 AH=15


INT 78 AH=08

78 - TARGA.DEV - INTERFACE BOARD SELF-TEST

AH = 08h

Return

        CF set on error
AL = error code (see AH=00h)

Note

     	the SCSI bus is also reset

SeeAlso

    INT 78 AH=09


INT 78 AH=09

78 - TARGA.DEV - RESET SCSI BUS

AH = 09h

Return

        AL = error code if carry set (see AH=00h)

SeeAlso

    INT 78 AH=08


INT 78 AH=10

78 - TARGA.DEV - SEND SCSI COMMAND

AH = 10h
DS:SI -> command bytes

Return

        AH = SCSI status byte
CF clear if successful
    AL = SCSI message byte
CF set on error
    AL = error code (see AH=00h)

SeeAlso

    INT 78 AH=11    INT 21 AX=4403"ST-01"

Table Formats

SCSI Command:


INT 78 AH=11

78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)

AH = 11h
DS:SI -> command bytes
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 AH=00h)

Note

     	this command receives data internally one byte at a time

SeeAlso

    INT 78 AH=10    INT 78 AH=13

Table Formats

SCSI Command:


INT 78 AH=12

78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)

AH = 12h
DS:SI -> command bytes
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 AH=00h)

Note

     	this command sends data internally one byte at a time

SeeAlso

    INT 78 AH=14

Table Formats

SCSI Command:


INT 78 AH=13

78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)

AH = 13h
DS:SI -> command bytes
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 AH=00h)

Note

     	this command receives data using DMA

SeeAlso

    INT 78 AH=11    INT 78 AH=12

Table Formats

SCSI Command:


INT 78 AH=14

78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)

AH = 14h
DS:SI -> command bytes
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 AH=00h)

Note

     	this command sends data using DMA

SeeAlso

    INT 78 AH=12    INT 78 AH=13

Table Formats

SCSI Command:


INT 78 AH=15

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 AH=00h)

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

    INT 78 AH=06    INT 78 AH=13    INT 78 AH=14


INT 79

79 - AVATAR.SYS - FAST GET KEYSTROKE

Return

        CF set if no keystroke available
    AX = FFFFh
CF clear if key pressed
    AX = keystroke

Notes

      	if a keystroke is available, it is removed from the keyboard buffer
  before being returned
AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  AVATAR command codes just as ANSI.SYS interprets ANSI commands

SeeAlso

    INT 29


INT 79

79 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ1

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 09INT 78"GO32"    INT 7AGO32


INT 79

79 U - ADP-60 IDE adapter - ???

SeeAlso

    INT 78ADP-60


INT 79 AX=0001

79 U - AutoCAD Device Interface - DIGITIZER - INITIALIZE

AX = 0001h

Return

        AX = 0001h ??? self-test result???
BX = 0001h

SeeAlso

    INT 79 AX=0002    INT 79 AX=0003    INT 7AAutoCAD


INT 79 AX=0002

79 U - AutoCAD Device Interface - DIGITIZER - CLOSE

AX = 0002h

SeeAlso

    INT 79 AX=0001    INT 79 AX=0003


INT 79 AX=0003

79 U - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS

AX = 0003h

Return

        AX = button state
    0002h no button pressed
BX = X coordinate
CX = Y coordinate
    0003h Pick button (0,A,B,C,D) pressed
BX = X coordinate
CX = Y coordinate
    0005h other button (1-9) pressed
BX = number of button - 1
CX = X coordinate
DX = Y coordinate

Note

     	these return values are valid for the Houston Instruments HiPad Plus
  9236 digitizer with a 16-button cursor

SeeAlso

    INT 79 AX=0001    INT 79 AX=0002


INT 7A

7A U - Topware Network Operating System - ???

AL = ???
???

Return

        ???

SeeAlso

    INT 21 AH=FF"Topware"    INT 2F AX=FF00


INT 7A

7A - AutoCAD Device Interface

???

SeeAlso

    INT 61 AX=0007"OPTIMA"    INT 78AutoCAD"    INT 79 AX=0001

SeeAlso

    INT 7BAutoCAD


INT 7A

7A - X.PC Packet software interface

ES:BX -> parameter block

SeeAlso

    INT 60 AX=01FF


INT 7A

7A - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ2

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 0AINT 79"GO32"    INT 7BGO32


INT 7A

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.

SeeAlso

    INT 2F AX=7A00    INT 64Novell"    INT 7ABX=0000


INT 7A

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 below)

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

    BX=0001h    BX=0004

Values for socket number:
 0451h File Service
 0452h Service Advertising Socket
 0453h Routing Information Packet
 0455h NetBIOS Packet
 0456h diagnostics
 0457h ??? (appears to be related to server serial numbers)
 4000h-7FFFh used for dynamic allocation
 4444h Brightwork Development's SiteLock server
 5555h Brightwork Development's SiteLock client (workstation)
 8000h-FFFFh assigned by Novell

Note

     	SiteLock is an application metering product using IPX to communicate
  between the application and the license server


INT 7A

7A - Novell NetWare - IPX Driver - CLOSE SOCKET

BX = 0001h
DX = socket number (high byte in DL)

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+

SeeAlso

    BX=0000


INT 7A

7A - Novell NetWare - IPX Driver - GET LOCAL TARGET

BX = 0002h
ES:SI -> target internetwork address (see 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=0009


INT 7A

7A - Novell NetWare - IPX Driver - SEND PACKET

BX = 0003h
ES:SI -> Event Control Block (see below)

Notes

      	returns immediately; IPX attempts to send the packet in the background
this function is supported by Advanced NetWare 1.02+

SeeAlso

    BX=0004h    BX=000Fh    INT 21 AH=EE"Novell"

Table Formats

Event Control Block:
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

Event Service Routine called with:
AL = caller's identity (00h = AES, FFh = IPX)
ES:SI -> event control block
interrupts disabled

IPX header:
Service Advertising Protocol Service Query Packet:
Service Advertising Protocol Server Identification Packet:


INT 7A

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=0003


INT 7A

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=0008


INT 7A

7A - Novell NetWare - IPX Driver - CANCEL EVENT

BX = 0006h
ES:SI -> Event Control Block (see BX=0003h)

Return

        AL = return code
    00h success
    F9h event in use
    FCh event cancelled
    FFh unsuccessful, event not in use, or unrecognized ECB flag

Notes

      	cannot cancel packets which the node's driver has already sent
this function is supported by Advanced NetWare 1.02+

SeeAlso

    BX=0005


INT 7A

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=0006


INT 7A

7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER

BX = 0008h

Return

        AX = interval marker in clock ticks

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=0005


INT 7A

7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS

BX = 0009h
ES:SI -> buffer for own internetwork address (see below)

Return

        ES:SI buffer filled
SI destroyed

Note

     	this function is supported by Advanced NetWare 1.02+

SeeAlso

    BX=0002h    BX=000B

Table Formats

Internetwork address:


INT 7A

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=1000    INT 21 AH=89    INT 2F AX=1680


INT 7A

7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET

BX = 000Bh
ES:SI -> internetwork address (see below)

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=0009

Table Formats

Internetwork address:


INT 7A

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


INT 7A

7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE

BX = 000Dh

Return

        AX = maximum packet size
CX = retry count

SeeAlso

    BX=001A


INT 7A

7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS

BX = 000Eh

Return

        nothing

Note

     	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


INT 7A

7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET

BX = 000Fh
ES:SI -> Event Control Block (see BX=0003h)

Note

     	similar to function 0003h, but apparently does not allow multiple
  fragments

SeeAlso

    BX=0003


INT 7A

7A - Novell NetWare - SPX Driver - INSTALLATION CHECK

BX = 0010h
AL = 00h

Return

        AL = FFh if SPX loaded
    BH = SPX major version
    BL = SPX minor version
    CX = maximum SPX connections
    DX = SPX connections available

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    BX=0015


INT 7A

7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION

BX = 0011h
AL = retry count
AH = watchdog flag
ES:SI -> Event Control Block (see BX=0003h)

Return

        AL = status
    00h attempting to contact destination socket
    EFh local connection table full
    FDh buffer size not 42 or fragment count not 1
    FFh sending socket not open
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.  Fill in all
  destination addresses.
this function is supported by Advanced NetWare 2.1+

SeeAlso

    BX=0000h    BX=0012h    BX=0013h    BX=0014h    BX=0015

Table Formats

SPX header:


INT 7A

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 BX=0003h)

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=0014


INT 7A

7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION

BX = 0013h
DX = connection ID to terminate
ES:SI -> Event Control Block (see BX=0003h)

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    BX=0011h    BX=0012h    BX=0014


INT 7A

7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION

BX = 0014h
DX = connection ID to terminate

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=0013


INT 7A

7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS

BX = 0015h
DX = connection ID
ES:SI -> status buffer (see below)

Return

        AL = return code
    00h connection still valid
ES:SI -> status buffer filled
    EEh no such connection

Note

     	this function is supported by Advanced NetWare 2.1+

SeeAlso

    BX=0010h    BX=0011

Table Formats

Status buffer:


INT 7A

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=0017


INT 7A

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=0016


INT 7A

7A U - Novell NetWare - SPX Driver - internal - ADD DIAGNOSTIC ELEMENT

BX = 0018h
ES:SI -> diagnostic element (see below) 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=0019

Table Formats

Diagnostic element:


INT 7A

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=0018


INT 7A

7A U - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT

BX = 001Ah

Return

        AX = packet size with preamble
CX = IPX retry count

Note

     	this function is supported on file servers only under v2.15; v3.02 also
  supports it on workstations

SeeAlso

    BX=000D


INT 7A

7A U - Novell NetWare - IPX Driver - INTERNAL

BX = 001Bh
???

Return

        ???

Note

     	this function is supported on file servers only under v2.15; v3.02 also
  supports it on workstations


INT 7A AH=04

7A - IBM 3270 Workstation Program API - CREATE A QUEUE

AH = 04h
???

Return

        ???

SeeAlso

    INT 7A AH=06


INT 7A AH=06

7A - IBM 3270 Workstation Program API - DELETE A QUEUE

AH = 06h
???

Return

        ???

SeeAlso

    INT 7A AH=04


INT 7A AH=09

7A - IBM 3270 Workstation Program API - SESSION SERVICES

AH = 09h
BX = 8020h (synchronous request)
CX = 0000h
DX = ID of session manager (SESSMGR)
AL = 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
ES:DI -> control block

Return

        ???


INT 7A AH=09

7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES

AH = 09h
BX = 8020h (synchronous request)
CX = 0000h
DX = ID of keyboard manager
AL = 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
ES:DI -> control block

Return

        ???


INT 7A AH=09

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
    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
ES:DI -> control block

Return

        ???


INT 7A AH=09

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

        ???


INT 7A AH=09

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

        ???


INT 7A AH=09

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


INT 7A AH=09

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

        ???


INT 7A AH=09

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

        ???


INT 7A AH=09

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

        ???


INT 7A AH=09

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
   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
ES:DI -> control block


INT 7A AH=13

7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE

AH = 13h
???

Return

        ???


INT 7A AH=7A

7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE

AH = 7Ah
???

Return

        AX = 0000h success
     000Eh undefined function code

Note

     	this interface is normally on INT 7A but can be changed via device
  driver command line arguments


INT 7A AH=81

7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME

AH = 81h
ES:DI -> 8-char blank-padded gate name
"SESSMGR ", "KEYBOARD", "WSCTRL	 ", "MFIC    ", "PCPSM	 ",
"3270EML ", "COPY    ", "XLATE	 ", "OIAM    ", "MEMORY	 ",
"INDJQRY ", or "INDJASY "

Return

        DX = gate ID


INT 7A AH=83

7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS

AH = 83h
???

Return

        ???


INT 7A AX=FDCB

7A - IBM Personal Communications/3270 - INSTALLATION CHECK

AX = FDCBh

Return

        DX:AX -> PCS/3270 signature block if loaded (see below)

Table Formats

Signature block:


INT 7A AX=FE01

7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION

AX = FE01h
???

Return

        ???

SeeAlso

    INT 7A AX=FE02


INT 7A AX=FE02

7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION

AX = FE02h
???

Return

        ???

SeeAlso

    INT 7A AX=FE01


INT 7A AX=FF01

7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION

AX = FF01h
ES:DI -> API function handler routine

Return

        CX = 1200h

SeeAlso

    INT 7A AX=FF02    INT 7A AX=FF03


INT 7A AX=FF02

7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION

AX = FF02h

Return

        CX = 1200h

SeeAlso

    INT 7A AX=FF01


INT 7A AX=FF03

7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION

AX = FF03h
ES:DI -> send/receive function handler routine

Return

        CX = 1200h

SeeAlso

    INT 7A AX=FF01


INT 7A AX=FF04

7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???

AX = FF04h
ES:DI -> ???

Return

        CX = 1200h


INT 7B

7B - Btrieve API (single user)

DS:DX -> 38-byte parameter record (see below)

Return

        return code field set

Note

     	Btrieve sets low byte of vector to 33h; this serves as the installation
  check

SeeAlso

    INT 2F AX=AB01    INT 7F AX=0200

Table Formats

Btrieve parameter record:
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 ???
 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)

Values for 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
 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


INT 7B

7B - Eicon Access API (3270/5250 gateways)


INT 7B

7B CU - AutoCAD ADI INTERFACE

AX = function
    0000h output blank line
    other ???

Return

        ???

Note

     	called by AutoCAD to perform its output

SeeAlso

    INT 78AutoCAD"    INT 7AAutoCAD


INT 7B

7B - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ3

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 0BINT 10/AH=FFh"GO32"    INT 7AGO32"    INT 7CGO32


INT 7C

7C U - IBM REXX88PC command language

???


INT 7C

7C - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ4

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 0CINT 7B"GO32"    INT 7DGO32


INT 7D

7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT

Note

     	this interface proposal has been moved to INT 2D; there are no known
  implementations on INT 7D

SeeAlso

    INT 2D INT 2


INT 7D

7D U - YTERM 1.4 - CLOCK SUPPORT

SeeAlso

    INT 7EYTERM


INT 7D

7D - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ5

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 0DINT 7C"GO32"    INT 7EGO32


INT 7D

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.

Table Formats

HyperPAD data area:


INT 7E

7E - RESERVED FOR DIP, Ltd. ROM LIBRARY


INT 7E

7E U - YTERM 1.4 - ???

SeeAlso

    INT 7DYTERM"    INT 7FYTERM


INT 7E

7E - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ6

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 0EINT 7D"GO32"    INT 7FGO32


INT 7F

7F - IBM XGA - ???


INT 7F

7F - Halo88 - API

BX = 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
additional parameters on stack

Return

        ???

Notes

      	Halo88 is a suite of graphics routines
according to Stuart Kemp, the code appears to make no provisions for
   chaining


INT 7F

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


INT 7F

7F - Telebit ACS SERIAL I/O

ES:SI-> parameter block

Return

        CF set on error
CF clear on success

Notes

      	the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  handler; this serves as the installation check

Table Formats

Telebit ACS parameter block:
Values for 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 gw_no/port already in use
 15h invalid connection response
 16h port invalid
 17h incorrect version in server response
 18h gw_no/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 used
 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


INT 7F

7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE

Notes

      	the installation check consists of checking 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.
Before placing the server into "console" mode, it is recommended that
  NetWare broadcast messages be disabled with INT 21/AX=DE00h.

SeeAlso

    INT 21 AX=DE00


INT 7F

7F U - YTERM - ???

SeeAlso

    INT 7EYTERM


INT 7F

7F - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ7

Note

     	this vector is overwritten when GO32 starts but is not restored

SeeAlso

    INT 0FINT 7E"GO32


INT 7F

7F - Canon IXHND2 Scanner Interface


INT 7F

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


INT 7F

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


INT 7F AH=00

7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT

AH = 00h
DS:DX -> ASCIZ semaphore name (max 64 bytes)

Return

        AL = status
    00h successful
    01h invalid function
    02h semaphore already locked
    03h unable to lock semaphore
    04h semaphore space exhausted
    05h host/target PC did not respond (NTNX)
AH = semaphore owner if status=02h

SeeAlso

    INT 7F AH=01    INT 7F AH=02    INT 7F AH=41    INT 67 AH=00


INT 7F AH=01

7F - Alloy NTNX, MW386 - SEMAPHORE LOCK

AH = 01h
DS:DX -> ASCIZ semaphore name (max 64 bytes)

Return

        AL = status (see AH=00h)
AH = semaphore owner if status=02h

SeeAlso

    INT 7F AH=00    INT 7F AH=02    INT 7F AH=41


INT 7F AX=0104

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 below)

Return

        parameter control block updated

SeeAlso

    INT 7F AX=0105    INT 7F AX=ABCD

Table Formats

Parameter control block:
Values for HLLAPI function number:
 00h	Query system (Attachmate implementation only)
 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
 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
 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
 FFh	Get info on DCA implementation

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)

Session Parameters for function 09h:
 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	interruptible 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


INT 7F AX=0105

7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE

AX = 0105h

Return

        CF set on error
CF clear if successful
    CX:DX -> array of FAR pointers to entry points

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

SeeAlso

    INT 7F AX=0104    INT 7F AX=ABCD

Function numbers: (do FAR call via entry_points+4*function)
 08h	HOPEN
 10h	HINT
 13h	HLDPAL
 15h	HBBW
 17h	HBBR
 18h	HBBCHN
 1Dh	HQMODE
 22h	HCLOSE
 30h	HINIT
 31h	HSYNC
 39h	HSPAL
 3Ah	HRPAL


INT 7F AH=02

7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE

AH = 02h
DS:DX -> ASCIZ semaphore name (max 64 bytes)

Return

        AL = status
    00h successful
    01h invalid function
    02h semaphore locked by other user
AH = semaphore owner
    03h unable to unlock semaphore
    05h target PC did not respond

SeeAlso

    INT 7F AH=00    INT 7F AH=01    INT 7F AH=42


INT 7F AX=0200

7F - Btrieve Multi-User - GIVE UP TIME???

AX = 0200h

SeeAlso

    INT 2F AX=AB01    INT 2F AX=AB02    INT 7BBtrieve


INT 7F AH=03

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

    INT 7F AH=04    INT 7F AH=05    INT 7F AH=A1


INT 7F AH=04

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

    INT 7F AH=03


INT 7F AH=05

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=A4


INT 7F AH=05

7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS

AH = 05h
DX:DI -> buffer for user information record (see below)

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

    INT 7F AH=03

Table Formats

User information record:


INT 7F AH=06

7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO

AH = 06h
AL = drive number (1=A:, 2=B:, etc)
ES:DI -> drive info record (see below)

Return

        AX = status
    0000h successful
ES:DI buffer filled
    0001h not shared drive

Table Formats

Drive info record:


INT 7F AH=06

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)


INT 7F AH=07

7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES

AH = 07h

Return

        ES:DI -> shared drive list (see below)

Note

     	MW386 considers all fixed disks to be shared drives; only C and D will
  be returned as shared

Table Formats

Shared drive list:


INT 7F AH=08

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

    INT 7F AH=09    /CL=03h    INT 21 AH=35


INT 7F AH=08

7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT

AH = 08h
CL = 02h
DX = timeout in seconds

Return

        AL = status
    00h successful
    02h invalid subfunction


INT 7F AH=09

7F - MultiLink Advanced - SET TASK PRIORITY

AH = 09h
AL = priority (0-7)

Note

     	the installation check consists of ensuring that the interrupt vector
  is not pointing at segment 0000h, then checking whether the byte
  at offset 0000h in the interrupt handler's segment is E9h


INT 7F AH=09

7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING

AH = 09h
CL = function
    00h enable checking of RTNX.MUD file
    01h disable RTNX.MUD checking


INT 7F AH=09

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


INT 7F AH=09

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

    INT 7F AH=08


INT 7F AH=0A

7F - Alloy NTNX - GET SYSTEM FLAGS

AH = 0Ah
CL = 00h
ES:DI -> buffer for system flags (see below)

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

Table Formats

System flags:


INT 7F AH=0B

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


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL

AH = 10h
CL = 00h
AL = channel number
DX:DI -> channel buffer

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction
    0Dh unable to open

Note

     	may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=01h    INT 7F AH=10    /CL=04h    INT 7F AH=14    /CL=02


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL

AH = 10h
CL = 01h
AL = channel number

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction
    0Ah channel not open

Note

     	may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=00h    INT 7F AH=10    /CL=05


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL

AH = 10h
CL = 02h
AL = channel number

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction
    0Ah channel not open
    0Ch channel already locked

Note

     	may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=03h    INT 7F AH=10    /CL=06h    INT 7F AH=10    /CL=08


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL

AH = 10h
CL = 03h
AL = channel number

Return

        AL = status (see AH=10h/CL=02h)

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

    INT 7F AH=10    /CL=02h    INT 7F AH=10    /CL=04h    INT 7F AH=10    /CL=09


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER

AH = 10h
CL = 04h
AL = channel number

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Notes

      	unlocks buffer after received datagram has been processed
may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=00


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS

AH = 10h
CL = 05h

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Notes

      	clears all pending datagrams and clears buffer pointers before closing
  the channels
may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=01


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS

AH = 10h
CL = 06h

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Note

     	may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=02h    INT 7F AH=10    /CL=08


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS

AH = 10h
CL = 07h

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Notes

      	unlocks all locked channels which have no pending datagrams
may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=03h    INT 7F AH=10    /CL=09


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS

AH = 10h
CL = 08h
DX = maximum channel number to lock

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Notes

      	locks channels numbered 00h through the value in DX
may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=02h    INT 7F AH=10    /CL=06h    INT 7F AH=10    /CL=09


INT 7F AH=10

7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS

AH = 10h
CL = 09h
DX = maximum channel number to unlock

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Notes

      	unlocks channels numbered 00h through the value in DX
may not be invoked from within a hardware interrupt handler

SeeAlso

    INT 7F AH=10    /CL=03h    INT 7F AH=10    /CL=07h    INT 7F AH=10    /CL=08


INT 7F AH=11

7F - Alloy NTNX, MW386 - SEND DATAGRAM

AH = 11h
DX:SI -> request block (see below)

Return

        AL = 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)

Note

     	if wildcard channel FFh used, actual channel number will be filled in

SeeAlso

    INT 7F AH=12

Table Formats

Request block:


INT 7F AH=12

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
    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

Note

     	also unlocks the channel, allowing the next datagram to be received

SeeAlso

    INT 7F AH=11    INT 7F AH=15    /CL=04


INT 7F AH=13

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


INT 7F AH=14

7F - Alloy NTNX, MW386 -  SET RECEIVE ISR

AH = 14h
CL = 00h
DX:DI -> application FAR receive service routine (see below)

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

SeeAlso

    INT 7F AH=14    /CL=01h    INT 7F AH=14    /CL=03

Service routine 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


INT 7F AH=14

7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR

AH = 14h
CL = 01h
DX:DI -> application FAR acknowledge service routine (see below)

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Note

     	the service routine will be called as soon as an acknowledgment arrives

SeeAlso

    INT 7F AH=12    INT 7F AH=14    /CL=00h    INT 7F AH=14    /CL=04h    INT 7F AH=15    CL=04

Service routine called with:
DS:SI -> acknowledge structure (see AH=15h/CL=04h)

Return

        AL = response code
    00h application busy, network executive should call again later
    01h acknowledge accepted
AH,DX,SI may be destroyed


INT 7F AH=14

7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER

AH = 14h
CL = 02h
AL = channel number
DX:DI -> receive buffer

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

Note

     	may be called from within a receive ISR or when a datagram is pending

SeeAlso

    INT 7F AH=10    /CL=00h    INT 7F AH=14    /CL=00


INT 7F AH=14

7F - Alloy NTNX, MW386 - GET RECEIVE ISR

AH = 14h
CL = 03h

Return

        DX:DI -> current receive ISR

SeeAlso

    INT 7F AH=14    /CL=00h    INT 7F AH=14    /CL=04


INT 7F AH=14

7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR

AH = 14h
CL = 04h

Return

        DX:DI -> current acknowledge ISR

SeeAlso

    INT 7F AH=14    /CL=01h    INT 7F AH=14    /CL=03


INT 7F AH=14

7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER

AH = 14h
CL = 05h
DX:DI -> buffer for busy structure (see below)

Return

        DX:DI buffer filled

Table Formats

Busy structure:


INT 7F AH=15

7F - Alloy NTNX, MW386 - GET CHANNEL STATUS

AH = 15h
CL = 00h
AL = channel number
DX:DI -> status structure (see below)

Return

        AL = status
    00h successful
    01h busy
    02h channel range error (not 00h-3Fh)
    03h invalid subfunction

SeeAlso

    INT 7F AH=15    /CL=01

Table Formats

Status structure:


INT 7F AH=15

7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL

AH = 15h
CL = 01h
DX:DI -> full-channel structure

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

    INT 7F AH=15    /CL=00

Table Formats

Full-channel structure:


INT 7F AH=15

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

    INT 7F AH=15    /CL=03


INT 7F AH=15

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

    INT 7F AH=15    /CL=02


INT 7F AH=15

7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS

AH = 15h
CL = 04h
DX:DI -> status structure (see below)

Return

        AL = status
    00h successful
DX:DI structure filled
    01h busy
    0Ah no acknowledgement has arrived

SeeAlso

    INT 7F AH=12    INT 7F AH=14    /CL=01

Table Formats

Status structure:


INT 7F AH=16

7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER

AH = 16h
DX:SI -> transfer structure (see below)

Return

        AL = status
    00h successful
    0Ah source or destination out of range
    0Bh transfer kernal 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

Table Formats

Transfer structure:


INT 7F AH=21

7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)

AH = 21h
AL = sender's user ID
DS:DX -> control packet (see below)

Note

     	messages or commands are ignored if disabled by the destination user

SeeAlso

    INT 7F AH=22

Table Formats

Control packet:


INT 7F AH=22

7F - Alloy NTNX - GET MESSAGE

AH = 22h

Return

        pending messages displayed on user's screen

SeeAlso

    INT 7F AH=21


INT 7F AH=24

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
    00h successful
    01h invalid request
    02h already attached
    03h not attached
    04h lock table full

Note

     	only drives on the current machine may be attached


INT 7F AH=24

7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR

AH = 24h
CL = function
    02h attach host
    03h release host

Return

        AX = status
    00h successful
    01h invalid request
    02h already attached
    03h not attached
    04h lock table full

Note

     	the host processor may be attached in order to perform I/O via the host


INT 7F AH=25

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

    INT 7F AH=25    /CL=01


INT 7F AH=25

7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE

AH = 25h
CL = 01h

Return

        CL = type
    00h RTNX
    01h ATNX
    02h NTNX
    03h BTNX
    04h MW386
    05h ANSK

SeeAlso

    INT 7F AH=25    /CL=00


INT 7F AH=26

7F - Alloy NTNX, MW386 - GET NTNX FILE MODE

AH = 26h
CL = 00h

Return

        AX = file mode bits
    bit 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

Note

     	MW386 does not support file modes, and always returns AX=001Fh

SeeAlso

    INT 7F AH=26    INT 7F AH=26    /CL=06


INT 7F AH=26

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

    INT 7F AH=26    /CL=00h    INT 7F AH=26    /CL=06


INT 7F AH=26

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

    INT 7F AH=26    /CL=00


INT 7F AH=30

7F - Alloy MW386 - GET PORT INFORMATION

AH = 30h
CX = MW386 port number

Return

        AL = 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=8B


INT 7F AH=31

7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT

AH = 31h
???

Return

        ???


INT 7F AH=37

7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE

AH = 37h

Return

        ES:AX -> semaphore table


INT 7F AH=37

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


INT 7F AH=38

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

    INT 7F AH=39


INT 7F AH=39

7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER

AH = 39h
AL = new terminal driver number
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

    INT 7F AH=38


INT 7F AH=3A

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

    INT 7F AH=3B


INT 7F AH=3B

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

    INT 7F AH=3A    INT 7F AH=3D


INT 7F AH=3C

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

    INT 7F AH=3D


INT 7F AH=3D

7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES

AH = 3Dh

Note

     	should be called whenever a program changes the terminal type or its
  parameters

SeeAlso

    INT 7F AH=3B


INT 7F AH=41

7F - Alloy NTNX - LOCK FILE FOR USER

AH = 41h
AL = user ID
DS:DX -> ASCIZ filename

Return

        AL = status
    00h successful
    01h invalid function
    02h already locked
    03h unable to lock
    04h lock table full

Note

     	requests exclusive read/write access to file

SeeAlso

    INT 7F AH=00    INT 7F AH=41"MW386"    INT 7F AH=42"NTNX"


INT 7F AH=41

7F - Alloy MW386 - LOCK SEMAPHORE FOR USER

AH = 41h
AL = user ID
DS:DX -> ASCIZ semaphore name

Return

        AL = status
    00h successful
    01h invalid function
    02h semaphore already locked
    03h unable to lock semaphore
    04h semaphore space exhausted

SeeAlso

    INT 7F AH=00    INT 7F AH=42"MW386"


INT 7F AH=42

7F - Alloy NTNX - UNLOCK FILE FOR USER

AH = 42h
AL = user ID
DS:DX -> ASCIZ filename

Return

        AL = status
    00h successful
    01h invalid function
    02h already locked
    03h unable to lock
    04h lock table full

SeeAlso

    INT 7F AH=00    INT 7F AH=41"NTNX"    INT 7F AH=42"MW386"


INT 7F AH=42

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

    INT 7F AH=02    INT 7F AH=41"MW386"    INT 7F AH=42"NTNX"


INT 7F AH=4E

7F - Alloy MW386 v2+ - SET ERROR MODE

AH = 4Eh
AL = error mode flags
    bit 0: display critical disk errors
1: display sharing errors
DX = 4E58h ("NX")

Return

        AL = status
    00h successful

SeeAlso

    INT 7F AH=4F


INT 7F AH=4F

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


INT 7F AH=81

7F - Alloy NTNX - ATTACH DEVICE FOR USER

AH = 81h
AL = user ID
DS:DX -> ASCIZ device name

SeeAlso

    INT 7F AH=82


INT 7F AH=82

7F - Alloy NTNX - RELEASE DEVICE FOR USER

AH = 82h
AL = user ID
DS:DX -> ASCIZ device name

SeeAlso

    INT 7F AH=81


INT 7F AH=A0

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

    INT 7F AH=03    INT 7F AH=A1


INT 7F AH=A1

7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER

AH = A1h

Return

        AL = process number
DL = user number
DH = machine number

SeeAlso

    INT 7F AH=03    INT 7F AH=A0    INT 7F AH=A2


INT 7F AH=A2

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

    INT 7F AH=A1    INT 7F AH=A3


INT 7F AH=A3

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

    INT 7F AH=A2


INT 7F AH=A4

7F - Alloy MW386 - VERIFY USER PASSWORD

AH = A4h
DS:DX -> ASCIZ password (null-padded to 16 bytes)

Return

        AL = 00h if accepted
   else	 invalid password


INT 7F AH=A5

7F - Alloy MW386 - GET/SET USER STATUS

AH = A5h
AL = function
    00h get status
Return: 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
    01h set status
BX = user flags (see above)
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


INT 7F AX=ABCD

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

SeeAlso

    INT 7F AX=0104    INT 7F AX=0105

Function numbers:
 00h	check initialization and reset
 14h	set user-defined subroutine

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

Table Formats

Parameter block for function 00h:
Results buffer for function 00h:


INT 7F AH=B0

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

    INT 7F AH=B1    INT 7F AH=B2    INT 7F AH=B3    INT 7F AH=B4


INT 7F AH=B1

7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER

AH = B1h
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

    INT 7F AH=B0    INT 7F AH=B2    INT 7F AH=B3    INT 7F AH=B4


INT 7F AH=B2

7F - Alloy NTNX - RELEASE MESSAGES FOR USER

AH = B2h
AL = (bits 7-5) 001
     (bits 4-0) user ID

SeeAlso

    INT 7F AH=B0    INT 7F AH=B1    INT 7F AH=B3    INT 7F AH=B4


INT 7F AH=B3

7F - Alloy NTNX - RELEASE FILES FOR USER

AH = B3h
AL = (bits 7-5) 010
     (bits 4-0) user ID

SeeAlso

    INT 7F AH=B0    INT 7F AH=B1    INT 7F AH=B2    INT 7F AH=B4


INT 7F AH=B4

7F - Alloy NTNX - RELEASE DEVICES FOR USER

AH = B4h
AL = user ID

SeeAlso

    INT 7F AH=B0    INT 7F AH=B1    INT 7F AH=B2    INT 7F AH=B3


INT 7F AH=C3

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

    INT 7F AH=C6


INT 7F AH=C5

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


INT 7F AH=C6

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

    INT 7F AH=C3    INT 7F AH=C7


INT 7F AH=C7

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

    INT 7F AH=C5    INT 7F AH=C6    INT 7F AH=C8


INT 7F AH=C8

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

    INT 7F AH=C7


INT 7F AH=CF

7F - Alloy NTNX - REBOOT USER PROCESSOR

AH = CFh
DS:DX -> ASCIZ string containing user number to be reset

SeeAlso

    INT 7F AH=D6


INT 7F AH=D6

7F - Alloy MW386 - RESET NETWORK EXECUTIVE

AH = D6h
DS:DX -> reset packet (see below)

Return

        never if succesful

Note

     	all users will be shut down immediately if successful

SeeAlso

    INT 7F AH=CF

Table Formats

Reset packet:


INT 7F AH=D7

7F - Alloy MW386 - POST EVENT

AH = D7h
AL = user number (if local event)
DX = event number


INT 7F AH=D8

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=0D    INT 21 AX=5D01    INT 2F AX=1120


INT 7F AH=DB

7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE

AH = DBh

Return

        AL = drive from which MW386 was started (2=C:,3=D:,etc)


INT 7F AH=E0

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

    INT 7F AH=E1    INT 7F AH=E2    INT 7F AH=E3    INT 7F AH=E6    INT 7F AH=E7


INT 7F AH=E1

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

    INT 7F AH=E0    INT 7F AH=E2


INT 7F AH=E2

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

    INT 7F AH=E0    INT 7F AH=E1


INT 7F AH=E3

7F - Alloy MW386 - CHANGE NAME OF DOS TASK

AH = E3h
---v1.x---
AL = user number
---v2+---
BH = user number
BL = task number
---
DS:DX -> ASCIZ task name

Return

        CF set on error (invalid process number)

SeeAlso

    INT 7F AH=E0    INT 7F AH=E4    INT 7F AH=E5


INT 7F AH=E4

7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER

AH = E4h
---v1.x---
AL = user number
---v2+---
BH = user number
BL = task number
---
ES:DI -> buffer for task name

Return

        CF clear if successful
    CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
    DX = task flags
bit 7: MSDOS process
    ES:DI buffer filled
CF set on error (invalid process number)

SeeAlso

    INT 7F AH=E3    INT 7F AH=E5


INT 7F AH=E5

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

    INT 7F AH=E3    INT 7F AH=E4


INT 7F AH=E6

7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS

AH = E6h

Return

        AX = number of processes available to current user

SeeAlso

    INT 7F AH=E0


INT 7F AH=E7

7F - Alloy MW386 - REMOVE DOS TASK

AH = E7h
AL = DOS process number

Return

        CF set on error (invalid process number or first process)

Note

     	can only be called by a foreground task

SeeAlso

    INT 7F AH=E0


INT 7F AH=E8

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=1000    INT 21 AH=EE"DoubleDOS"    INT 2F AX=1680


INT 7F AH=F0

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

    INT 7F AH=F1    INT 7F AH=F2    INT 7F AH=F3


INT 7F AH=F1

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

    INT 7F AH=F0


INT 7F AH=F2

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

    INT 7F AH=F0    INT 7F AH=F3


INT 7F AH=F3

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

    INT 7F AH=F2


INT 7F AH=F8

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

    INT 7F AH=F9    INT 7F AH=FA


INT 7F AH=F9

7F - Alloy MW386 - REMOVE USER FROM GROUP

AH = F9h
AL = group number
DL = user number
DH = machine number (currently 00h)

Return

        CF set if failed

SeeAlso

    INT 7F AH=F8    INT 7F AH=FA


INT 7F AH=FA

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

    INT 7F AH=F8    INT 7F AH=F9


INT 7F AH=FB

7F - Alloy MW386 - ASSIGN GROUP NAME

AH = FBh
CL = group number
ES:DI -> ASCIZ group name (max 17 bytes)

SeeAlso

    INT 7F AH=FC


INT 7F AH=FC

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

    INT 7F AH=FB


INT 80

80 - Q-PRO4 - ???


INT 80

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 81BASIC


INT 80

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    INT 2F AX=FBFB


INT 80

80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS

BX = 0001h
DX:AX -> music status byte

SeeAlso

    BX=0000h    BX=0002h    BX=0003


INT 80

80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE

BX = 0002h
CX = number of instruments
DX:AX -> instrument table

SeeAlso

    BX=0000h    BX=0001h    BX=0005


INT 80

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    BX=0001h    BX=0004


INT 80

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    BX=0003


INT 80

80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC

BX = 0005h
AX = semi-tone offset

SeeAlso

    BX=0000h    BX=0002h    BX=0006


INT 80

80 - SoundBlaster SBFM driver - PLAY MUSIC

BX = 0006h
DX:AX -> music block

Return

        AX = status
    0000h successful
    0001h music already active

SeeAlso

    BX=0000h    BX=0007h    BX=000A


INT 80

80 - SoundBlaster SBFM driver - STOP MUSIC

BX = 0007h

Return

        AX = status
    0000h successful
    0001h music not active

SeeAlso

    BX=0000h    BX=0006h    BX=0009


INT 80

80 - SoundBlaster SBFM driver - RESET DRIVER

BX = 0008h

Return

        AX = status
    0000h successful
    0001h music is active

SeeAlso

    BX=0000


INT 80

80 - SoundBlaster SBFM driver - PAUSE MUSIC

BX = 0009h

Return

        AX = status
    0000h successful
    0001h no music active

SeeAlso

    BX=0000h    BX=0007h    BX=000A


INT 80

80 - SoundBlaster SBFM driver - RESUME MUSIC

BX = 000Ah

Return

        AX = status
    0000h successful
    0001h no music paused

SeeAlso

    BX=0000h    BX=0006h    BX=0009


INT 80

80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS

BX = 000Bh
DX:AX -> trap routine

SeeAlso

    BX=0000


INT 80 AH=01

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


INT 80 AH=02

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

    INT 80 AH=05


INT 80 AH=03

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

    INT 80 AH=06


INT 80 AH=04

80 - QPC Software PKTINT.COM - ENABLE???

AH = 04h
BX = ???

Return

        ???


INT 80 AH=05

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

    INT 80 AH=02


INT 80 AH=06

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

    INT 80 AH=03


INT 81

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 80BASIC"    INT 82BASIC


INT 81

81 - IBM TOKEN RING ADAPTER - ???


INT 82

82 - reserved for BASIC

SeeAlso

    INT 81BASIC"    INT 83BASIC


INT 82

82 - IBM TOKEN RING ADAPTER - ???

AH = function
    00h display message???
DS:BX -> string
???

Return

        ???


INT 83

83 - reserved for BASIC

SeeAlso

    INT 82BASIC"    INT 84BASIC


INT 84

84 - reserved for BASIC

SeeAlso

    INT 83BASIC"    INT 85BASIC


INT 85

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 84BASIC"    INT 86BASIC


INT 86

86 - NetBIOS - ORIGINAL INT 18

Note

     	some implementations of NetBIOS reportedly relocate INT 18 here

SeeAlso

    INT 18


INT 86

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 85BASIC"    INT 87BASIC


INT 86

86 - APL*PLUS/PC - Terminate APL session and return to DOS

SeeAlso

    INT 21 AH=4C    INT 87APL


INT 87

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 86BASIC"    INT 88BASIC


INT 87

87 - APL*PLUS/PC - ???

SeeAlso

    INT 86APL"    AL=00


INT 88

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 87BASIC"    INT 89BASIC


INT 88

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 below)

Return

        ES:DI -> first data byte of object
DX:CX = number of elements in the object

SeeAlso

    INT C8APL

Table Formats

Shape model:


INT 88

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=02h    AL=08h    INT C8APL


INT 88

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 C8APL


INT 88

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 C8APL


INT 88

88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL

AL = F5h
BX = STPTR of object

SeeAlso

    INT C8APL


INT 88

88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING

AL = F6h
BX = STPTR of object

SeeAlso

    AL=F7h    AL=F8h    INT C8APL


INT 88

88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING

AL = F7h
BX = STPTR of object

SeeAlso

    AL=F6h    AL=F8h    INT C8APL


INT 88

88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING

AL = F8h
BX = STPTR of object

Return

       	 BX = 0000h eligible
      0001h not eligible

SeeAlso

    AL=F6h    AL=F7h    INT C8APL


INT 88

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 C8APL


INT 88

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 C8APL


INT 88

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 C8APL


INT 88

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 C8APL


INT 88

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 C8APL


INT 89

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 88BASIC"    INT 8ABASIC


INT 8A

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 89BASIC"    INT 8BBASIC


INT 8A

8A - APL*PLUS/PC - PRINT SCREEN

Note

     	same as INT 05

SeeAlso

    INT 05INT 8C"APL"    INT CAAPL


INT 8B

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 8ABASIC"    INT 8CBASIC


INT 8B

8B - APL*PLUS/PC - BEEP

Note

     	same as printing a ^G via INT 21/AH=02h

SeeAlso

    INT 21 AH=02    INT CBAPL


INT 8C

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


INT 8C

8C - APL*PLUS/PC - CLEAR SCREEN MEMORY

AX = flag
    0000h do not save display attributes
    0001h save attributes

SeeAlso

    INT CCAPL


INT 8D

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


INT 8E

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


INT 8F

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


INT 90

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


INT 90

90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER


INT 91

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


INT 91

91 - IBM TOKEN RING ADAPTER - ???


INT 92

92 - 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


INT 92

92 - Sangoma X.25 INTERFACE PROGRAM

BX:DX -> control block

SeeAlso

    INT 68Sangoma


INT 92 AH=E1

92 - Da Vinci eMail Dispatcher INTERFACE

AH = E1h
AL = function
BX = stack count (number of words to push)
CX:DX -> stack data (in word-reversed order ready to push)

Return

        AX = status
    0001h success
    FF97h "ERS_NOT_AVAILABLE"
    FF99h "ERS_TOO_MANY_NAMES"
    FF9Ah "ERS_BAD_NAME_PASSWORD"
    FFE3h "ERS_NAME_NOT_FOUND"
    FFF8h "ERS_USE_STRING" (call NetGetError to get error string)
    FFFFh "ERS_NO_SUCH_FILE"

Note

     	preserves BP, DS, SI, DI; other registers may be destroyed


INT 92 AX=E100

92 - Da Vinci eMail Dispatcher - "NetInitStart"

AX = E100h
BX = 000Ah
CX:DX -> parameter block (see below)

Return

        AX = 0001h success

Note

     	this function is used to initialize the dispatcher

SeeAlso

    INT 92 AX=E101    INT 92 AX=E103

Table Formats

Parameter block:


INT 92 AX=E101

92 - Da Vinci eMail Dispatcher - "NetInitCheck"

AX = E101h
BX = 0000h
CX:DX ignored

Return

        AX = 0001h success

SeeAlso

    INT 92 AX=E100


INT 92 AX=E102

92 - Da Vinci eMail Dispatcher - "NetCheckDriver"

AX = E102h
BX = 0000h
CX:DX ignored

Return

        AX = 0001h success

Note

     	this function is used to determine if the dispatcher is loaded

SeeAlso

    INT 92 AX=E10B    INT 92 AX=E180


INT 92 AX=E103

92 - Da Vinci eMail Dispatcher - "NetTerminate"

AX = E103h
BX = 0000h
CX:DX ignored

Return

        AX = status (see AH=E1h)

SeeAlso

    INT 92 AX=E100


INT 92 AX=E104

92 - Da Vinci eMail Dispatcher - "NetWhereIs"

AX = E104h
BX = 0006h
CX:DX -> parameter block (see below)

Return

        AX = status (see AH=E1h)

Note

     	this function is used to verify node address for usernames

Table Formats

Parameter block:


INT 92 AX=E105

92 - Da Vinci eMail Dispatcher - "NetOpen"

AX = E105h
BX = 0007h
CX:DX -> parameter block (see below)

Return

        AX = 0000h Error
AX = handle

Note

     	this function is used to open a submission channel

SeeAlso

    INT 92 AX=E10A

Table Formats

Parameter block:


INT 92 AX=E106

92 - Da Vinci eMail Dispatcher - "NetRead"

AX = E106h
BX = 0004h
CX:DX -> parameter block

Return

        AX = 0001h

SeeAlso

    INT 92 AX=E108


INT 92 AX=E107

92 - Da Vinci eMail Dispatcher - "NetGetError"

AX = E107h
BX = 0002h
CX:DX -> parameter block

Return

        AX = 0001h


INT 92 AX=E108

92 - Da Vinci eMail Dispatcher - "NetWrite"

AX = E108h
BX = 0004h
CX:DX -> parameter block (see below)

Return

        AX = amount written

Note

     	this function is used to write transactions to the dispatcher.
  The command block is written first and then another call is used
  to write the associated data.

SeeAlso

    INT 92 AX=E106

Table Formats

Parameter block:
Command buffer:
Message header buffer:


INT 92 AX=E109

92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)

AX = E109h
BX = 0001h
CX:DX -> ???

Return

        AX = FF97h (ERS_NOT_AVAILABLE)


INT 92 AX=E10A

92 - Da Vinci eMail Dispatcher - "NetClose"

AX = E10Ah
BX = 0001h
CX:DX -> parameter block (see below)

Return

        AX = 0001h

Note

     	this function is used to close a dispatcher handle

SeeAlso

    INT 92 AX=E105

Table Formats

Parameter block:


INT 92 AX=E10B

92 - Da Vinci eMail Dispatcher - "NetCheckQueue"

AX = E10Bh
BX = 0004h
CX:DX -> parameter block (see below)

Return

        AX = 0001h

SeeAlso

    INT 92 AX=E102    INT 92 AX=E10C

Table Formats

Parameter block:


INT 92 AX=E10C

92 - Da Vinci eMail Dispatcher - "NetReadQueue"

AX = E10Ch
BX = 0002h
CX:DX -> parameter block (see below)

Return

        AX = 0001h

SeeAlso

    INT 92 AX=E10B

Table Formats

Parameter block:


INT 92 AX=E10D

92 - Da Vinci eMail Dispatcher - "NetSubmitName"

AX = E10Dh
BX = 0006h
CX:DX -> parameter block (see below)

Return

        AX = status (see AH=E1h)

Note

     	this function is used to verify username/password

SeeAlso

    INT 92 AX=E10E

Table Formats

Parameter block:


INT 92 AX=E10E

92 - Da Vinci eMail Dispatcher - "NetRemoveName"

AX = E10Eh
BX = 0004h
CX:DX -> parameter block (see below)

Return

        AX = 0001h

Note

     	this function is used to remove a username

SeeAlso

    INT 92 AX=E10D

Table Formats

Parameter block:


INT 92 AX=E10F

92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY

AX = E10Fh
BX = 0000h
CX:DX ignored

Return

        AX = 0001h


INT 92 AX=E110

92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"

AX = E110h
BX = 0006h
CX:DX -> ???

Return

        AX = 0001h

SeeAlso

    INT 92 AX=E111    INT 92 AX=E113


INT 92 AX=E111

92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"

AX = E111h
BX = 0004h
CX:DX -> ???

Return

        AX = 0001h

SeeAlso

    INT 92 AX=E110    INT 92 AX=E113


INT 92 AX=E112

92 - Da Vinci eMail Dispatcher - "NetChangePassword"

AX = E112h
BX = 0008h
CX:DX -> ???

Return

        AX = 0001h


INT 92 AX=E113

92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"

AX = E113h
BX = 0008h
CX:DX -> ???

Return

        AX = 0001h

SeeAlso

    INT 92 AX=E110    INT 92 AX=E111


INT 92 AX=E175

92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR

AX = E175h

Return

        AX = 0012h
BX = PSP


INT 92 AX=E180

92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK

AX = E180h

Return

        AX = 0012h if installed
ES:DX -> '$'-terminated driver information string

SeeAlso

    INT 92 AX=E102


INT 93

93 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT 93

93 - IBM TOKEN RING ADAPTER - ???


INT 94

94 - 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


INT 95

95 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT 95

95 - APL*PLUS/PC - DETERMINE R= SPACE

Note

     	use only when the R= option is invoked on entering APL


INT 96

96 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT 97

97 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT 98

98 - 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


INT 99

99 - 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


INT 9A

9A - 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


INT 9B

9B - 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


INT 9C

9C - 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


INT 9D

9D - 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


INT 9E

9E - 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


INT 9F

9F - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT A0

A0 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT A0

A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE

SeeAlso

    INT 59


INT A1

A1 - 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


INT A2

A2 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT A3

A3 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT A4

A4 - 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


INT A4

A4 U - Right Hand Man - API

AH = function number (v3.3 supports functions 00h-52h)

Return

        CF set on error
CF clear if successful

Program

         Right Hand Man is a TSR desk-top utility originally by Red E Products
  which has evolved into Futurus Team

Note

     	this interrupt is only hooked while popped up

SeeAlso

    INT 2F AX=A4E0


INT A5

A5 - 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


INT A6

A6 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT A7

A7 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT A8

A8 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT A9

A9 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT AA

AA - 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


INT AB

AB - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT AC

AC - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT AD

AD - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT AE

AE - 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


INT AF

AF - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT B0

B0 - 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


INT B1

B1 - 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


INT B2

B2 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT B3

B3 - 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


INT B3 AH=70

B3 - ZIPKEY - GET VERSION

AH = 70h

Return

        AH = major version
AL = minor version
CL = number of states and territories in current database
DH = year of current database - 1900
DL = month of current database's file date

Return

        AX destroyed

Notes

      	if installed, the string "ZIPKEY" is present at offset 75h in the
  interrupt handler's segment, and the byte at 7Bh contains the API
  version number (00h for v1.x, 01h for v2.0)
ZIPKEY is a resident ZIPCODE database by Eric Isaacson


INT B3 AH=71

B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE

AH = 71h
BX = abbreviation, in either case (first letter in BL)

Return

        CF set on error
    AL = FFh
CF clear if successful
    AL = ZIPKEY state code

SeeAlso

    INT B3 AH=72


INT B3 AH=72

B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION

AH = 72h
BL = ZIPKEY state code

Return

        CF set on error
    AX destroyed
CF clear if successful
    AX = abbreviation, in upper case

SeeAlso

    INT B3 AH=71    INT B3 AH=73


INT B3 AH=73

B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME

AH = 73h
BL = ZIPKEY state code
ES:DI -> buffer for name

Return

        CF set on error
    AX destroyed
CF clear if successful
    ES:DI points one byte beyond end of name

SeeAlso

    INT B3 AH=72


INT B3 AH=74

B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS

AH = 74h
DX = zipcode region (0-999)
CH = last two digits of zipcode (0-99)
ES:DI -> buffer

Return

        CF set on error
    AX destroyed
CF clear if successful
    ES:DI points one byte beyond end of digit string


INT B3 AH=75

B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE

AH = 75h
DX = zipcode region (0-999)
CH = last two digits of zipcode (0-99)

Return

        CF set on error (zipcode not found)
    AL = suggested state code, FFh if none
CF clear if successful
    AL = ZIPKEY state code
    BX = area code (v2.0+)

SeeAlso

    INT B3 AH=76    INT B3 AH=79


INT B3 AH=76

B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE

AH = 76h
DX = zipcode region (0-999)
CH = last two digits of zipcode (0-99)
ES:DI -> buffer for name

Return

        CF set on error
    AL = suggested state code, FFh if none
    ES:DI buffer filled with suggested city name
CF clear if successful
    AL = ZIPKEY state code
    BX = area code (v2.0+)
    ES:DI points one byte beyond end of name

SeeAlso

    INT B3 AH=75    INT B3 AH=78


INT B3 AH=77

B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE

AH = 77h
DX = zipcode region (0-999)
CH = last two digits of zipcode (0-99)
BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key

Return

        CF set on error
    AX destroyed
CF clear if successful
    zipcode specification as defined by the BX keystroke is placed in
      keyboard buffer, as if the user had popped up ZIPKEY and exited
      by pressing the key specified by BX


INT B3 AH=78

B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY

AH = 78h
BL = ZIPKEY state code
DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix

Return

        BH = number of matching entries (set to 51 if more than 50)
DX = zipcode region of first match (0-999)
CL = last two digits of first zipcode in the range (0-99)
CH = last two digits of last zipcode in the range (0-99)
AX destroyed

SeeAlso

    INT B3 AH=79    INT B3 AH=7A


INT B3 AH=79

B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY

AH = 79h
BL = ZIPKEY state code of first state to search
DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix

Return

       	AL = ZIPKEY state code of first matching state
BH = number of matching entries (set to 51 if more than 50)
DX = zipcode region of first match (0-999)
CL = last two digits of first zipcode in first range (0-99)
CH = last two digits of last zipcode in first range (0-99)

Note

     	to find all matching cities, repeat search with BL set to one more than
  the returned AL

SeeAlso

    INT B3 AH=78    INT B3 AH=7A


INT B3 AH=7A

B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP

AH = 7Ah
BL = case number (0 to one less than value returned in BH by lookup)

Return

        AL = ZIPKEY state code
DX = zipcode region (0-999)
CL = last two digits of first zipcode in the range (0-99)
CH = last two digits of last zipcode in the range (0-99)

SeeAlso

    INT B3 AH=78    INT B3 AH=79


INT B3 AH=7B

B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT

AH = 7Bh

Return

        BL = maximum number of characters for a city name
BH = ZIPKEY state code for last city-name search
    FFh if none
CX:DX = internal code identifying last city search
AX destroyed

SeeAlso

    INT B3 AH=7C


INT B3 AH=7C

B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT

AH = 7Ch
BL = maximum number of characters for a city name
BH = ZIPKEY state code for last city-name search
    FFh if none
CX:DX = internal code returned by AH=7Bh

Return

        CF set on error
CF clear if successful
AX destroyed

SeeAlso

    INT B3 AH=7B


INT B3 AH=7D

B3 - ZIPKEY - REQUEST POP UP

AH = 7Dh
BL = index number to simulate pressing a hotkey
    FFh for immediate popup with no playback on return

Return

        CF set on error
    AL = FDh already busy with another request
       = FEh illegal function
CF clear if successful
    AX destroyed
    window popped up and was closed by the user


INT B3 AH=7E

B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION

AH = 7Eh
DX = zipcode region (0-999)
ES:DI -> buffer for name

Return

        CF set on error
    AL = FFh region does not exist
CF clear if successful
    AL = ZIPKEY state code
    ES:DI points one byte beyond end of name


INT B3 AH=7F

B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS

AH = 7Fh
BL = function
    00h turn off hotkeys
    01h turn on hotkeys
    02h return hotkey status
    03h toggle hotkey status

Return

        AL = hotkey status
    00h off
    01h on


INT B3 AH=80

B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE

AH = 80h
BX = telephone area code (decimal)

Return

        CF clear if successful
    AL = ZIPKEY state code
    DX = first ZIP region for state (03E8h if Canada)
    CX = number of ZIP regions in state
CF set on error
    AL = FFh
    DX = 03E9h


INT B4

B4 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT B4

B4 - STACKMAN - REQUEST NEW STACK

Return

        SS:SP -> new stack

Note

     	the installation check consists of testing for the string "STACKXXX" at
  offset 0Ah from the interrupt handler

SeeAlso

    INT 2F AX=C9FF    INT B5STACKMAN


INT B5

B5 - 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


INT B5

B5 - STACKMAN - RESTORE ORIGINAL STACK

SS:SP -> stack returned by INT B4

Return

        SS:SP restored to value before INT B4

SeeAlso

    INT 2F AX=C9FF    INT B4STACKMAN


INT B6

B6 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT B7

B7 - 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


INT B8

B8 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT B9

B9 - 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


INT BA

BA - 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


INT BB

BB - 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


INT BC

BC - 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


INT BD

BD - 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


INT BE

BE - 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


INT BE

BE - DESQview/X - ???

Note

     	points at an IRET

SeeAlso

    INT 15 AX=BFDE    /BX=0006h    INT 63DESQview


INT BF

BF - 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


INT C0

C0 - 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


INT C1

C1 - 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


INT C2

C2 - 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


INT C3

C3 - 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


INT C4

C4 - 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


INT C5

C5 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT C6

C6 - 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


INT C6

C6 - APL*PLUS/PC - IDENTICAL TO INT 86

Note

     	STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  the older interrupts

SeeAlso

    INT 86APL


INT C7

C7 - 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


INT C7

C7 - APL*PLUS/PC - ???

Note

     	STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  the older interrupts

SeeAlso

    INT 87APL


INT C8

C8 - 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


INT C8

C8 - APL*PLUS/PC - IDENTICAL TO INT 88

Note

     	STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  the older interrupts

SeeAlso

    INT 88APL


INT C9

C9 - 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


INT C9

C9 - APL*PLUS/PC - ???

Note

     	STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  the older interrupts

SeeAlso

    INT 89APL


INT CA

CA - 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


INT CA

CA - APL*PLUS/PC - PRINT SCREEN

Note

     	STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  the older interrupts

SeeAlso

    INT 8AAPL


INT CB

CB - 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


INT CB

CB - APL*PLUS/PC - BEEP

Notes

      	STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  the older interrupts
same as printing a ^G via INT 21/AH=02h

SeeAlso

    INT 8BAPL


INT CC

CC - 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


INT CC

CC - APL*PLUS/PC - CLEAR SCREEN MEMORY

AX = flag
    0000h do not save display attributes
    0001h save attributes

Note

     	STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  the older interrupts

SeeAlso

    INT 8CAPL


INT CD

CD - 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


INT CD

CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT CE

CE - 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


INT CE

CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT CF

CF - 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


INT CF

CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION

SeeAlso

    INT E0APL


INT D0

D0 - 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


INT D0

D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D0

D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR

Notes

      	NJFRERAM is a resident free-memory display utility by Mike "Nifty
  James" Blaszczak
if NJFRERAM is installed, this vector points at the signature "NJ"


INT D1

D1 - 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


INT D1

D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D2

D2 - 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


INT D2

D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D3

D3 - 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


INT D3

D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D4

D4 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT D4

D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D4

D4 - PC-MOS/386 - API


INT D5

D5 - 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


INT D5

D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D6

D6 - 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


INT D6

D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D7

D7 - 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


INT D7

D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D8

D8 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT D8

D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT D9

D9 - 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


INT D9

D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DA

DA - 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


INT DA

DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DB

DB - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT DB

DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DC

DC - PC/370 v4.1- - API

SeeAlso

    INT 60PC/370


INT DC

DC - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT DC

DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES


INT DD

DD - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT DD

DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER

BX = where to place keystrokes
    FFFFh insert before current buffer contents
    0000h replace current contents
    0001h insert after current contents
CX = number of keystroke events to insert
ES:SI -> data to be placed into buffer (list of WORD key codes)
    4000h + N = normal ASCII keystroke N (N = 00h to FFh)
    4100h + N = extended ASCII keystroke N (N = 03h to 84h)

SeeAlso

    INT 16 AH=05


INT DE

DE - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT DE

DE - APL*PLUS/PC - ???

Note

     	appears to be the same as INT 16


INT DF

DF - Victor 9000 - SuperBIOS


INT DF

DF - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT DF

DF - APL*PLUS/PC - SAME AS INT 10

SeeAlso

    INT 10


INT E0

E0 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT E0

E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION

SeeAlso

    INT CFAPL


INT E0

E0 - VIRUS - "Micro-128" - ???

Note

     	Micro-128 also overwrites the upper half of the interrupt table

SeeAlso

    INT 70VIRUS


INT E0

E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS

CL = function number
DS,DX = parameters

Return

        as appropriate for function

Notes

      	several functions are covered in more detail in following entries
most of these calls are also supported by Digital Research's DOS Plus
  v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  90h-92h,94h-97h,9Bh-ABh, and AEh-FFh

SeeAlso

    INT 21 AX=4459    INT 21 AH=E0"DOS Plus"

Values for function number:
 00h	terminate calling process (see also INT 21/AH=00h)
 01h	read a character
 02h	write character to default console (see also INT 21/AH=02h)
 03h	read character from default AUX (see also INT 21/AH=03h)
 04h	write character to default AUX (see also INT 21/AH=04h)
 05h	write character to default list device (see also INT 21/AH=05h)
 06h	perform raw I/O on default console (see also INT 21/AH=06h)
 07h	return default AUX input status
 08h	return default AUX output status
 09h	write string to default console (see also INT 21/AH=09h)
 0Ah	read string from default console (see also INT 21/AH=0Ah)
 0Bh	return default console input status (see also INT 21/AH=0Bh)
 0Ch	get BDOS release ID
 0Dh	reset all disk drives (see also INT 21/AH=0Dh)
 0Eh	set default drive (see also INT 21/AH=0Eh)
 0Fh	open file via FCB (see also INT 21/AH=0Fh)
 10h	close file via FCB (see also INT 21/AH=10h)
 11h	search for first matching file with FCB (see also INT 21/AH=11h)
 12h	search for next matching file with FCB (see also INT 21/AH=12h)
 13h	delete file via FCB (see also INT 21/AH=13h)
 14h	sequential read via FCB (see also INT 21/AH=14h)
 15h	sequential write via FCB (see also INT 21/AH=15h)
 16h	create file via FCB (see also INT 21/AH=16h)
 17h	rename file via FCB (see also INT 21/AH=17h)
 18h	get bit map of logged drives
 19h	get default drive (see also INT 21/AH=19h)
 1Ah	set DMA address offset
 1Bh	get default disk allocation vector (see also INT 21/AH=1Bh)
 1Ch	set default drive to read-only
 1Dh	get bit map of read-only drives
 1Eh	set file attributes via FCB (see also INT 21/AX=4301h)
 1Fh	get address of disk parameter block (see also INT 21/AH=1Fh)
 20h	get/set default user number
 21h	read random record via FCB (see also INT 21/AH=21h)
 22h	write random record via FCB (see also INT 21/AH=22h)
 23h	compute file size with FCB (see also INT 21/AH=23h)
 24h	get FCB random record number (see also INT 21/AH=24h)
 25h	reset specified drives
 26h	access specified drives (not in DR DOS Plus v2.1)
 27h	free specified drives
 28h	write random with FCB, zero fill (see also also INT 21/AH=28h)
 2Ah	lock records in FCB file (see also INT 21/AH=5Ch)
 2Bh	unlock records in FCB file (see also INT 21/AH=5Ch)
 2Ch	set BDOS multisector count
 2Dh	set BDOS error mode
 2Eh	get free space on disk
 2Fh	load, initialize, and jump to process (see also INT 21/AH=4Bh)
 30h	flush write-deferred buffers
 31h	get/set system variable (DOS Plus v2.1)
 32h	call BIOS (XIOS) character routine (see below)
 33h	set DMA address segment
 34h	get DMA buffer address
 35h	CP/M-86 allocate maximum memory
 36h	allocate maximum memory at specified segment
 37h	CP/M-86 allocate memory segment (see also INT 21/AH=48h)
 38h	allocate memory at specified segment
 39h	CP/M-86 free specified memory segment (see also INT 21/AH=49h)
 3Ah	CP/M-86 free all memory (not in DOS Plus v2.1)
 3Bh	load .CMD file into memory
 3Ch	(DOS Plus v2.1) call RSX program
 40h	(DR-NET) log on a server
 41h	(DR-NET) log off a server
 42h	(DR-NET) send a message
 43h	(DR-NET) receive a message
 44h	(DR-NET) get network status
 45h	(DR-NET) get requestor configuration table
 46h	(DR-NET) set compatibility attributes
 47h	(DR-NET) get server configuration table
 48h	(DR-NET) set network error mode
 49h	(DR-NET) attach network
 4Ah	(DR-NET) detach network
 4Bh	(DR-NET) set default password
 4Ch	(DR-NET) get-set long timeout
 4Dh	(DR-NET) get parameter table
 50h	(DR-NET) get network information
 53h	get current time (see also INT 21/AH=2Ch)
 54h	set current time (see also INT 21/AH=2Dh)
 55h	get binary system date (see also INT 21/AH=2Ah)
 56h	set system date (see also INT 21/AH=2Bh)
 57h	allocate system flag
 58h	deallocate system flag
 59h	reserve memory in global area
 5Ah	lock physical drive
 5Bh	unlock physical drive
 5Ch	search path for executable file
 5Dh	load and execute command (see also INT 21/AH=4Bh)
 5Eh	get/set process exit code
 5Fh	set country information
 60h	get country information
 63h	truncate FCB file (see also INT 21/AH=28h)
 64h	create/update directory label
 65h	get directory label
 66h	get FCB date stamp and password mode
 67h	write extended FCB
 68h	set system date and time
 69h	get system date and time in binary
 6Ah	establish password for file access
 6Bh	get OS serial number
 6Ch	(DOS Plus v2.1) get/set program return code
 6Dh	get/set console mode
 6Eh	get/set string delimiter
 6Fh	write block to default console
 70h	write block to default list device
 71h	execute DOS-compatible function
 74h	set FCB time and date stamps
 80h	allocate memory
 82h	deallocate memory
 83h	poll I/O device
 84h	wait on system flag
 85h	set system flag
 86h	create message queue
 87h	open message queue
 88h	delete message queue
 89h	read from message queue
 8Ah	conditionally read from message queue
 8Bh	write to message queue
 8Ch	conditionally write to message queue
 8Dh	delay calling process
 8Eh	call process dispatcher (yield CPU)
 8Fh	terminate calling process (same as function 00h)
 90h	create a process
 91h	set calling process' priority
 92h	attach to default console
 93h	detach from default console
 95h	assign default console to process
 96h	interpret and execute commandline
 97h	resident procedure library
 98h	parse ASCII string into FCB (see also INT 21/AH=29h)
 99h	return default console
 9Ah	get address of system data (SYSDAT)
 9Bh	get system time and date
 9Ch	return calling process' descriptor
 9Dh	terminate process by name or PD address
 9Eh	attach to default list device
 9Fh	detach from default list device
 A0h	select default list device
 A1h	conditionally attach to default list device
 A2h	conditionally attach to default console
 A3h	get OS version number
 A4h	get default list device
 A5h	attach to default AUX
 A6h	detach from default AUX
 A7h	conditionally attach to default AUX
 A8h	set default AUX
 A9h	return default AUX
 ACh	read block from default AUX
 ADh	(DOS Plus v2.1) write block to default AUX
 B0h	configure default AUX
 B1h	get/set device control parameters
 B2h	send Break through default AUX
 B3h	allocate physical memory
 B4h	free physical memory
 B5h	map physical memory
 B6h	nondestructive message queue read
 B7h	timed wait on system flag
 B8h	get/set I/O port mapping
 B9h	set list device timeout
 BAh	set AUX timeout value
 BBh	execute XIOS service
 BDh	(DR Multiuser DOS) delay
 FFh	return 80386 to native mode

Values for DOS Plus v2.1 XIOS functions:
 00h	terminate program
 01h	???
 02h	check for console input status
 03h	read character from console
 04h	write character to console
 05h	write character to list device
 06h	write character to auxiliary device
 07h	read cahracter from auxiliary device
 0Fh	get list device status
 10h-14h reserved
 15h	device initialization
 16h	check console output status
 17h-7Fh reserved
---BBC Acorn---
 80h	get XIOS version
 81h	get Tube semaphore
 82h	release Tube semaphore
 83h	select text/graphics
 84h	update B&W graphics rectangle
 85h	update color graphics rectangle
 86h	get/release/update mouse
 87h	get system error info
 88h	entry in CLOCK called by WatchDog RSP
 89h	BBC OSBYTE function
 8Ah	BBC OSWORD function

DR Multiuser DOS Error Return Codes:
 00h no error
 01h system call not implmented
 02h illegal system call number
 03h cannot find memory
 04h illegal flag number
 05h flag overrun
 06h flag underrun
 07h no unused Queue Descriptors
 08h no free queue buffer
 09h cannot find queue
 0Ah queue in use
 0Ch no free Process Descriptors
 0Dh no queue access
 0Eh empty queue
 0Fh full queue
 10h CLI queue missing
 11h no 8087 in system
 12h no unused Memory Descriptors
 13h illegal console number
 14h no Process Descriptor match
 15h no console match
 16h no CLI process
 17h illegal disk number
 18h illegal filename
 19h illegal filetype
 1Ah character not ready
 1Bh illegal Memory Descriptor
 1Ch bad return from BDOS load
 1Dh bad return from BDOS read
 1Eh bad return from BDOS open
 1Fh null command
 20h not owner of resource
 21h no CSEG in load file
 22h process Descriptor exists on Thread Root
 23h could not terminate process
 24h cannot attach to process
 25h illegal list device number
 26h illegal password
 28h external termination occurred
 29h fixup error upon load
 2Ah flag set ignored
 2Bh illegal auxilliary device number


INT E0

E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE

CL = 03h

Return

       	AL = ASCII character

Notes

      	A_READ reads the next 8-bit character from the logical auxilliary
  input device (AUXn:); control is not returned to the calling
  process until a character has been read.
if another process owns AUX, this call blocks until the device becomes
  available

SeeAlso

    INT 21 AH=03    INT E0CL=04h    INT E0CL=07h    INT E0CL=A5h    INT E0CL=AC


INT E0

E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE

CL = 04h
DL = ASCII character

Return

       	nothing

Note

     	if another process owns AUX, this call blocks until the device becomes
  available

SeeAlso

    INT 21 AH=04    INT E0CL=03h    INT E0CL=08h    INT E0CL=A5h    INT E0CL=AD


INT E0

E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE

CL = 07h

Return

       	AL = status
    00h not ready
    FFh character available

SeeAlso

    INT E0CL=03h    INT E0CL=08


INT E0

E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE

CL = 08h

Return

       	AL = status
    00h not ready
    FFh ready for output

SeeAlso

    INT E0CL=04h    INT E0CL=07


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA

CL = 59h
DX = size in bytes

Return

        AX = FFFFh if failed
AX = other if successful
    ES:BX -> reserved memory


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE

CL = 86h
DS:DX -> queue descriptor (see below)

Return

        AX = status
    0000h success
    FFFFh failure
CX = error code

SeeAlso

    INT E0CL=87

Table Formats

Queue descriptor:


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE

CL = 87h
DS:DX -> queue parameter block (see below)

Return

        AX = status
    0000h success
    FFFFh failure
CX = error code

SeeAlso

    INT E0CL=86h    INT E0CL=89

Table Formats

Queue parameter block:


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE

CL = 89h
DS:DX -> queue parameter block (see INT E0/CL=87h)

Return

        AX = status
    0000h success
    FFFFh failure
CX = error code

SeeAlso

    INT E0CL=87h    INT E0CL=8Ah    INT E0CL=8B


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE

CL = 8Ah
DS:DX -> queue parameter block (see INT E0/CL=87h)

Return

        AX = status
    0000h success
    FFFFh failure
CX = error code

SeeAlso

    INT E0CL=87h    INT E0CL=89h    INT E0CL=8C


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE

CL = 8Bh
DS:DX -> queue parameter block (see INT E0/CL=87h)

Return

        AX = status
    0000h success
    FFFFh failure
CX = error code

SeeAlso

    INT E0CL=89h    INT E0CL=8C


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE

CL = 8Ch
DS:DX -> queue parameter block (see INT E0/CL=87h)

Return

        AX = status
    0000h success
    FFFFh failure
CX = error code

SeeAlso

    INT E0CL=8Ah    INT E0CL=8B


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER

CL = 8Eh
DX = FFFFh (optional) to force dispatch

Return

        nothing

Note

     	if DX=FFFFh, a dispatch is forced even if no other process is ready

SeeAlso

    INT E0CL=91


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY

CL = 91h
DL = new priority (00h highest to FFh lowest)

Note

     	sets priority of calling process; transient processes are initialized
  to priority C8h

SeeAlso

    INT E0CL=8E


INT E0

E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE

CL = 93h

Return

        AX = status
    0000h successfully detached
    FFFFh detach failed


INT E0

E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE

CL = A5h

Desc

     	attaches the default auxiliary device to the calling process unless
  it is already attached to another process, in which case the call
  blocks until the device becomes available

Note

     	this call should be used before attempting to read or write from
  the AUX device; however, the I/O calls internally call this function
  to ensure device ownership

SeeAlso

    INT E0CL=03h    INT E0CL=04h    INT E0CL=A6h    INT E0CL=A7h    INT E0CL=A8

SeeAlso

    INT E0CL=ACh    INT E0CL=ADh    INT E0CL=B0


INT E0

E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE

CL = A6h

Return

        AX = status
    0000h successfully detached
    FFFFh detach failed
CX = error code

SeeAlso

    INT E0CL=A5h    INT E0CL=A7


INT E0

E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE

CL = A7h

Return

        AX = status
    0000h attached
    FFFFh unable to attach

Desc

     	attaches the default auxiliary device to the calling process if it is
  available

Note

     	does not block if the device is already in use

SeeAlso

    INT E0CL=A5h    INT E0CL=A6h    INT E0CL=A8h    INT E0CL=B0


INT E0

E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER

CL = A8h
DL = auxiliary device number

Return

        AX = status
    0000h successful
    FFFFh failed
CX = error code

SeeAlso

    INT E0CL=A5h    INT E0CL=A9


INT E0

E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER

CL = A9h

Return

        AL = current default auxiliary device number

SeeAlso

    INT E0CL=A8


INT E0

E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE

CL = ACh
DS:DX -> character control block (CHCB) (see below)

Return

        AX = number of characters read

Desc

     	read characters from the default auxiliary (AUXn:) device into a buffer
  until the buffer is full or the device is no longer ready

Notes

      	if the device is initially not ready, blocks until at least one
  character has been read
if another process owns AUX, this call blocks until the device becomes
  available

SeeAlso

    INT E0CL=03h    INT E0CL=A5h    INT E0CL=AD

Table Formats

Character control block (CHCB):


INT E0

E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE

CL = ADh
DS:DX -> character control block (see INT E0/CL=ACh)

Return

        AX = number of characters written

Note

     	does not return until at least one character has been written

SeeAlso

    INT E0CL=04h    INT E0CL=A5h    INT E0CL=AC


INT E0

E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS

CL = B0h
DX:DX -> AUX device parameter block (see below)

Return

        AX = status
    0000h successful
parameter block updated
    FFFFh failed
CX = error code

SeeAlso

    INT E0CL=A5h    INT E0CL=B1

Table Formats

AUX device parameter block:
Values for baud rate:
 00h = 50 baud
 01h = 62.5 baud
 02h = 75 baud
 03h = 110 baud
 04h = 134.5 baud
 05h = 150 baud
 06h = 200 baud
 07h = 300 baud
 08h = 600 baud
 09h = 1200 baud
 0Ah = 1800 baud
 0Bh = 2000 baud
 0Ch = 2400 baud
 0Dh = 3600 baud
 0Eh = 4800 baud
 0Fh = 7200 baud
 10h = 9600 baud
 11h = 19200 baud
 12h = 38400 baud
 13h = 56000 baud
 14h = 76800 baud
 15h = 115200 baud


INT E0

E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS

CL = B1h
DS:DX -> AUX device control block (see below)

Return

        AX = status
    0000h successful
control block updated
    FFFFh failed
CX = error code

SeeAlso

    INT E0CL=B0h    INT E0CL=B2

Table Formats

AUX device control block:


INT E0

E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE

CL = B2h
DX = duration of break in system ticks (0001h-FFFFh)

Return

        AX = status
    0000h successful
break signal completed
    FFFFh failed
CX = error code

Note

     	if the AUX device is currently owned by another process, this call will
  block until the device becomes available

SeeAlso

    INT E0CL=A5h    INT E0CL=B1


INT E0

E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION

CL = BDh
DX = delay in system ticks

Return

        after the delay elapses

Notes

      	the length of a system tick is installation-dependent (typically
  1/50 or 1/60 second); the length may be determined by reading the
  TICKSPERSEC value from the system data segment
the actual delay before the process is rescheduled to run may be up to
  one tick longer than requested; the delay between rescheduling and
  actual execution cannot be predicted if higher-priority processes
  are awaiting a turn at the CPU


INT E1

E1 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT E1

E1 - PC Cluster Disk Server Information

SeeAlso

    INT E2


INT E2

E2 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT E2

E2 - PC Cluster Program


INT E3

E3 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT E4 AX=0005

E4 - Logitech Modula v2.0 - MonitorEntry

AX = 0005h
BX = priority

SeeAlso

    INT E4 AX=0006


INT E4 AX=0006

E4 - Logitech Modula v2.0 - MonitorExit

AX = 0006h

SeeAlso

    INT E4 AX=0005


INT E4

E4 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT E5

E5 - 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


INT E6

E6 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT E7

E7 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT E8

E8 - 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


INT E9

E9 - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT EA

EA - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT EB

EB - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT EC

EC - IBM ROM BASIC - used while in interpreter

Notes

      	called by ROM BASIC
BASIC.COM/BASICA.COM do not restore vector on termination


INT EC

EC - used by Alloy NTNX


INT EC

EC - Exact - RUNTIME INTERFACE MULTIPLEXOR

AX = function number (0000h to 0140h)
STACK:	DWORD address to return to
any arguments required by function

Return

        STACK:	return address popped, but otherwise unchanged

Notes

      	this is the interface from applications to the runtime system by Exact
  Automatisering B.V. of the Netherlands.  By using this interrupt,
  it can provide DLL-style capabilities under MSDOS.
the interrupt handler removes the return address and flags placed on
  the stack by the INT EC, then jumps to the appropriate function


INT ED

ED - 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
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 ECBASIC"    INT EEBASIC


INT EE

EE - 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 EDBASIC"    INT EEBASIC


INT EF

EF - BASIC - ORIGINAL INT 09 VECTOR

Note

     	BASIC.COM/BASICA.COM do not restore vector on termination

SeeAlso

    INT EEBASIC"    INT F0BASIC


INT EF

EF - GEM - INTERFACE

CX = 0473h
DS:DX -> GEM parameter block


INT F0

F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR

Note

     	BASICA.COM does not restore vector on termination

SeeAlso

    INT EFBASIC


INT F1

F1 - reserved for user interrupt


INT F1

F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH

DS:BX -> '$'-terminated text string

Note

     	SPEECH.COM is a resident text-to-speech converter by Douglas Sisco


INT F1

F1 - Andy C. McGuire SPEECH.COM/SAY.COM

SeeAlso

    INT F2SPEECH


INT F1

F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS

Return

        AX:BX -> data area

Notes

      	AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  and COM2 in software
The installation check consists of testing for the following signature
  immediately preceding the interrupt handler: "JWBtvv" where 't' is
  either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  version number


INT F2

F2 - reserved for user interrupt


INT F2

F2 - Andy C. McGuire SPEECH.COM/SAY.COM

SeeAlso

    INT F1SPEECH


INT F2

F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API

AH = function
    01h power up
    02h power down
    03h set controls
    04h capture image
    05h display image
    06h read file
    07h write file
    08h write array
    09h read pixel
    0Ah write pixel
    0Bh check if VGA present
    0Ch set video mode
    0Dh check for keystroke
    0Eh delay
???

Return

        ???

Program

         ImageCapture is a product of International Computers

SeeAlso

    INT F3ICCTSR


INT F3

F3 - reserved for user interrupt


INT F3

F3 - SoundBlaster - POINTER TO ECHO VALUE

Note

     	this is not a vector, but a pointer to a DWORD containing the echo
  value selected with SET-ECHO.EXE

SeeAlso

    INT 2F AX=FBFB


INT F3

F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR

Program

         ImageCapture is a product of International Computers

SeeAlso

    INT F2ICCTSR


INT F4

F4 - reserved for user interrupt


INT F4

F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK

SeeAlso

    INT 21 AH=EE"DoubleDOS"    INT FEDoubleDOS


INT F5

F5 - reserved for user interrupt


INT F5

F5 - DoubleDOS - ???


INT F6

F6 - reserved for user interrupt


INT F6

F6 - DoubleDOS - ???


INT F7

F7 - reserved for user interrupt


INT F7

F7 - DoubleDOS - ???


INT F7 AH=00

F7 - FSBBS 2.0 - CONFIGURATION RECORD

AH = 00h
AL = function
    00h get configuration record
Return: DS:DX -> configuration record
    01h set configuration record
    02h get path for option
DS:DX -> option name
Return: DS:DX -> path
    03h determine whether configuration record set
Return: AX = status
    0000h set
    0001h not yet set
    04h get link state
Return: AX = state
    0000h unlinked
    0001h linked

Notes

      	this information is preliminary and still subject to change
all of the INT F7 calls for FSBBS are used for interprogram
  communication between the BBS kernel and the programs it spawns

SeeAlso

    INT F7 AH=01


INT F7 AH=01

F7 - FSBBS 2.0 - USER RECORD

AH = 01h
AL = function
    00h get user record for user currently online
Return: DS:DX -> user record
    01h set user record
DS:DX -> user record

SeeAlso

    INT F7 AH=00    INT F7 AH=02


INT F7 AH=02

F7 - FSBBS 2.0 - GET ACCOUNT NAME

AH = 02h

Return

        DS:DX -> 8-character blank-padded account name

SeeAlso

    INT F7 AH=01


INT F7 AH=03

F7 - FSBBS 2.0 - TERMINAL NUMBER

AH = 03h
AL = function
    00h get terminal index number
Return: DX = index number
    01h set terminal index number
DX = terminal index


INT F7 AH=04

F7 - FSBBS 2.0 - PASSDATA BUFFER

AH = 04h
AL = function
    00h get PassData buffer contents
DS:DX -> buffer for PassData contents
    01h set PassData contents
DS:DX -> buffer containing new PassData
CH = length of data in buffer


INT F7 AH=05

F7 - FSBBS 2.0 - TIMER FUNCTIONS

AH = 05h
AL = function
    00h get time remaining
Return: DX = number of minutes remaining
    01h get current time
Return: DS:DX -> 8-character time string
    02h increment time
DX = number of additional minutes
    03h decrement time
DX = number of minutes

SeeAlso

    INT F7 AH=06


INT F7 AH=06

F7 - FSBBS 2.0 - FUNCTION AVAILABILITY

AH = 06h
AL = function
    00h determine whether function is available
DX = index of function
    01h set function availability
DX = index of function
???

SeeAlso

    INT F7 AH=05    INT F7 AH=07


INT F7 AH=07

F7 - FSBBS 2.0 - DUMP FUNCTIONS

AH = 07h
AL = function
    00h get current dump mode
Return: DL = mode
    01h set dump mode
DL = mode

SeeAlso

    INT F7 AH=06


INT F8

F8 - TANDY??? - 100 HZ INTERRUPT

SeeAlso

    INT FAUSART


INT F8

F8 - DoubleDOS - ???


INT F9

F9 - reserved for user interrupt


INT F9

F9 - DoubleDOS - ???


INT FA

FA - TANDY??? - SERIAL PORT USART INTERRUPT

SeeAlso

    INT F8100 HZ"    INT FBUSART


INT FA

FA - DoubleDOS - TURN OFF TIMESHARING

SeeAlso

    INT 21 AH=EA"DoubleDOS"    INT FBDoubleDOS


INT FB

FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT

SeeAlso

    INT FAUSART


INT FB

FB - DoubleDOS - TURN ON TIMESHARING

SeeAlso

    INT 21 AH=EB"DoubleDOS"    INT FADoubleDOS


INT FC

FC - reserved for user interrupt


INT FC

FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS

Return

        ES = segment of display buffer

Note

     	the display buffer may be moved if multitasking is enabled

SeeAlso

    INT 21 AH=EC"DoubleDOS"    INT FBDoubleDOS


INT FD

FD - reserved for user interrupt


INT FD

FD - DoubleDOS - ???


INT FE

FE - AT/XT286/PS50+ - destroyed by return from protected mode

SeeAlso

    INT FFXT286


INT FE

FE - DoubleDOS - GIVE UP TIME

AL = number of 55ms time slices to give away

SeeAlso

    INT 21 AH=EE"DoubleDOS"    INT F4DoubleDOS


INT FE

FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER

SeeAlso

    INT 3F


INT FF

FF - AT/XT286/PS50+ - destroyed by return from protected mode

SeeAlso

    INT FEXT286


INT FF

FF - Z100 - WARM BOOT

SeeAlso

    INT 40Z100


emulator's data area (offset from interrupt handler's segment):

Size	Description
13Eh	BYTE	bit flags for status line indicators turned on since this byte
last zerod
13Fh	BYTE	bit flags for status line indicators turned off since this
byte last set to FFh
140h	WORD	offset of EBCDIC to ASCII translation
146h	WORD	offset of EBCDIC screen buffer
148h	WORD	offset of EC (engineering change) level signature
150h	BYTE	"KEYI"
151h	BYTE	5250 key scan code to be sent to remote
15Bh	BYTE	"SYSAV"
15Dh	BYTE	5250 cursor column
15Eh	BYTE	5250 cursor row
167h	BYTE	"DVCTAD"
178h	BYTE	"FLAGS"
184h	BYTE	"SESSNOAD"
193h	BYTE	"STNAD"
198h	BYTE	"NSDS"


record for DL=04h:

Size	Description
 00h	WORD	row number
 02h	WORD	starting column???
 04h	WORD	ending column???
???


palette register list:

Size	Description
 00h 16 BYTEs	colors for palette registers 00h through 0Fh
 10h	BYTE	border color


ATI VGA Wonder video mode table:

Size	Description
 00h	BYTE	number of columns
 01h	BYTE	maximum row (number of rows - 1)
 02h	BYTE	scan lines per row
 03h	WORD	video buffer size in bytes
 05h  4 BYTEs	values for Sequencer registers 1-4
 09h	BYTE	value for Miscellaneous Output register
 0Ah 25 BYTEs	values for CRTC registers 00h-18h
00h horizontal total size (chars)
01h horizontal displayed (chars)
02h horizontal sync position (chars)
03h horizontal sync width (chars)
04h vertical total size (char rows)
05h vertical total adjust (scan lines)
06h vertical displayed (char rows)
07h vertical sync position (char rows)
08h interlace mode
09h max scan line in row
0Ah cursor start scan line
0Bh cursor end scan line
0Ch screen memory start (high)
0Dh screen memory start (low)
0Eh cursor address (high)
0Fh cursor address (low)
10h light pen (high)
11h light pen (low)
 23h 20 BYTEs	default palette (values for Attribute Controller regs 00h-13h)
 37h  9 BYTEs	values for Graphics Controller registers 00h-08h


display parameter table:

Size	Description
 00h	WORD	monitor model number
 02h	WORD	vertical pixels per meter
 04h	WORD	horizontal pixels per meter
 06h	WORD	total vertical pixels
 08h	WORD	total horizontal pixels
 0Ah	WORD	horizontal pixel separation in micrometers
 0Ch	WORD	vertical pixel separation in micrometers


state information:

Size	Description
 00h	DWORD	address of static funtionality table (see below)
 04h	BYTE	video mode in effect
 05h	WORD	number of columns
 07h	WORD	length of regen buffer in bytes
 09h	WORD	starting address of regen buffer
 0Bh	WORD	cursor position for page 0
 0Dh	WORD	cursor position for page 1
 0Fh	WORD	cursor position for page 2
 11h	WORD	cursor position for page 3
 13h	WORD	cursor position for page 4
 15h	WORD	cursor position for page 5
 17h	WORD	cursor position for page 6
 19h	WORD	cursor position for page 7
 1Bh	WORD	cursor type
 1Dh	BYTE	active display page
 1Eh	WORD	CRTC port address
 20h	BYTE	current setting of register (3?8)
 21h	BYTE	current setting of register (3?9)
 22h	BYTE	number of rows
 23h	WORD	bytes/character
 25h	BYTE	display combination code of active display
 26h	BYTE	DCC of alternate display
 27h	WORD	number of colors supported in current mode
 29h	BYTE	number of pages supported in current mode
 2Ah	BYTE	number of scan lines active
(0,1,2,3) = (200,350,400,480)
 2Bh	BYTE	primary character block
 2Ch	BYTE	secondary character block
 2Dh	BYTE	miscellaneous flags
bit 0 all modes on all displays on
    1 gray summing on
    2 monochrome display attached
    3 default palette loading disabled
    4 cursor emulation enabled
    5 0 = intensity; 1 = blinking
    6 PS/2 P70 plasma display (without 9-dot wide font) active
    7 reserved
 2Eh  3 BYTEs	reserved (00h)
 31h	BYTE	video memory available
00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
 32h	BYTE	save pointer state flags
bit 0 512 character set active
    1 dynamic save area present
    2 alpha font override active
    3 graphics font override active
    4 palette override active
    5 DCC override active
    6 reserved
    7 reserved
 33h 13 BYTEs	reserved (00h)


Static Functionality Table:

Size	Description
 00h	BYTE	modes supported #1
bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
 01h	BYTE	modes supported #2
bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
 02h	BYTE	modes supported #3
bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
bit 4 to bit 7 reserved
 03h  4 BYTEs	reserved
 07h	BYTE	scan lines supported
bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
 08h	BYTE	total number of character blocks available in text modes
 09h	BYTE	maximum number of active character blocks in text modes
 0Ah	BYTE	miscellaneous function flags #1
bit 0 all modes on all displays function supported
    1 gray summing function supported
    2 character font loading function supported
    3 default palette loading enable/disable supported
    4 cursor emulation function supported
    5 EGA palette present
    6 color palette present
    7 color paging function supported
 0Bh	BYTE	miscellaneous function flags #2
bit 0 light pen supported
    1 save/restore state function 1Ch supported
    2 intensity blinking function supported
    3 Display Combination Code supported
  4-7 reserved
 0Ch	WORD	reserved
 0Eh	BYTE	save pointer function flags
bit 0 512 character set supported
    1 dynamic save area supported
    2 alpha font override supported
    3 graphics font override supported
    4 palette override supported
    5 DCC extension supported
    6 reserved
    7 reserved
 0Fh	BYTE	reserved


video hardware state:

Size	Description
 00h	BYTE	sequencer index register
 01h	BYTE	CRTC index register
 02h	BYTE	graphics controller index register
 03h	BYTE	attribute controller index register
 04h	BYTE	feature controller register
 05h  4 BYTEs	sequencer registers
 09h	BYTE	sequencer register 0
 0Ah 25 BYTEs	CRTC registers 0-8
 23h 16 BYTEs	palette registers 00h-0Fh
 33h  4 BYTEs	attribute registers 10h-13h
 37h  9 BYTEs	graphics controller registers 0-8
 40h	BYTE	CRTC base address (low)
 41h	BYTE	CRTC base address (high)
 42h	BYTE	plane 0 latch
 43h	BYTE	plane 1 latch
 44h	BYTE	plane 2 latch
 45h	BYTE	plane 3 latch


DAC state:

Size	Description
 00h	BYTE	read/write mode DAC
 01h	BYTE	pixel address
 02h	BYTE	pixel mask
 03h 768 BYTEs	color data (256 triples)
303h	BYTE	color select register


DMQS buffer:

Size	Description
 00h	WORD	offset (in bytes) to DMQS data for next XGA instance
 02h	BYTE	slot number
 03h	BYTE	XGA implementation function level identifier
 04h	BYTE	XGA implementation resolution level identifier
 05h	WORD	vendor identifier - identifies card vendor
 07h	WORD	vendor defined field
 09h	WORD	XGA adapter I/O register base address
 0Bh	WORD	XGA coprocessor register base address
(Paragraph---multiply by 10h to get physical address)
 0Dh	WORD	1 Megabyte system video memory aperture
0000h if not allocated
(Multiply by 100000h to get physical address)
 0Fh	WORD	4 Megabyte system video memory aperture
0000h if not allocated
(Multiply by 100000h to get physical address)
 11h	WORD	video memory base address
(Multiply by 100000h to get physical address)
 13h	WORD	composite ID of the attached display
 15h	BYTE	amount of video memory available, in multiples of 256K
bytes
 16h	DWORD	alternate XGA coprocessor register base address.  0 =
none.
 1Ah	var    DMQS Data for further XGA Instances (as above)
Note:	"Instances" refers to the capability of having up to 8 XGA
  adapters in one computer.


3270 PC configuration table:

Size	Description
 00h	BYTE	aspect ratio X
 01h	BYTE	aspect ratio Y
 02h	BYTE	monitor type
00h = 5151 (mono) or 5272 (color)
01h = 3295
02h = 5151 or 5272 with XGA (???) graphics adapter
03h = 5279 with 3270PC G adapter
04h = 5379 model C01 with 3270PC GX adapter
05h = 5379 model M01 with 3270PC GX adapter
07h = non-3270PC with 3270 Workstation Program
FFh = 3270PC Control Program not loaded
 03h	BYTE	reserved
 04h	BYTE	adapter ID
00h = 5151/5272 adapter
04h = 5151/5272 with XGA adapter
30h = 3295 or 3270PC G/GX adapter
 05h	BYTE	reserved
 06h	BYTE	function flags 1
bit 7: mono text, 1 page
    6: color text, 1 page
    5: color text, 4 pages
    4: CGA color graphics
    3: 720x350 two-color graphics
    2: 360x350 four-color graphics
    1: 720x350 eight-color graphics
 07h	BYTE	function flags 2
bit 6: GPI graphics supported
 08h	WORD	segment address of Control Program Level table (see below)
 0Ah 10 BYTEs	reserved


Control Program Level table:

Size	Description
 00h	WORD	program version
02xxh = 3270PC Control Program v2.xx
03xxh = 3270PC Control Program v3.xx
04xxh = 3270 Workstation Program v1.xx
 02h	BYTE	Control Program ID (00h)
 03h 27 BYTEs	Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")


configuration info:

Size	Description
 00h  8 BYTEs	signature "TTCONFIG"
 08h	WORD	size of configuration data, not counting signature, this WORD,
or the following byte
 0Ah	BYTE	???
 0Bh	???	configuration data


parameter table:

Size	Description
 00h	WORD	top margin (1/100 inch)
 02h	WORD	left margin (1/100 inch)
 04h	WORD	horizontal size (1/100 inch)
 06h	WORD	vertical size (1/100 inch)
 08h	WORD	quality/draft mode
00h draft mode
01h quality mode
02h use horizontal/vertical resolution for output resolution
 0Ah	WORD	printer horizontal resolution (dots per inch)
 0Ch	WORD	printer vertical resolution (dots per inch)
 0Eh	WORD	reserved (FFFFh)
Note:	any field which should remain unchanged may be filled with FFFFh


SuperVGA information:

Size	Description
 00h  4 BYTEs	signature ('VESA')
 04h	WORD	VESA version number
 06h	DWORD	pointer to OEM name
"761295520" for ATI
 0Ah  4 BYTEs	capabilities
 0Eh	DWORD	pointer to list of supported VESA and OEM video modes
(list of words terminated with FFFFh)
 12h 238 BYTEs	reserved


mode information:

Size	Description
 00h	WORD	mode attributes
bit 0: mode supported
bit 1: optional information available
bit 2: BIOS output supported
bit 3: set if color, clear if monochrome
bit 4: set if graphics mode, clear if text mode
 02h	BYTE	window A attributes
bit 0: exists
bit 1: readable
bit 2: writable
bits 3-7 reserved
 03h	BYTE	window B attributes (as for window A)
 04h	WORD	window granularity in K
 06h	WORD	window size in K
 08h	WORD	start segment of window A
 0Ah	WORD	start segment of window B
 0Ch	DWORD	-> FAR window positioning function (equivalent to AX=4F05h)
 10h	WORD	bytes per scan line
---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
 12h	WORD	width in pixels
 14h	WORD	height in pixels
 16h	BYTE	width of character cell in pixels
 17h	BYTE	height of character cell in pixels
 18h	BYTE	number of memory planes
 19h	BYTE	number of bits per pixel
 1Ah	BYTE	number of banks
 1Bh	BYTE	memory model type
00h text
01h CGA graphics
02h HGC graphics
03h 16-color (EGA) graphics
04h packed pixel graphics
05h "sequ 256" (non-chain 4) graphics
06h direct color (HiColor, 24-bit color)
07h YUV
08h-0Fh reserved for VESA
10h-FFh OEM memory models
 1Ch	BYTE	size of bank in K
 1Dh	BYTE	number of image pages
 1Eh	BYTE	reserved (0)
---VBE v1.2+---
 1Fh	BYTE	red mask size
 20h	BYTE	red field position
 21h	BYTE	green mask size
 22h	BYTE	green field size
 23h	BYTE	blue mask size
 24h	BYTE	blue field size
 25h	BYTE	reserved mask size
 26h	BYTE	reserved mask position
 27h	BYTE	direct color mode info
 28h	BYTE	reserved (0)


data area:

Size	Description
 00h	DWORD	original INT 09 vector
 04h	DWORD	original INT 10 vector
 08h	DWORD	original INT 1C vector
 0Ch	WORD	screen saver state, 0=off, 1=on
 0Eh	WORD	blanking interval in clock ticks


mode information record:

Size	Description
 00h	BYTE	mode number (bit 7 set if extended mode)
 01h	BYTE	mode type (see above)
 02h	BYTE	info bits
bits 7,6 reserved
     5	 monochrome mode
     4	 interlaced display
     3	 requires special oscillator
     2,1 memory required
 00 = 256K
 01 = 512K
 10 = 1024K
 11 = 2048K
     0	 reserved
 03h	BYTE	font height
 04h	BYTE	text columns on screen
 05h	BYTE	text rows on screen
 06h	WORD	number of scan lines
 08h	BYTE	color information
bits 7-4 reserved
     3-0 bits per pixel


info structure:

Size	Description
 00h	DWORD	pointer to VESA function dispatch table
 04h	DWORD	pointer to SOLLEX function dispatch table
 08h	DWORD	pointer to VESA SuperVGA info (see AX=4F00h)
 0Ch	DWORD	pointer to mode info structure table, consisting of
alternating ResInfo (see below) and VESA mode information
(see AX=4F01h) blocks, terminated with an FFFFh word
 10h	DWORD	pointer to font info structure table (see below)
 14h	WORD	high resolution crystal frequency in Hz (0000h = not present)
 16h	DWORD	pointer to ASCIZ ID string
 1Ah	DWORD	pointer to timeout reset table
array of bytes, each a multiple of the minimum time increment
 1Eh	WORD	minimum time increment in timer ticks
 20h	BYTE	inverse options supported
bit 0: inverse supported
bits 1-7: reserved
 21h	BYTE	normal color value
 22h	BYTE	inverse color value
 23h	WORD	port to be accessed for normal/inverse settings
 25h	WORD	type of interface chip (currently undefined)
 27h	WORD	program operational mode
bits 1-0: 00 no preference
  01 terse (minimum detail in program messages)
  10 verbose
  11 use menus if supported, verbose mode otherwise
bits 7-2: reserved
 29h	WORD	SOLLEX specification version
 2Bh	WORD	version of VESA/SOLLEX implementation
 2Dh	DWORD	offset to relocatable portion of SOLLEX extensions (for CONFIG)
 2Eh	DWORD	offset to unused section of the extensions ROM
 31h 16 BYTEs	reserved
Note:	all DWORD pointers initially require segment fixups; if the segment
  is 0000h, it should be changed to the returned ES, otherwise it
  may be assumed to be correct


ResInfo:

Size	Description
 00h	WORD	16-bit mode number
 02h	WORD	adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
 04h	WORD	display info (see AX=7F01h/BL=01h)
 06h	DWORD	pointer to video parameter table
 0Ah	BYTE	replacement entry in master Video Parameter
 0Bh	BYTE	mode requested for mode set by BIOS
 0Ch	DWORD	pointer to LoadReg table
 10h	BYTE	index into table of clock values (see below)


font info table [array] entry:

Size	Description
 00h	BYTE	required font height
 01h	BYTE	parameter to load text mode font
 02h	BYTE	parameter to load graphics mode font


register value table:

Size	Description
 00h	WORD	base I/O register (FFFFh = end of list)
 02h 2N BYTEs	pairs of values to be written to the base I/O register as an
index value and the following register as a data byte
 2N+2	WORD	FFFFh (end of data list)
... (repeats until FFFFh base address)


palette register list:

Size	Description
 00h 16 BYTEs	colors for palette registers 00h through 0Fh
 10h	BYTE	border color


current font names table (v2+):

Size	standard EGA	HiRes EGA	VGA
 00h  8 BYTEs	N/A	F19 font	F20 font
 08h  8 BYTEs	F14 font	F14 font	F14 font
 10h  8 BYTEs	N/A	F11 font	F10 font
 18h  8 BYTEs	F8 font	F8 font	F8 font


current font names table (v1.x):

Size	HiRes EGA
 00h  8 BYTEs	F19/F14 font
 08h  8 BYTEs	F11/F8 font


entries in table of register records:

Size	Description
 00h	WORD	group index
Pointer/data chips
   00h CRTC (3B4h mono modes, 3D4h color modes)
   08h Sequencer 3C4h
   10h Graphics Controller 3CEh
   18h Attribute Controller 3C0h
Single registers
   20h Miscellaneous Output register 3C2h
   28h Feature Control register (3BAh mono modes, 3DAh color)
   30h Graphics 1 Position register 3CCh
   38h Graphics 2 Position register 3CAh
 02h	BYTE	register number (0 for single registers)
 03h	BYTE	register value


task info buffer:

Size	Description
 00h 21 BYTEs	ASCIZ task name
 15h	BYTE	hotkey shift state (as for INT 16/AH=02h)
 16h	WORD	hotkey scan code
 18h	WORD	program ID


address field buffer entry (one per sector in track):

Size	Description
 00h	BYTE	track number
 01h	BYTE	head number (0-based)
 02h	BYTE	sector number
 03h	BYTE	sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)


mode select data:

Size	Description
 00h	BYTE	number of bytes of remaining data (12 + vendor unique length)
 01h	BYTE	reserved (0)
 02h	BYTE	medium type (0 for hard disk)
 03h	BYTE	reserved (0)
 04h	BYTE	block descriptor length (8)
 05h	BYTE	density code (0 for hard disk)
 06h  3 BYTEs	number of blocks (big-endian) (000000h for entire disk)
 09h	BYTE	reserved (0)
 0Ah  3 BYTEs	block length (big-endian) (512 standard, or 256)
 0Dh	???	vendor-specific parameter bytes (optional)


defect table A:

Size	Description
 00h	WORD	number of bytes remaining in table
 02h	BYTE	reserved (0)
 03h	BYTE	reserved (0)
 04h	WORD	defect list length (big-endian) (4*number of defects)
 06h  4 DWORDs	defect block addresses (big-endian)


defect table B:

Size	Description
 00h	WORD	number of bytes remaining in table
 02h	BYTE	reserved (0)
 03h	BYTE	reserved (0)
 04h	WORD	defect list length (big-endian) (8*number of defects)
 06h 8N BYTEs	Defect List [array]
Offset	Size	Description
 00h  3 BYTEs	cylinder number of defect (big-endian)
 03h	BYTE	head number of defect
 04h	DWORD	defect bytes from index (big-endian)


defect table C:

Size	Description
 00h	WORD	number of bytes remaining in table
 02h	BYTE	reserved (0)
 03h	BYTE	reserved (0)
 04h	WORD	defect list length (big-endian) (8*number of defects)
 06h 8N BYTEs	defect list
Offset	Size	Description
 00h  3 BYTEs	cylinder number of defect (big-endian)
 03h	BYTE	head number of defect
 04h	DWORD	defect sector number (big-endian)


SCSI disk information block:

Size	Description
 00h	BYTE	drive physical information
bit 0: ???
bit 1: device uses parity
bit 2: 256 bytes per sector instead of 512
bit 3: don't have capacity yet???
bit 4: disk is removable
bit 5: logical unit number is not present
 01h	WORD	translated number of cylinders
 03h	BYTE	translated number of heads
 04h	BYTE	translated number of sectors per track (17, 34, or 63)
 05h	BYTE	drive address
bits 0-2: logical unit number
bits 3-5: device number
 06h	BYTE	01h at initialization
 07h	BYTE	sense code byte 00h, or extended sense code byte 0Ch
 08h	BYTE	00h
 09h	BYTE	00h or extended sense code byte 02h (sense key)
 0Ah	BYTE	00h
 0Bh 10 BYTEs	copy of Command Descriptor Block (CDB)
 15h	DWORD	translated number of sectors on device


status record:

Size	Description
 00h	DWORD	total number of read requests
 04h	DWORD	total number of hits
 08h	DWORD	number of physical disk reads
 0Ch	DWORD	total number of sectors requested by physical disk reads
 10h  6 bytes	???
 16h	DWORD	pointer to start of error list
 1Ah	DWORD	pointer to end of error list
 1Eh	WORD	???
 20h	BYTE	using extended memory if nonzero
 21h	BYTE	???
 22h  4 BYTEs	ASCII version number
 26h	WORD	cache size in K
 28h	WORD	sectors per page


error list:

Size	Description
 00h	DWORD	relative block address of bad page
 04h	BYTE	drive
 05h	BYTE	sector bit-map
 06h	WORD	next error


information record:

Size	Description
 00h 80 BYTEs	name of directory from which NOW! was started
 50h 424 BYTEs	???
 81h  ? BYTEs	array of bytes for ???
 F7h 250 BYTEs	array of 25 entries, one per drive???
Offset	Size	Description
 00h  2 BYTEs	???
 02h	WORD	???
 04h	WORD	???
 06h  4 BYTEs	???
1F1h  7 BYTEs	???


data structure:

Size	Description
 00h	DWORD	pointer to 19-byte signature string
13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h
  04h 08h 15h  (v4.04)
 04h	???	???


driver info:

Size	Description
 00h	WORD	size of structure in bytes
 02h	BYTE	FOSSIL spec driver conforms to
 03h	BYTE	revision level of this specific driver
 04h	DWORD	pointer to ASCIZ identification string
 08h	WORD	size of the input buffer
 0Ah	WORD	number of bytes left in buffer
 0Ch	WORD	size of the output buffer
 0Eh	WORD	number of bytes left in buffer
 10h	BYTE	width of screen
 11h	BYTE	length of screen
 12h	BYTE	actual baud rate, computer to modem


configuration table:

Size	Description
 00h	BYTE	baud rate
00h 38400
01h 19200
02h  9600
03h  7200
04h  4800
05h  3600
06h  2400
07h  2000
08h  1200
09h   600
0Ah   300
0Bh   150
0Ch   134.5
 01h	BYTE	data bits (00h=5, 01h=6, 02h=7, 03h=8)
 02h	BYTE	parity (00h none, 01h odd, 02h even)
 03h	BYTE	stop bits (00h=1, 01h=2)
 04h	BYTE	receive flow control
00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC, 04h RTS/CTS
 05h	BYTE	transmit flow control (as for receive)


redirector status:

Size	Description
 00h	WORD	redirector major and minor version numbers
 02h	WORD	redirectable ports found
 04h	WORD	redirectable ports + local ports found
 06h	WORD	redirector internal buffer size
 08h	WORD	maximum servers maintained
 0Ah	WORD	number of adapters found


attachment structure:

Size	Description
 00h 16 BYTEs	server to look for attach
 10h 16 BYTEs	attach to resource name
 20h 16 BYTEs	username for attach
 30h 16 BYTEs	password for username or resource
 40h	BYTE	attach type
00h normal
01h queue if resource is in use (not yet supported in v1.00)


resource information structure:

Size	Description
 00h	BYTE	00h = free, else used
 01h 16 BYTEs	resource name
 11h 16 BYTEs	username of resource user
 21h	WORD	amount of time used
 23h	WORD	amount of time remaining
 53h 48 BYTEs	description of resource
 93h 64 BYTEs	initialization string for modem
 B3h 32 BYTEs	dial string for modem
 D3h 32 BYTEs	hang-up string for modem


port information structure:

Size	Description
 00h 16 BYTEs	server name resource is on
 10h	BYTE	adapter number server is on
 11h	BYTE	resource name
 21h	WORD	remote port index, use to get additional information
 23h	WORD	buffer size
 25h	WORD	baud rate (see below)
 26h	BYTE	modem status register
 27h	BYTE	modem control register
 28h	BYTE	line status register
 29h	BYTE	line control register
 2Ah	BYTE	flow control in use: 0 - NONE, 1 - XON/XOFF, 2 - RTS/CTS
 2Bh	WORD	send timeout in ticks
 2Dh	WORD	receive timeout in ticks
 2Fh	WORD	time used on remote port
 31h	WORD	time left before timeout
 33h	BYTE	if server changes allowed?
 34h	WORD	FFFFh (-1) if connection ok, else old port index


server name structure:

 Size	  Description
  00h 16 BYTEs	  (call) ASCIZ servername
  10h	 BYTE	  (return) the adapter server is found


port control block:

Type	Description
 00h	WORD	port IO address
 02h	WORD	port IRQ
 04h	WORD	baud rate
 06h	WORD	parity
 08h	WORD	data bits
 0Ah	WORD	stop bits
 0Ch	WORD	break status
    0000h off
 0Eh	WORD	flow control protocol
 10h	BYTE	input block
 11h	BYTE	output block
 12h	WORD	low threshold
 14h	WORD	high threshold
 16h	WORD	segment of buffer
 18h	WORD	offset of buffer
 1Ah	WORD	input buffer length
 1Ch	WORD	output buffer length
 1Eh	BYTE	auxiliary address
 1Fh	BYTE	spare
 20h  4 WORDs	spares


VFOSSIL information:

Size	Description
 00h	WORD	size of information in bytes, including this field
 02h	WORD	VFOSSIL major version
 04h	WORD	VFOSSIL revision level
 06h	WORD	highest VFOSSIL application function supported


application function table:

Size	Description
 00h	DWORD	-> function to query current video mode (VioGetMode)
 04h	DWORD	-> function to set video mode (VioSetMode)
 08h	DWORD	-> function to query hardware config (VioGetConfig)
 0Ch	DWORD	-> function to write data in TTY mode (VioWrtTTY)
 10h	DWORD	-> function to get current ANSI state (VioGetANSI)
 14h	DWORD	-> function to set new ANSI state (VioSetANSI)
 18h	DWORD	-> function to get curr cursor position (VioGetCurPos)
 1Ch	DWORD	-> function to set cursor position (VioSetCurPos)
 20h	DWORD	-> function to get cursor shape (VioGetCurType)
 24h	DWORD	-> function to set cursor shape (VioSetCurType)
 28h	DWORD	-> function to scroll screen up (VioScrollUp)
 2Ch	DWORD	-> function to scroll screen down (VioScrollDn)
 30h	DWORD	-> function to read cell string from screen (VioReadCellStr)
 34h	DWORD	-> function to read char string from screen (VioReadCharStr)
 38h	DWORD	-> function to write a cell string (VioWrtCellStr)
 3Ch	DWORD	-> function to write char string, leaving attr (VioWrtCharStr)
 40h	DWORD	-> function to write char string,const attr (VioWrtCharStrAttr)
 44h	DWORD	-> function to replicate an attribute (VioWrtNAttr)
 48h	DWORD	-> function to replicate a cell (VioWrtNCell)
 4Ch	DWORD	-> function to replicate a character (VioWrtNChar)


video mode data structure:

Size	Description
 00h	WORD	length of structure including this field
 02h	BYTE	mode characteristics
bit 0: clear if MDA, set otherwise
bit 1: graphics mode
bit 2: color disabled (black-and-white)
 03h	BYTE	number of colors supported (1=2 colors, 4=16 colors, etc)
 04h	WORD	number of text columns
 06h	WORD	number of text rows
 08h	WORD	reserved
 0Ah	WORD	reserved
 0Ch	DWORD	reserved


video configuration data:

Size	Description
 00h	WORD	structure length including this field
 02h	WORD	adapter type
00h monochrome/printer
01h CGA
02h EGA
03h VGA
07h 8514/A
 04h	WORD	display type
00h monochrome
01h color
02h enhanced color
09h 8514
 06h	DWORD	adapter memory size


cursor type record:

Size	Description
 00h	WORD	cursor start line
 02h	WORD	cursor end line
 04h	WORD	cursor width (always 01h)
 06h	WORD	cursor attribute (FFFFh = hidden)


status array entry:

Size	Description
 00h	BYTE	status
 01h	WORD	offset of name


NVRAM:

Size	Description
 00h	BYTE	time of day: seconds
 01h	BYTE	alarm time: seconds
 02h	BYTE	time of day: minutes
 03h	BYTE	alarm time: minutes
 04h	BYTE	time of day: hours
 05h	BYTE	alarm time: hours
 06h	BYTE	day of week, 1 = Sunday
 07h	BYTE	day of month
 08h	BYTE	month
 09h	BYTE	year mod 100
 0Ah	BYTE	RTC status register A
bit 7: set if date/time being updated
    6-4: time base speed, default 010 = 32768 Hz
    3-0: interrupt rate selection, default 0110 = 1024 Hz
 0Bh	BYTE	RTC status register B
bit 7: clear if normal update, set if abort update
    6: periodic interrupt enable
    5: alarm interrupt enable
    4: update end interrupt enable
    3: square wave enable
    2: date mode (clear = BCD, set = binary)
    1: 24-hour format
    0: daylight saving time enable
 0Ch	BYTE	RTC status register C (read-only)
bit 7: IRQF flag
    6: PF flag
    5: AF flag
    4: UF flag
 0Dh	BYTE	RTC status register D
bit 7: battery good
 0Eh  6 BYTEs	time and date machine last used
 14h	BYTE	user RAM checksum
 15h	WORD	Enter key scancode/ASCII code
 17h	WORD	Forward delete key scancode/ASCII code
 19h	WORD	Joystick fire button 1 scancode/ASCII code
 1Bh	WORD	Joystick fire button 2 scancode/ASCII code
 1Dh	WORD	mouse button 1 scancode/ASCII code
 1Fh	WORD	mouse button 2 scancode/ASCII code
 21h	BYTE	mouse X scaling factor
 22h	BYTE	mouse Y scaling factor
 23h	BYTE	initial VDU mode and drive count
 24h	BYTE	initial VDU character attribute
 25h	BYTE	size of RAM disk in 2K blocks
 26h	BYTE	initial system UART setup byte
 27h	BYTE	initial external UART setup byte
 28h 24 BYTEs	available for user application
Note:	bytes 00h-0Dh are the same on the IBM AT as they are used/updated by
  the clock chip


ABIOS System Parameter Table:

Size	Description
 00h	DWORD	FAR address of ABIOS Common Start Routine
 04h	DWORD	FAR address of ABIOS Interrupt Routine
 08h	DWORD	FAR address of ABIOS Time-out Routine
 0Ch	WORD	number of bytes of stack required by this ABIOS implementation
 0Eh 16 BYTEs	reserved
 1Eh	WORD	number of entries in initialization table


one entry of ABIOS Initialization Table:

Size	Description
 00h	WORD	device ID
 02h	WORD	number of Logical IDs
 04h	WORD	Device Block length (zero for ABIOS patch or extension)
 06h	DWORD	-> init routine for Device Block and Function Transfer Table
 0Ah	WORD	request block length
 0Ch	WORD	Function Transfer Table length (zero for a patch)
 0Eh	WORD	Data Pointers length (in Common Data Area)
 10h	BYTE	secondary device ID (hardware level this ABIOS ver supports)
 11h	BYTE	revision (device driver revision level this ABIOS supports)
 12h  6 BYTEs	reserved


object:

Size	Description
 00h	WORD	offset in common memory of previous object of same type
 02h	WORD	offset in common memory of next object of same type
 04h	WORD	signature FEDCh (DV 2.42-)
signature FEDCh or object number (DV 2.50+)
 06h	WORD	object type
00h window/task
01h mailbox
02h keyboard
03h timer
04h pointer
05h panel
06h objectq
 08h	DWORD	object handle to return to caller
 0Ch	DWORD	canonicalized object address (segment = common memory)
 10h	WORD	offset in common memory of owning task
 12h	WORD	mapping context
remainder varies by object type and DESQview version
---v2.42 keyboard object---
 14h	WORD	flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: keyboard opened
 16h  4 BYTEs	???
 1Ah	WORD	priority in OBJECTQ???
 1Ch	...
 25h	WORD	offset in common memory of ??? task
 27h  4 BYTEs	???
---v2.42 objectq object---
 14h	WORD	flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: OBJECTQ opened
 16h  2 BYTEs	???
 18h	WORD	offset in common memory of ??? task
 1Ah  6 BYTEs	???
---v2.42 mailbox object---
 14h	WORD	flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: mailbox opened
 1Ah	WORD	priority in OBJECTQ???
 1Ch  6 BYTEs	???
 22h	WORD	offset in common memory of mailbox name (counted string)
0000h if no name
     <= 5 BYTEs	???
---v2.22-2.42 window/task object---
 14h	BYTE	00h window, 01h task
 15h	BYTE	internal (not Switch menu) window number???
 16h	BYTE	internal (not Switch menu) window number???
 17h	WORD	segment of internal window record
 19h  2 BYTEs	???
 1Bh	BYTE	cursor row
 1Ch	BYTE	cursor column
 1Dh  2 BYTEs	???
 1Fh	BYTE	window height (logical)
 20h	BYTE	window width (logical)
 21h	BYTE	window position, row
 22h	BYTE	window position, column
 23h	BYTE	window height (visible)
 24h	BYTE	window width (visible)
 25h	BYTE	row of top of frame (or window if unframed)
 26h	BYTE	column of left of frame (or window if unframed)
 27h	BYTE	window height (physical, including frame)
 28h	BYTE	window width (physical, including frame)
 29h 10 BYTEs	???
 33h	BYTE	minimum height of window
 34h	BYTE	minimum width of window
 35h	BYTE	maximum height of window
 36h	BYTE	maximum width of window
 37h  3 BYTEs	???
 3Ah  8 BYTEs	window frame characters: ul,ur,ll,lr,t,b,l,r
 42h 24 BYTEs	attributes???
 5Ah  8 BYTEs	window frame characters: ul,ur,ll,lr,t,b,l,r
 62h  6 BYTEs	???
 68h	WORD	offset in common memory of window name or 0000h if untitled
 6Ah	WORD	length of window name
 6Ch  2 BYTEs	???
 6Eh	WORD	offset of logical cursor in window (in character cells)
 70h	DWORD	pointer to field table for window
 74h  3 BYTEs	???
 77h	BYTE	number of last-visited field
 78h	DWORD	pointer to field table entry for last-visited field
 7Ch  3 BYTEs	???
 7Fh	BYTE	select field marker character
 80h	BYTE	??? bit flags
bit 0: allow ECh window stream opcode to change reverse logattr
bit 1: alternate field processing mode selected
 81h	BYTE	???
 82h	DWORD	notification function (manager stream opcode 8Ah)
no notification if segment = 0000h
 86h	DWORD	notification argument (manager stream opcode 8Bh)
 8Ah	WORD	offset in common memory of ??? window object or 0000h
 8Ch	WORD	offset in common memory of ??? window object or 0000h
 8Eh	WORD	offset in common memory of ??? window object or 0000h
 8Ch  6 BYTEs	???
 ---task object only
 92h 11 BYTEs	???
 9Bh	BYTE	??? bit flags
bit 3: ???
bit 6: perform protected-attribute processing on select fields
 9Ch	BYTE	???
 9Dh	WORD	offset in common memory of current register save record
(see below).  No register save record in use if < 01C0h
 9Fh	WORD	offset in common memory of task's keyboard object
 A1h	WORD	offset in common memory of task's OBJECTQ object
 A3h	WORD	offset in common memory of task's mailbox object
 A5h	WORD	semaphore: FFFFh if on user stack, else on task's private stack
 A7h	DWORD	user's SS:SP
 ABh	WORD	task's private SP (SS read from offset 0Ah)
 ADh  6 BYTEs	???
 B3h	BYTE	??? bit flags
bit 0: run in foreground only
 B4h  2 BYTEs	???
 B6h	BYTE	task status (see AX=DE2Ch)
 B7h  9 BYTEs	???
 C0h	WORD	head pointer for keyboard buffer (wraps back to 00h after 80h)
 C2h	WORD	tail pointer for keyboard buffer (wraps back to 00h after 80h)
 C4h  2 BYTEs	??? (0000h)
 C6h	WORD	segment of keyboard buffer for task
 C8h	WORD	offset in common memory of ??? keyboard object
 CAh	BYTE	???
 CBh	WORD	offset in common memory of ??? object
 CEh	BYTE	??? flag
 CFh	WORD	offset in common memory of default notify window for task
or 0000h if none
 D1h  4 BYTEs	???
 D5h	BYTE	window number on Switch Window menu
 D6h  5 BYTEs	???
 DBh	WORD	offset in common memory of ??? object
 DDh  2 BYTEs	???
 DFh	WORD	API level for task
 E1h	WORD	offset in common memory of ??? keyboard object
 E7h	WORD	segment of ???
 FDh	BYTE	???
119h	DWORD	SS:SP for ???
11Dh  4 BYTEs	???
121h	DWORD	pointer to ???
125h 35 BYTEs	???
---v2.22
145h	task's default keyboard object
---v2.42
148h	WORD	???
14Ah	BYTE	???
14Dh 42 BYTEs	task's default keyboard object
177h 32 BYTEs	task's ObjectQ object
197h 41 BYTEs	task's default mailbox object
1C0h 24 BYTEs	first register save record
450h	--	default top of private stack


Register Save Record:

Size	Description
 00h	WORD	AX
 02h	WORD	BX
 04h	WORD	CX
 06h	WORD	DX
 08h	WORD	DI
 0Ah	WORD	SI
 0Eh	WORD	DS
 10h	WORD	ES
 12h	DWORD	return address
 16h	WORD	original flags


.PIF/.DVP file:

Size	Description
 00h	BYTE	reserved (0)
 01h	BYTE	checksum of bytes 02h through 170h
 02h 30 BYTEs	blank-padded program title
 20h	WORD	maximum memory to allocate to partition in K
 22h	WORD	minimum memory required in K
 24h 64 BYTEs	ASCIZ program pathname
 64h	BYTE	default drive letter ('A',...)
 65h 64 BYTEs	ASCIZ default directory name
 A5h 64 BYTEs	ASCIZ program parameters
 E5h	BYTE	initial screen mode (0-7) (see also offset 189h)
 E6h	BYTE	number of text pages used
 E7h	BYTE	number of first interrupt to save
 E8h	BYTE	number of last interrupt to save
 E9h	BYTE	rows in virtual screen buffer
 EAh	BYTE	columns in virtual screen buffer
 EBh	BYTE	initial window position, row
 ECh	BYTE	initial window position, column
 EDh	WORD	system memory in K
 EFh 64 BYTEs	ASCIZ shared program name
12Fh 64 BYTEs	ASCIZ shared program data file
16Fh	BYTE	flags1
bit 7: writes text directly to screen
bit 6: runs in foreground only
bit 5: uses math coprocessor
bit 4: accesses system keyboard buffer directly
bits 3-1: reserved (0)
bit 0: swappable
170h	BYTE	flags2
bit 6: uses command-line parameters in field at A5h
bit 5: swaps interrupt vectors
---information unique to .DVP files---
171h  2 BYTEs	keys to use on open menu
173h	WORD	size of script buffer in bytes
175h	WORD	automatically give up CPU after this many tests for keyboard
input in one clock tick (default 0 = never)
177h	BYTE	nonzero = "uses own colors"
178h	BYTE	nonzero if application swappable
179h  3 BYTEs	reserved (0) according to Quarterdeck documentation
in actual .DVP files, frequently 01h
17Ch	BYTE	nonzero to automatically close on exit (see also offset 18Bh)
17Dh	BYTE	nonzero if copy-protect floppy is required
---information unique to DESQview 2.0+---
17Eh	BYTE	.DVP version number
00h DESQview v1.2+
01h DESQview v2.0+
02h DESQview v2.2+
17Fh	BYTE	reserved (0)
180h	BYTE	initial number of rows in physical window
181h	BYTE	initial number of columns in physical window
182h	WORD	maximum expanded memory to allow, in K
184h	BYTE	flags3
bit 7: automatically assign window position
bit 5: maximum memory value has been specified
bit 4: disallow "Close" command
bit 3: foreground-only when doing graphics
bit 2: don't virtualize
bit 1: ??? set by DV 2.31 when "Runs in Background" = "D"
185h	BYTE	keyboard conflict level (0-4 for DV<2.26, 00h-0Fh for DV2.26+)
186h	BYTE	number of graphics pages used
187h	WORD	extra system memory size
189h	BYTE	initial screen mode (FFh = default) (overrides offset E5h)
---information unique to DESQview 2.2+---
18Ah	BYTE	serial port usage
FFh uses all serial ports
00h no serial ports
01h only COM1
02h only COM2
18Bh	BYTE	flags4
bit 7: automatically close application on exit if .COM or .EXE
specified (see also offset 17Ch)
bit 6: swappable if not using serial ports
bit 5: start program with window hidden (v2.26+)
bit 4: start program in background (v2.26+)
bit 3: virtualize text
bit 2: virtualize graphics
bit 1: share CPU when foreground
bit 0: share EGA when foreground and zoomed
18Ch	BYTE	protection level for 386 machines
18Dh 19 BYTEs	reserved (0) for regular DESQview
---information unique to DESQview/X 1.0---
18Dh	BYTE	X flags
bit 0: (XNEWPROC) use DOS client layer (DOS-to-X)
       (NEWPROC) inherit DOS client layer usage
bit 1: don't display DOS window
bit 2: don't display wait message when opening window
bits 3-7: unused (0)
18Eh	BYTE	X keyboard behavior (0-3)
18Fh	BYTE	font scaling
00h fixed fonts
01h scalable fonts
190h 10 BYTEs	reserved (0)
19Ah	WORD	length of data follownig XDVP signature
19Ch  4 BYTEs	signature "XDVP"
1A0h  N BYTEs	list of variable length records (see below)


variable length record:

Size	Description
 00h	WORD	length of following record, 0000h if end of record list
 02h	BYTE	record type
01h script filename, up to 64 characters
02h command-line parameters (allows >64 characters on cmdline)
03h environment inheritance
04h environment string
05h starting window position
---types 01h,02h,04h---
 03h  N BYTEs	ASCII data
---type 03h---
 03h	BYTE	inheritance
00h do not inherit
01h inherit environment
---type 05h---
 03h  N BYTEs	ASCII copy of fields as typed into DVPMAN, separated by commas:
starting row, starting column, starting height, starting width
Note:	if there are multiple occurrences of record types 01h, 02h, or 03h,
  only the last instance of each type is used; multiple occurrences of
  type 04h are concatenated


system memory block header (one paragraph before memory block):

Size	Description
 00h	WORD	segment of next header or 0000h
 02h	WORD	segment of previous header or 0000h
 04h	WORD	size of block in paragraphs, including header
 06h	BYTE	availability flag (00h in use, 01h free)


panel file:

Size	Description
 00h  2 BYTEs	C0h C3h
 02h	BYTE	number of panels in file
 03h	for each panel in file:
    8 BYTEs  blank-padded panel name
      DWORD  panel offset in file
      WORD   panel length
data for panels (each consists of one or more window/query/manager
streams)
    first byte of each panel must be 1Bh, fifth byte must be E5h


pointer message:

Size	Description
 00h	WORD	row
 02h	WORD	column
 04h	BYTE	status
bit 7: set when press/release mode active and button pressed
bit 6: set when press/release mode active and button released
bits 7-2: number of clicks-1 if multiple-click mode active
bits 1,0: button pressed (00=none,01=button1,10=button2)
 05h	BYTE	field number or zero (APILEVEL >= 2.00 only)


MultiDOS Plus v4.0 task control block:

Size	Description
 00h	DWORD	pointer to next TCB
 04h  8 BYTEs	ASCIZ task name
 0Ch  2 BYTEs	???
 0Eh	WORD	task PSP segment
 10h	WORD	abort/suspend flags
 12h	WORD	current screen segment (see AH=0Bh,AH=0Ch)
 14h	WORD	priority level (0000h-FFFEh)
 16h	WORD	time slice counter
 18h  2 BYTEs	???
 1Ah	WORD	suspend timer value
 1Ch	WORD	stack segment
 1Eh	WORD	stack pointer
 20h	WORD	display type
 22h	WORD	display memory
 24h  2 BYTEs	???
 26h	WORD	termination count
 28h	WORD	equipment flag for BIO10 driver
 2Ah	BYTE	background CRT mode
 2Bh	WORD	screen width in columns
 2Dh	WORD	screen size in bytes
 2Fh	WORD	segment of physical screen memory
 31h 16 BYTEs	eight cursor positions
 41h	WORD	current cursor shape
 43h	BYTE	active display page
 44h	WORD	CRT controller I/O port base
 46h  2 BYTEs	???
 48h	WORD	foreground task flag
 4Ah  6 BYTEs	???
 50h	WORD	saved video segment (see AH=0Bh,AH=0Ch)
 52h	DWORD	old INT 22
 56h	DWORD	old INT 23
 5Ah	DWORD	old INT 24
 5Eh	WORD	top of memory for task
 60h  4 BYTEs	???
 64h	WORD	DTA segment (see INT 21/AH=1Ah)
 66h	WORD	DTA offset
 68h  4 BYTEs	???
 6Ch	BYTE	current ANSI.SYS attribute
 6Dh	BYTE	current ANSI.SYS column
 6Eh	BYTE	current ANSI.SYS row
 6Fh	BYTE	current ANSI.SYS display state
 70h	BYTE	maximum ANSI.SYS columns
 71h	BYTE	current ANSI.SYS page
 72h	WORD	saved ANSI.SYS cursor position
 74h	BYTE	ANSI.SYS parameter buffer index
 75h	BYTE	current ANSI.SYS screen mode
 76h	BYTE	ANSI.SYS wrap flag
 77h  6 BYTEs	ANSI.SYS parameter buffer
 7Dh	BYTE	ANSI.SYS keyboard DSR state
 7Eh  7 BYTEs	ANSI.SYS keyboard DSR buffer
 85h  3 BYTEs	???
 88h 16 BYTEs	request header for DOS driver calls
 98h 14 BYTEs	???
 A6h	WORD	segment of EMS map if EMS task
 A8h	WORD	flag: task makes EMS calls
 AAh	WORD	EMS handle for task
 ACh	WORD	keyboard shift state
 AEh 12 BYTEs	???
 BAh	WORD	TCB of parent if child task
 BCh	WORD	termination code
 BEh	WORD	COM port number
 C0h  4 BYTEs	???
 C4h	WORD	current IRQ number
 C6h  2 BYTEs	???
 C8h	WORD	miscellaneous flag word
 CAh  2 BYTEs	???
 CCh	DWORD	old INT 10
 D0h	WORD	EMS alternate map set number
 D2h 414 BYTEs	DOS current disk and directory context (optional)


MultiDOS Plus 4.0 system block:

Size	Description
 00h	WORD	segment of system control block
 02h	WORD	redirection flag set by /NOREDIRECT
 04h	WORD	no-INT 10 flag set by /NO10
 06h	DWORD	old INT 10
 0Ah	DWORD	new INT 10
 0Eh	DWORD	pointer to WORD with current TCB offset (see AH=13h)
 12h	DWORD	pointer to WORD with idle task TCB offset
 16h	DWORD	pointer to WORD with foreground TCB offset
 1Ah	DWORD	pointer to WORD with MultiDOS TCB offset
 1Eh	WORD	Task Control Block size
 20h	WORD	number of TCBs
 22h	WORD	flag: EMS present
 24h	WORD	EMS page frame base segment
 26h	WORD	16K pages in EMS page frame
 28h	WORD	base segment for conventional memory tasks
 2Ah	WORD	conventional memory size in paragraphs
 2Ch	DWORD	pointer to list of queue pointers


global descriptor table:

Size	Description
 00h 16 BYTEs	zeros
 10h	WORD	source segment length in bytes (2*CX-1 or greater)
 12h  3 BYTEs	24-bit linear source address, low byte first
 15h	BYTE	source segment access rights (93h)
 16h	WORD	zero
 18h	WORD	destination segment length in bytes (2*CX-1 or greater)
 1Ah  3 BYTEs	24-bit linear destination address, low byte first
 1Dh	BYTE	destination segment access rights (93h)
 1Eh 18 BYTEs	zeros


XBRK structure:

Size	Description
 00h	DWORD	linear address of first available byte
 04h	DWORD	linear address of last available byte + 1 ???
 08h	DWORD	real-mode address of XBRK structure???
 0Ch	DWORD	???
 10h  2 BYTEs	???
 12h	WORD	segment of ???
 14h  8 BYTEs	???
 1Ch 512 BYTEs	protected-mode IDT
21Ch  N BYTEs	protected-mode GDT


ROM configuration table:

Size	Description
 00h	WORD	number of bytes following
 02h	BYTE	model (see below)
 03h	BYTE	submodel (see below)
 04h	BYTE	BIOS revision: 0 for first release, 1 for 2nd, etc.
 05h	BYTE	feature byte 1:
bit 7 = DMA channel 3 used by hard disk BIOS
bit 6 = 2nd 8259 installed
bit 5 = Real-Time Clock installed
bit 4 = INT 15/AH=4Fh called upon INT 9h
bit 3 = wait for external event supported
bit 2 = extended BIOS area allocated (usually at top of RAM)
bit 1 = bus is Micro Channel instead of ISA
bit 0 reserved
 06h	BYTE	feature byte 2:
bit 7 = ???
bit 6 = INT 16/AH=09h (keyboard functionality) supported
bits 5-0 = ???
 07h	BYTE	feature byte 3:
reserved (0)
 08h	BYTE	feature byte 4:
reserved (0)
 09h	BYTE	feature byte 5:
reserved (0) (IBM)
??? (08h) (Phoenix 386 v1.10)
---AWARD BIOS---
 0Ah  N BYTEs	AWARD copyright notice
---Phoenix BIOS---
 0Ah	BYTE	??? (00h)
 0Bh	BYTE	major version
 0Ch	BYTE	minor version (BCD)
 0Dh  4 BYTEs	ASCIZ string "PTL" (Phoenix Technologies Ltd)


program entry in DESQVIEW.DVO:

Size	Description
 00h	BYTE	length of name (FFh if end of file)
 01h  N BYTEs	name
      2 BYTEs	keys to invoke program (second = 00h if only one key used)
BYTE	program type
00h normal program
04h divider
80h Delete a Program
81h Change a Program
WORD	??? apparently always 0000h


Instance Item Structure [one element of list]:

Size	Description
 00h	WORD	length of data area DESQview should save and restore on context
switches (0000h = end of list)
 02h	DWORD	pointer to area to be saved/restored


window information:

Size	Description
 00h	BYTE	task flag: 00h window, 01h task
 01h	BYTE	process number if owner task
00h if non-owner task
 02h	WORD	segment of owner's handle, 0000h if orphaned
 04h	WORD	mapping context
 06h	BYTE	task status (see below)
 07h	BYTE	unused
 08h	WORD	status bits
bit 0: DESQview process
bit 1: process swapped out
bit 2: process is resized direct window (suspended)
bit 3: process suspended itself
bit 4: user suspended process
bit 5: process is being created
bit 6: task is freeing another task
 0Ah	BYTE	01h if foreground-only window


socket record:

Size	Description
 00h	WORD	signature F0ADh
 02h	WORD	function number
0000h initialize socket???
0001h "gethostname"
0002h "ioctl" check for input
0003h "sleep" delay for specified period
0004h "htons" convert word to network (big-endian) byte order
0005h "select"
0006h "bsd_close"/"so_close" close socket
0007h NOP
0008h "connect" initiate connection on socket
0009h "recv"/"recvfrom" read from socket
000Ah "socket"
000Bh ???
000Ch "gethostbyname"
000Dh "send"/"sendto" write to socket
000Eh ??? (does something to all connections for process)
000Fh "getpid" get process identifier
0010h "gettimeofday"
0011h "bind" assign name to socket
0012h "listen" listen for connections on socket
0013h "accept" accept connection on socket
0014h connect to X server
0015h "gethostbyaddr" get host information for an address
0016h "getprotobyname"
0017h "getprotobynumber"
0018h "getservbyname"
0019h "getservbyport"
001Ah "getsockname" determine name bound to socket
001Bh "getpeername" get name of connected peer
001Ch "getsockopt"/"setsockopt"
001Dh "so_exit"	 close all sockets for calling process
001Eh "issock" determine whether file handle references socket
001Fh "so_attach" reattach previously detached socket
0020h "so_detach" temporarily detach socket
0021h get DESQview directory
0022h "NewProc" start new application (see AX=102Ch)
0023h "so_linkup"
0024h canonicalize filename
0025h indirect INT 15h call
0026h Network Manager interface
0027h "so_unlink"    close connection from "so_linkup"
0028h "raisepriority"
0029h "lowerpriority"
002Ah ???
FFFFh "NetExit" (appears to be a NOP)
 04h	WORD	returned error code (see below)
 06h	WORD	maximum message size??? (usually 0400h)
 08h	WORD	PSP segment to use or 0000h if socket not valid
 0Ah	WORD	scratch space (JFT size)
 0Ch	DWORD	scratch space (JFT address)
 10h	DWORD	mailbox handle (initialized by function 0000h)
 14h	DWORD	timer object handle (initialized by function 0000h)
---function 0000h---
 18h	WORD	(return) ???
---function 0001h---
 18h	WORD	(return) status???
 1Ah 128 BYTEs	(return) ASCIZ hostname (empty string if not on network)
 9Ah	WORD	maximum length of hostname to return
---function 0002h---
 18h	WORD	(return) status
 1Ah	WORD	socket's file handle
 1Ch	WORD	IOCTL function
05h "FIONREAD" determine available input
06h "FIONBIO" set blocking state of socket
 1Eh	WORD	(return, subfn 05h) number of bytes available for reading
(call, subfn 06h) 0000h blocking, nonzero nonblocking
---function 0003h---
 18h  2 BYTEs	unused
 1Ah	WORD	delay time in seconds
---function 0004h---
 18h	WORD	(return) result in network (big-endian) byte order
 1Ah	WORD	value to convert to network byte order
---function 0005h---
 18h	WORD	(return) number of handles meeting the specified conditions???
 1Ah	WORD	number of file handles in each bitset???
 1Ch	DWORD	bitset of socket handles to check for readability???
 20h	DWORD	bitset of socket handles to check for writability???
 24h	DWORD	bitset of socket handles to check for errors???
 28h	WORD	timeout in ??? or 0000h to block until some socket ready
 2Ah	DWORD	???
 2Eh	DWORD	???
---function 0006h---
 18h	WORD	(return) status: 0000h if successful, FFFFh on error
 1Ah	WORD	socket's file handle
---function 0008h---
 18h	WORD	(return) status: 0000h if successful, FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	WORD	0001h if socket name specified, 0000h if not
 1Eh	WORD	length of socket name
 20h  N BYTEs	name of socket to which to connect
---function 0009h---
 18h	WORD	(return) number of bytes actually read, 0000h if connection
closed, or FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	WORD	number of bytes to read
 1Eh	WORD	flags
 20h	WORD	0000h if no source address desired
0001h if source address is to be stored (datagram sockets)
 22h	WORD	length of source address
 24h 110 BYTEs	source address
 92h 1K BYTEs	buffer for data to be read
---function 000Ah---
 18h	WORD	(return) socket's file handle or FFFFh on error
 1Ah	WORD	address family (0001h,0002h)
 1Ch	WORD	socket type
 1Eh	WORD	protocol
---function 000Bh---
 18h	WORD	(return) 0001h if ??? or FFFFh on error
 1Ah	WORD	socket's file handle
 1Eh	WORD	(call) ???
---function 000Ch---
 18h 128 BYTEs	buffer containing ASCIZ hostname
special case if empty string or "unix"
 98h	???	'struct hostent' ???
 A2h	???	(return) ???
---function 000Dh---
 18h	WORD	(return) number of bytes actually written or FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	WORD	number of bytes to write
 1Eh	WORD	number of bytes to follow in subsequent writes???
 20h	WORD	flags
 22h	WORD	0000h if no destination specified, 0001h if destination present
 24h	WORD	???
 26h	WORD	length of destination address
 28h 110 BYTEs	destination address
 96h 1K BYTEs	buffer containing data to be written
---function 000Eh---
 no additional fields
---function 000Fh---
 18h	DWORD	(return) DESQview task handle of calling process
---function 0010h---
 18h	DWORD	(return) current time
 1Ch	DWORD	(return) ???
---function 0011h---
 18h	WORD	(return) status: 0000h if successful, FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	WORD	length of name
 1Eh  N BYTEs	buffer for socket name
---function 0012h---
 18h	WORD	(return) status: 0000h if successful, FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	WORD	maximum backlog of pending connections allowed on socket
---function 0013h---
 18h	WORD	(return) file handle for new connection or FFFFh on error
 1Ah	WORD	listen()ing socket's file handle
 1Ch	WORD	(call) length of buffer for connecting entity's address
(return) actual length of address
 1Eh  N BYTEs	buffer for connecting entity's address
---function 0014h---
 18h	WORD	(return) socket's file handle or FFFFh on error
 1Ah  4 BYTEs	(return) ???
 1Eh	WORD	(return) ???
 20h	WORD	(return) ???
 22h 256 BYTEs	ASCIZ X display name
122h	???
---function 0015h---
 18h	WORD	(call) type of address??? (test for 0001h seen)
 1Ah	WORD	(call) length of buffer for host address
 1Ch 110 BYTEs	buffer containing host address
 8Ah	WORD	(return) offset of official host name???
 8Ch	WORD	(return) offset of alias list???
 8Eh	WORD	(return) address type???
 90h	WORD	(return) length of an address in bytes???
 92h	WORD	(return) offset of address???
 9Ah  N BYTEs	(return) ??? buffer for hostname, alias list, and host address
---function 0016h---
 18h	???	buffer for protocol name???
 98h	???
---function 0017h---
 18h	WORD	(call) protocol number???
 1Ah	WORD	(return) ??? or 0001h
---function 0018h---
 18h 128 BYTEs	buffer containing ???
 98h 128 BYTEs	buffer containing ???
118h	WORD	(return) ???
---function 0019h---
 18h	WORD	length of name???
 1Ah 128 BYTEs	buffer for name???
 9Ah	WORD	(return) ???
---function 001Ah---
 18h	WORD	(return) 0000h if successful, FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	WORD	(call) length of buffer for socket name
(return) actual length of socket name
 1Eh  N BYTEs	buffer for socket name
---function 001Bh---
 18h	WORD	(return) status: 0000h if successful, FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	WORD	(call) size of buffer for name
(return) actual size of name
 1Eh  N BYTEs	buffer for peer's name
---function 001Ch---
 18h	WORD	(return) status: 0000h if successful, FFFFh on error
 1Ah	WORD	direction: 0000h to get, 0001h to set
 1Ch	WORD	socket's file handle
 1Eh	WORD	option level
 20h	WORD	option name
 22h	WORD	(call) length of buffer for option value
(return) actual length of option value
 24h  N BYTEs	buffer for option value
---function 001Dh---
 no additional fields
---function 001Eh---
 18h	WORD	(return) status: 0000h ??? or 0001h ???
 1Ah	WORD	file handle which may or may not be a socket
---function 001Fh---
 18h	WORD	(return) file handle or FFFFh on error
 1Ah	DWORD	(call) pointer to Socket Context Record (see below) of a
previously detached socket
---function 0020h---
 18h	WORD	(return) status: 0000h if successful or FFFFh on error
 1Ah	WORD	socket's file handle
 1Ch	DWORD	(return) pointer to Socket Context Record (see below) for
the file handle
---function 0021h---
 18h 64 BYTEs	buffer for DESQview startup directory (see AX=DE25h)
---function 0022h---
 18h	DWORD	(return) task handle of new application
 1Ch	WORD	size of .DVP data
 1Eh 129 BYTEs	ASCIZ ???
 9Fh  N BYTEs	.DVP data (see AX=102Ch)
---function 0023h---
 18h	WORD	(return) ??? or FFFFh on error
 1Ah	WORD	socket's file handle???
---function 0024h---
 18h	WORD	(return) DOS error code (see INT 21/AH=59h)
0000h if successful
 1Ah 129 BYTEs	ASCIZ filename/pathname
11Bh 129 BYTEs	ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
---function 0025h---
 18h	WORD	value of AX
 1Ah	WORD	value of BX
 1Ch	WORD	(call) value of CX for call if AH value other than 12h
(call) number of stack parameters if AH value is 12h
(return) returned CX for calls other than INT 15/AH=12h
 1Eh	WORD	value of DX
 20h	WORD	value of DI
 22h	WORD	value of SI
 24h	WORD	value of DS
 26h	WORD	value of ES
 28h	WORD	(return) value of FLAGS after call
 2Ah  N DWORDs	(call) stack parameters for INT 15/AH=12h call
(return) stack results from INT 15/AH=12h call
---function 0026h---
 18h	WORD	(call) subfunction
0004h "so_exit"???
0005h "gethostbyname"
0006h "gethostname"
0009h "socket"
000Dh "gethostbyaddr"
000Fh "getprotobyname"
0010h get protocol name for protocol number
0011h "getservbyname"
0012h "getservbyport"
0013h "getsockname"???
0016h ???
0017h kill Network Manager
0018h "getpeername"???
0019h ??? (called by socket function 0000h)
001Ah ???
001Bh "so_linkup"
001Dh get network services
001Fh "getpwuid"
0020h "getpwnam"
0021h "getpwvar"
0022h "crypt"
0023h "so_unlink"
0024h "getlogin"
0028h "sethostent"
0029h "gethostent"
002Ah "soaddhost"
002Bh "soupdatehost"
002Ch "sodeletehost"
002Dh "setservent"
002Eh "getservent"
002Fh "setpwent"
0030h "getpwent"
0031h ???
0032h ???
0033h ???
0034h get IP network number
0035h ??? (pops up Network Manager window)
0037h ???
0038h get machine name and IP address
0039h ???
(return) status???
 1Ah	WORD	(call) size of parameter data
(return) size of returned data
 1Ch  N BYTEs	(call) parameter data required by call (see below)
(return) result data (see below)
---function 0027h---
 18h	WORD	(return) status: 0000h if successful, FFFFh on error
 1Ah	WORD	socket's file handle
---functions 0028h,0029h---
 18h	WORD	(call) file handle for which to set priority low/high
FFFFh to change calling task's priority
---function 002Ah---
 no additional fields


Function 0026h/Subfunction 000Fh data:

Size	Description
 00h  8 BYTEs	(return) ???


Function 0026h/Subfunction 0010h data:

Size	Description
 00h  2 BYTEs	(return) ???
 02h	WORD	(return) protocol number
 04h	WORD	(call) protocol number for which to get name
 06h	WORD	(return) ???
 08h	var	(return) ASCIZ protocol name
 N	var	(return) ASCIZ protocol name


Function 0026h/Subfunction 0011h data:

Size	Description
 00h  8 BYTEs	???
 08h	var	(return) ASCIZ protocol name
var	(return) ASCIZ ??? name
var	(return) ASCIZ ??? name


Function 0026h/Subfunction 0012h data:

Size	Description
 00h  8 BYTEs	(return) ???


Function 0026h/Subfunction 0013h data:

Size	Description
 00h 116 BYTEs	(return) ???


Function 0026h/Subfunction 0016h data:

Size	Description
 00h  4 BYTEs	(return) ???


Function 0026h/Subfunction 0018h data:

Size	Description
 00h 116 BYTEs	(return) ???


Function 0026h/Subfunction 0019h data:

Size	Description
 00h  4 BYTEs	(return) ???
 04h	DWORD	(return) task handle of ???


Function 0026h/Subfunction 001Ah data:

Size	Description
 00h 38 BYTEs	(return) ???


Function 0026h/Subfunction 001Bh data:

Size	Description
 00h 10 BYTEs	(return) ???


Function 0026h/Subfunction 001Dh return data [array]:

Size	Description
 00h	WORD	??? or FFFFh if end of array
 02h  7 BYTEs	???
 09h 27 BYTEs	ASCIZ name of service


Function 0026h/Subfunction 0024h return data:

Size	Description
 00h	var	ASCIZ username


Function 0026h/Subfunction 0030h data:

Size	Description
 00h	WORD	(call) UID or 0000h for current user
(return) ???
 02h	WORD	(return) UID
 04h  6 BYTEs	(return) ???
 0Ah	var	(return) ASCIZ username
var	(return) ASCIZ encrypted password
var	(return) ASCIZ initial ("home") directory


Function 0026h/Subfunction 0034h data:

Size	Description
 00h  1-3 BYTEs	IP network number of caller's machine (low byte first)


Function 0026h/Subfunction 0038h return data:

Size	Description
 00h	BYTE	???
 01h  4 BYTEs	IP address
 05h	var	ASCIZ machine name
???


Socket Context Record:

Size	Description
 00h	DWORD	pointer to next Socket Context Record, 0000h:0000h if last
 04h	WORD	SFT index for socket, 00FFh if not connected, FFFFh if detached
 06h	WORD	PSP segment of owner or 0000h
 08h	WORD	mapping context of owning window
 0Ah  2 BYTEs	???
 0Ch	WORD	address family
 0Eh	WORD	socket type
 10h	WORD	protocol
 12h	WORD	socket state
0001h created
0002h bound
0003h listening???
0005h connected
 14h	DWORD	timer object handle
 18h	DWORD	object handle (mailbox???)
 1Ch	DWORD	object handle of parent of above object or 0000h:0000h
 20h	DWORD	pointer to ??? or 0000h
 24h  6 BYTEs	???
 2Ah	WORD	file handle for socket or FFFFh
 2Ch  2 BYTEs	???
 2Eh	WORD	nonzero if socket nonblocking
---network connections only---
 30h  2 BYTEs	???
 32h	WORD	???
 34h  4 BYTEs	IP address of remote (big-endian)
 38h  6 BYTEs	???


tone array entries:

Size	Description
 00h	WORD	divisor for timer channel 2
 02h	WORD	duration in clock ticks


event record:

Size	Description
 00h	BYTE	in-use flag (00h free, 01h in use, FFh end of array)
 01h	BYTE	day of date on which to trigger
 02h	BYTE	month of date on which to trigger
 03h	BYTE	trigger time, minute
 04h	BYTE	trigger time, hour
 05h	WORD	offset of command to be executed


data block:

Size	Description
 00h	DWORD	pointer to program tag (counted ASCII string)
 04h	WORD	interface version number (0400h)
 06h	DWORD	pointer to command entry point
 0Ah	DWORD	pointer to previous data block (0000h:0000h if none)
 0Eh	DWORD	pointer to next data block (0000h:0000h if none)
---swappable TSRs only---
 12h	DWORD	pointer to swapping data
 16h	DWORD	pointer to user data
more???


buffer:

Size	Description
 00h 48 BYTEs	???
 30h 128 BYTEs	???


overlay header:

Size	Description
 00h 12 BYTEs	NUL-padded ASCII overlay filename
 0Ch	DWORD	offset within DESK.OVL file of actual overlay


internal data:

Size	Description
-1Ch 20 BYTEs	cached drive list, one byte per drive A: to T:
each byte is either blank (20h) or drive letter (41h-54h)
 -8	BYTE	???
 -7	WORD	number of physical transfers (scaled down to 0000h-7FFFh)
 -5	WORD	number of saved transfers (scaled down to 0000h-7FFFh)
 -3   3 BYTEs	???


window parameters:

Size	Description
 00h	BYTE	rows in window, not counting frame
 01h	BYTE	columns in window, not counting frame
 02h	BYTE	row number of top of window
 03h	BYTE	2*column number of left of window
 04h	BYTE	character attribute for ???
 05h	BYTE	character attribute for background/border
 06h	BYTE	character attribute for ???
 07h	DWORD	pointer to ??? on screen
 0Bh  4 BYTEs	???
 0Fh	BYTE	nonzero if window may be resized
Note:	if running in monochrome mode, character attributes at offsets 04h to
  06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
  are changed to 07h on reading


data structure:

Size	Description
 00h	WORD	???
 02h	WORD	???
 04h	WORD	???
 06h	WORD	???
 08h	WORD	???
 0Ah	BYTE	???
 0Bh	BYTE	??? (zero/nonzero)
---v7.1---
 0Ch	WORD	???
 0Eh	BYTE	???
 0Fh	WORD	???
 11h	WORD	???
???


returned pointer list:

Size	Description
 00h	WORD	offset of WORD containing ???
 02h	WORD	offset of name of program to execute
 04h	WORD	offset of 80-byte buffer for ???
 06h	WORD	offset of buffer for ??? (length in WORD preceding buffer)
 08h	WORD	offset of buffer for ??? (length in WORD preceding buffer)


pulldown menu system description:

Size	Description
 00h	WORD	offset of menu bar contents (counted string)
 02h	WORD	number of items on menu bar
 04h 10 BYTEs	scan codes for hotkeying to each of up to ten menu items
 0Eh 10	BYTEs	which character to highlight in each menu item (01h=first)
 18h	WORD	offset of first menu definition (see below)
 1Ah	WORD	offset of second menu definition
...


menu definition:

Size	Description
 00h	WORD	offset of menu contents (see below)
 02h	WORD	number of entries in menu
 04h	for each entry:
Offset	Size	Description
 00h	BYTE	scancode of Alt-key to invoke entry
 01h	BYTE	character to highlight (01h=first, etc)
 02h	WORD	offset of FAR routine to handle selection


menu contents:

Size	Description
 00h	BYTE	number of lines in menu
 01h	BYTE	width of menu
 02h  N BYTEs	counted strings, one for each line in menu


attribute data structure:

Size	Description
 -1	BYTE	attribute for desktop background
 00h	BYTE	attribute for normal characters on desktop menu
 01h	BYTE	attribute for highlighted characters on desktop menu
 02h  5	BYTEs	???
 07h	BYTE	attribute for dialog boxes
 08h 15 BYTEs	???
 17h	BYTE	attribute for message boxes


editor buffer structure:

Size	Description
 00h	WORD	offset of current cursor position in buffer segment
 02h  2 BYTEs	???
 04h	WORD	offset of beginning of file data in buffer segment
 06h 10 BYTEs	???
 10h  N BYTEs	ASCIZ name of file being edited


hotkey table:

Size	Description
 00h  2 BYTEs	scancode/shift state for desktop hotkey
 02h  2 BYTEs	scancode/shift state for clipboard paste key
 04h  2 BYTEs	scancode/shift state for clipboard copy key
 06h  2 BYTEs	scancode/shift state for screen autodial key


control block:

Size	Description
 00h	WORD	printer number
 02h	WORD	address of printer status port
 04h	WORD	number of first record in queue
 06h	WORD	number of last record in queue
 08h	DWORD	characters already printed
 0Ch	DWORD	number of characters remaining
 10h	DWORD	pointer to dequeue buffer
 14h	DWORD	previous count of characters printed
 18h	DWORD	number of clock ticks taken to print them
 1Ch	WORD	offset of next character to output
 1Eh	WORD	offset of next character to print
 20h	WORD	pointer to spooling queue record
 22h	BYTE	current spooling status
 23h	BYTE	current printer status:
00h OK
01h not ready
02h paused with message
03h paused
04h initializing
FEh non-existent port
FFh not spooled
 24h	BYTE	current control record type
 25h	WORD	observed printer speed
 27h	WORD	characters to print per service
 29h	BYTE	01h if disk write needed
 2Ah	BYTE	01h if queued data should be flushed
 2Bh	BYTE	01h to update cps status


VDISK header block (at beginning of INT 19 handler's segment):

Size	Description
 00h 18 BYTEs	n/a (for VDISK.SYS, the device driver header)
 12h 11 BYTEs	signature string "VDISK	 Vn.m" for VDISK.SYS version n.m
 1Dh 15 BYTEs	n/a
 2Ch  3 BYTEs	linear address of first byte of available extended memory


hard disk master boot sector:

Size	Description
 00h 446 BYTEs	Master bootstrap loader code
1BEh 16 BYTEs	partition record for partition 1 (see below)
1CEh 16 BYTEs	partition record for partition 2
1DEh 16 BYTEs	partition record for partition 3
1EEh 16 BYTEs	partition record for partition 4
1FEh	WORD	signature, AA55h indicates valid boot block


partition record:

Size	Description
 00h	BYTE	boot indicator (80h = active partition)
 01h	BYTE	partition start head
 02h	BYTE	partition start sector (bits 0-5)
 03h	BYTE	partition start track (bits 8,9 in bits 6,7 of sector)
 04h	BYTE	operating system indicator (see below)
 05h	BYTE	partition end head
 06h	BYTE	partition end sector (bits 0-5)
 07h	BYTE	partition end track (bits 8,9 in bits 6,7 of sector)
 08h	DWORD	sectors preceding partition
 0Ch	DWORD	length of partition in sectors


Cparms structure:

Size	Description
 00h	WORD	retry delay in seconds
 02h	WORD	timeout delay in seconds
 04h	WORD	maximum buffer size
 06h	WORD	encryption level


video parameters:

Size	Description
 00h 16 BYTEs	6845 register values for modes 00h and 01h
 10h 16 BYTEs	6845 register values for modes 02h and 03h
 20h 16 BYTEs	6845 register values for modes 04h and 05h
 30h 16 BYTEs	6845 register values for modes 06h and 07h
 40h	WORD	bytes in video buffer for modes 00h and 01h
 42h	WORD	bytes in video buffer for modes 02h and 03h
 44h	WORD	bytes in video buffer for modes 04h and 05h
 46h	WORD	bytes in video buffer for modes 06h and 07h
 48h  8 BYTEs	columns on screen for each of modes 00h through 07h
 50h  8 BYTEs	CRT controller mode bytes for each of modes 00h through 07h


diskette parameter table:

Size	Description
 00h	BYTE	first specify byte
bits 7-4: step rate
     3-0: head unload time (0Fh = 240 ms)
 01h	BYTE	second specify byte
bits 7-1: head load time (01h = 4 ms)
       0: non-DMA mode (always 0)
 02h	BYTE	delay until motor turned off (in clock ticks)
 03h	BYTE	bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024)
 04h	BYTE	sectors per track
 05h	BYTE	length of gap between sectors (2Ah for 5.25", 1Bh for 3.5")
 06h	BYTE	data length (ignored if bytes-per-sector field nonzero)
 07h	BYTE	gap length when formatting (50h for 5.25", 6Ch for 3.5")
 08h	BYTE	format filler byte (default F6h)
 09h	BYTE	head settle time in milliseconds
 0Ah	BYTE	motor start time in 1/8 seconds


input buffer:

Size	Description
 00h	BYTE	maximum characters buffer can hold
 01h	BYTE	(input) number of chars from last input which may be recalled
(return) number of characters actually read, excluding CR
 02h  N BYTEs	actual characters read, including the final carriage return


File Control Block:

Size	Description
 -7	BYTE	extended FCB if FFh
 -6   5 BYTEs	reserved
 -1	BYTE	file attribute if extended FCB
 00h	BYTE	drive number (0 = default, 1 = A, etc)
 01h  8 BYTEs	blank-padded file name
 09h  3 BYTEs	blank-padded file extension
 0Ch	WORD	current block number
 0Eh	WORD	logical record size
 10h	DWORD	file size
 14h	WORD	date of last write (see AX=5700h)
 16h	WORD	time of last write (see AX=5700h) (DOS 1.1+)
 18h  8 BYTEs	reserved (see below)
 20h	BYTE	record within current block
 21h	DWORD	random access record number (if record size is > 64 bytes, high
byte is omitted)
Note:	to use an extended FCB, you must specify the address of the FFh flag at
  offset -7, rather than the address of the drive number field


reserved field for DOS 1.0:

Size	Description
 16h	WORD	location in directory (if high byte = FFh, low byte is device
ID)
 18h	WORD	number of first cluster in file
 1Ah	WORD	current absolute cluster number on disk
 1Ch	WORD	current relative cluster number within file
(0 = first cluster of file, 1 = second cluster, etc.)
 1Eh	BYTE	dirty flag (00h = not dirty)
 1Fh	BYTE	unused


reserved field for DOS 1.10-1.25:

Size	Description
 18h	BYTE	bit 7: set if logical device
bit 6: not dirty
bits 5-0: disk number or logical device ID
 19h	WORD	starting cluster number on disk
 1Bh	WORD	current absolute cluster number on disk
 1Dh	WORD	current relative cluster number within file
 1Fh	BYTE	unused


reserved field for DOS 2.x:

Size	Description
 18h	BYTE	bit 7: set if logical device
bit 6: set if open???
bits 5-0: ???
 19h	WORD	starting cluster number on disk
 1Bh	WORD	???
 1Dh	BYTE	???
 1Eh	BYTE	???
 1Fh	BYTE	???


reserved field for DOS 3.x:

Size	Description
 18h	BYTE	number of system file table entry for file
 19h	BYTE	attributes
bits 7,6: 00 = SHARE.EXE not loaded, disk file
  01 = SHARE.EXE not loaded, character device
  10 = SHARE.EXE loaded, remote file
  11 = SHARE.EXE loaded, local file
bits 5-0: low six bits of device attribute word
---SHARE.EXE loaded, local file (DOS 3.x and 5.0)---
 1Ah	WORD	starting cluster of file on disk
 1Ch	WORD	(DOS 3.x) offset within SHARE of sharing record (see AH=52h)
(DOS 5.0) unique sequence number of sharing record
 1Eh	BYTE	file attribute
 1Fh	BYTE	???
---SHARE.EXE loaded, remote file---
 1Ah	WORD	number of sector containing directory entry
 1Ch	WORD	relative cluster within file of last cluster accessed
 1Eh	BYTE	absolute cluster number of last cluster accessed
 1Fh	BYTE	???
---SHARE.EXE not loaded---
 1Ah	BYTE	(low byte of device attribute word AND 0Ch) OR open mode
 1Bh	WORD	starting cluster of file
 1Dh	WORD	number of sector containing directory entry
 1Fh	BYTE	number of directory entry within sector
Note:	if FCB opened on character device, DWORD at 1Ah is set to the address
  of the device driver header, then the BYTE at 1Ah is overwritten.


DOS 1.1 and MSDOS 1.25 drive parameter block:

Size	Description
 00h	BYTE	sequential device ID
 01h	BYTE	logical drive number (0=A:)
 02h	WORD	bytes per sector
 04h	BYTE	highest sector number within a cluster
 05h	BYTE	shift count to convert clusters into sectors
 06h	WORD	starting sector number of first FAT
 08h	BYTE	number of copies of FAT
 09h	WORD	number of directory entries
 0Bh	WORD	number of first data sector
 0Dh	WORD	highest cluster number (number of data clusters + 1)
 0Fh	BYTE	sectors per FAT
 10h	WORD	starting sector of directory
 12h	WORD	address of allocation table
Note:	the DOS 1.0 table is the same except that the first and last fields
  are missing; see INT 21/AH=32h for the DOS 2+ version


selector structure:

Size	Description
 00h	WORD	protected-mode GS selector
 02h	WORD	protected-mode FS selector
 04h	WORD	protected-mode ES selector
 06h	WORD	protected-mode DS selector


parameter block:

Size	Description
 00h	WORD	real-mode DS value
 02h	WORD	real-mode ES value
 04h	WORD	real-mode FS value
 06h	WORD	real-mode GS value
 08h	DWORD	real-mode EAX value
 0Ch	DWORD	real-mode EBX value
 10h	DWORD	real-mode ECX value
 14h	DWORD	real-mode EDX value


parameter block:

Size	Description
 00h	WORD	interrupt number
 02h	WORD	real-mode DS value
 04h	WORD	real-mode ES value
 06h	WORD	real-mode FS value
 08h	WORD	real-mode GS value
 0Ah	DWORD	real-mode EAX value
 0Eh	DWORD	real-mode EDX value
Note: all other real-mode values set from protected-mode registers


parameter block:

Size	Description
Input:
 00h	DWORD	32-bit offset of environment string
 04h	WORD	segment of environment string
 06h	DWORD	32-bit offset of command-tail string
 0Ah	WORD	segment of command-tail string
 0Ch	DWORD	32-bit offset of LDT buffer (size in ECX)
 10h	WORD	segment of LDT buffer
Output:
 12h	WORD	real-mode paragraph address of PSP (see also AH=26h)
 14h	WORD	real/protected mode flag
0000h  real mode
0001h  protected mode
 16h	DWORD	initial EIP value
 1Ah	WORD	initial CS value
 1Ch	DWORD	initial ESP value
 20h	WORD	initial SS value
 22h	WORD	initial DS value
 24h	WORD	initial ES value
 26h	WORD	initial FS value
 28h	WORD	initial GS value


VM stats buffer:

Size	Description
 00h	DWORD	VM status
0001h VM subsystem is present
0000h VM not present
 04h	DWORD	"nconvpg" number of conventional memory pages available
 08h	DWORD	"nbimpg" number of Compaq built-in memory pages available
 0Ch	DWORD	"nextpg" total number of extended memory pages
 10h	DWORD	"extlim" extender memory pages limit
 14h	DWORD	"aphyspg" number of physical memory pages allocated to appl
 18h	DWORD	"alockpg" number of locked pages owned by application
 1Ch	DWORD	"sysphyspg" number physical memory pages allocated to system
 20h	DWORD	"nfreepg" number of free physical pages; approx if EMS VCPI
 24h	DWORD	linear address of beginning of application address space
 28h	DWORD	linear address of end of application address space
 2Ch	DWORD	number of seconds since last time VM stats were reset
 30h	DWORD	number of page faults since last time
 34h	DWORD	number of pages written to swap file since last time
 38h	DWORD	number of reclaimed pages (page faults on swapped pages)
 3Ch	DWORD	number of virtual pages allocated to the application
 40h	DWORD	size in pages of swap file
 44h	DWORD	number of system pages allocated with EMS calls
 48h	DWORD	minimum number of conventional memory pages
 4Ch	DWORD	maximum size in bytes to which swap file can be increased
 50h	DWORD	"vmflags" bit 0 = 1 if page fault in progress
 54h 16 BYTEs	reserved for future expansion (set to zero)


parameter block:

Size	Description
 00h	DWORD	32-bit offset of environment string
 04h	WORD	segment selector of environment string
 06h	DWORD	32-bit offset of command-tail string
 0Ah	WORD	segment selector of command-tail string


PSP:

Size	Description
 00h  2 BYTEs	INT 20 instruction for CP/M CALL 0 program termination
the CDh 20h here is often used as a signature for a valid PSP
 02h	WORD	segment of first byte beyond memory allocated to program
 04h	BYTE	unused filler
 05h	BYTE	CP/M CALL 5 service request (FAR JMP to 000C0h)
BUG: (DOS 2+) PSPs created by INT 21/AH=4Bh point at 000BEh
 06h	WORD	CP/M compatibility--size of first segment for .COM files
 08h  2 BYTEs	remainder of FAR JMP at 05h
 0Ah	DWORD	stored INT 22 termination address
 0Eh	DWORD	stored INT 23 control-Break handler address
 12h	DWORD	DOS 1.1+ stored INT 24 critical error handler address
 16h	WORD	segment of parent PSP
 18h 20 BYTEs	DOS 2+ Job File Table, one byte per file handle, FFh = closed
 2Ch	WORD	DOS 2+ segment of environment for process
 2Eh	DWORD	DOS 2+ process's SS:SP on entry to last INT 21 call
 32h	WORD	DOS 3+ number of entries in JFT (default 20)
 34h	DWORD	DOS 3+ pointer to JFT (default PSP:0018h)
 38h	DWORD	DOS 3+ pointer to previous PSP (default FFFFFFFFh in 3.x)
used by SHARE in DOS 3.3
 3Ch  4 BYTEs	unused by DOS versions <= 5.00
reportedly used by Novell NetWare shell 3.x
 40h  2 BYTEs	DOS 5.0 version to return on INT 21/AH=30h
 42h  6 BYTEs	unused by DOS versions <= 5.00
 48h	BYTE	(MSWindows3) bit 0 set if non-Windows application (WINOLDAP)
 49h  7 BYTEs	unused by DOS versions <= 5.00
 50h  3 BYTEs	DOS 2+ service request (INT 21/RETF instructions)
 53h  9 BYTEs	unused in DOS versions <= 5.00
 5Ch 16 BYTEs	first default FCB, filled in from first commandline argument
overwrites second FCB if opened
 6Ch 16 BYTEs	second default FCB, filled in from second commandline argument
overwrites beginning of commandline if opened
 7Ch  4 BYTEs	unused
 80h 128 BYTEs	commandline / default DTA
command tail is BYTE for length of tail, N BYTEs for the tail,
followed by a BYTE containing 0Dh
Notes:	in DOS versions 3.0 and up, the limit on simultaneously open files may
  be increased by allocating memory for a new open file table, filling
  it with FFh, copying the first 20 bytes from the default table, and
  adjusting the pointer and count at 34h and 32h.  However, DOS
  versions through  at least 3.30 will only copy the first 20 file
  handles into a child PSP (including the one created on EXEC).
network redirectors based on the original MS-Net implementation use
  values of 80h-FEh in the open file table to indicate remote files;
  Novell NetWare reportedly also uses values of 80h-FEh
MSDOS 5.00 incorrectly fills the FCB fields when loading a program
  high; the first FCB is empty and the second contains the first
  parameter
some DOS extenders place protected-mode values in various PSP fields
  such as the "parent" field, which can confuse PSP walkers.  Always
  check either for the CDh 20h signature or that the suspected PSP is
  at the beginning of a memory block which owns itself (the preceding
  paragraph should be a valid MCB with "owner" the same as the
  suspected PSP).


environment block:

Size	Description
 00h  N BYTEs	first environment variable, ASCIZ string of form "var=value"
      N BYTEs	second environment variable, ASCIZ string
...
      N BYTEs	last environment variable, ASCIZ string of form "var=value"
BYTE	00h
---DOS 3+---
WORD	number of strings following environment (normally 1)
      N BYTEs	ASCIZ full pathname of program owning this environment
other strings may follow


ELRES history structure:

Size	Description
 00h	WORD	number of return codes which can be stored by following buffer
 02h	WORD	current position in buffer (treated as a ring)
 04h  N BYTEs	ELRES buffer


TAME 2.10-2.20 data area:

Size	Description
 00h	BYTE	data structure minor version number (01h in TAME 2.20)
 01h	BYTE	data structure major version number (07h in TAME 2.20)
 02h	DWORD	number of task switches
 06h	DWORD	number of keyboard polls
 0Ah	DWORD	number of time polls
 0Eh	DWORD	number of times DESQview told program runs only in foreground
 12h	DWORD	original INT 10h
 16h	DWORD	original INT 14h
 1Ah	DWORD	original INT 15h
 1Eh	DWORD	original INT 16h
 22h	DWORD	original INT 17h
 26h	DWORD	original INT 21h
 2Ah	DWORD	original INT 28h
 2Eh	WORD	offset of TAME INT 10h handler
 30h	WORD	offset of TAME INT 14h handler
 32h	WORD	offset of TAME INT 15h handler
 34h	WORD	offset of TAME INT 16h handler
 36h	WORD	offset of TAME INT 17h handler
 38h	WORD	offset of TAME INT 21h handler
 3Ah	WORD	offset of TAME INT 28h handler
 3Ch	WORD	X in /max:X,Y or /freq:X,Y
 3Eh	WORD	Y in /max:X,Y or /freq:X,Y
 40h	WORD	number of polls remaining before next task switch
 42h	WORD	/KEYIDLE value
 44h	BYTE	flags for interrupts already grabbed by TAME
bit 0: INT 10h
    1: INT 14h
    2: INT 15h
    3: INT 16h
    4: INT 17h
    5: INT 21h
    6: INT 28h
 45h	BYTE	flags for interrupts which may be acted on (same bits as above)
 46h	BYTE	TAME enabled (01h) or disabled (00h)
 47h	BYTE	/TIMEPOLL (01h) or /NOTIMEPOLL (00h)
 48h	BYTE	/NOTIMER (01h) or /TIMER (00h)
 49h	BYTE	window or task number for this task
 4Ah	BYTE	multitasker type ???
01h DESQview
02h DoubleDOS
03h TopView
???
 4Bh	BYTE	type of task switching selected
bit 0: DESQview???
    1: DoubleDOS???
    2: TopView???
    3: KeySwitch
    4: HLT instruction
 4Ch	BYTE	???
 4Dh	BYTE	flags
bit 1: /FREQ instead of /MAX
 4Eh	BYTE	/FG: value
 4Fh	BYTE	task switches left until next FGONLY DESQview API call
 50h	BYTE	???


TAME 2.30 data area:

Size	Description
 00h	BYTE	data structure minor version number (02h in TAME 2.30)
 01h	BYTE	data structure major version number (0Ah in TAME 2.30)
 02h	DWORD	number of task switches
 06h	DWORD	number of keyboard polls
 0Ah	DWORD	number of time polls
 0Eh	DWORD	number of times DESQview told program runs only in foreground
 12h	DWORD	time of last /CLEAR or TAME-RES load
 16h	DWORD	time yielded
 1Ah	DWORD	time spent polling
 1Eh	DWORD	time spent waiting on key input with INT 16/AH=01h,11h
 22h	DWORD	original INT 10h
 26h	DWORD	original INT 14h
 2Ah	DWORD	original INT 15h
 2Eh	DWORD	original INT 16h
 32h	DWORD	original INT 17h
 36h	DWORD	original INT 21h
 3Ah	DWORD	original INT 28h
 3Eh	WORD	offset of TAME INT 10h handler
 40h	WORD	offset of TAME INT 14h handler
 42h	WORD	offset of TAME INT 15h handler
 44h	WORD	offset of TAME INT 16h handler
 46h	WORD	offset of TAME INT 17h handler
 48h	WORD	offset of TAME INT 21h handler
 4Ah	WORD	offset of TAME INT 28h handler
 4Ch	WORD	X in /max:X,Y or /freq:X,Y
 4Eh	WORD	Y in /max:X,Y or /freq:X,Y
 50h	WORD	number of polls remaining before next task switch
 52h	WORD	/KEYIDLE value
 54h	WORD	/FG: value
 56h	WORD	task switches left until next FGONLY DESQview API call
 58h	WORD	multitasker version
 5Ah	WORD	virtual screen segment
 5Ch	BYTE	flags for interrupts already grabbed by TAME
bit 0: INT 10h
    1: INT 14h
    2: INT 15h
    3: INT 16h
    4: INT 17h
    5: INT 21h
    6: INT 28h
 5Dh	BYTE	flags for interrupts which may be acted on (same bits as above)
 5Eh	BYTE	window or task number for this task
 5Fh	BYTE	multitasker type
01h DESQview
02h DoubleDOS
03h TopView
04h OmniView
05h VM/386
 60h	BYTE	type of task switching selected (bit flags)
bit 0: DESQview
    1: DoubleDOS
    2: TopView
    3: OmniView
    4: KeySwitch
    5: HLT instruction
 61h	BYTE	watch_DOS
 62h	BYTE	bit flags
bit 0: TAME enabled
    1: /FREQ instead of /MAX (counts in 3Ch and 3Eh per tick)
    2: /TIMEPOLL
    3: /KEYPOLL
    4: inhibit timer
    5: enable status monitoring
 63h	BYTE	old status
 64h	WORD	signature DA34h


TAME 2.60 data area:

Size	Description
 00h	BYTE	data structure minor version number (02h in TAME 2.60)
 01h	BYTE	data structure major version number (0Bh in TAME 2.60)
 02h	DWORD	number of task switches
 06h	DWORD	number of keyboard polls
 0Ah	DWORD	number of time polls
 0Eh	DWORD	number of times DESQview told program runs only in foreground
 12h	DWORD	time of last /CLEAR or TAME-RES load
 16h	DWORD	time yielded
 1Ah	DWORD	time spent polling
 1Eh	DWORD	time spent waiting on key input with INT 16/AH=01h,11h
 22h  4 BYTEs	???
 26h	DWORD	original INT 10h
 2Ah	DWORD	original INT 14h
 2Eh	DWORD	original INT 15h
 32h	DWORD	original INT 16h
 36h	DWORD	original INT 17h
 3Ah	DWORD	original INT 21h
 3Eh	DWORD	original INT 28h
 42h	WORD	offset of TAME INT 10h handler
 44h	WORD	offset of TAME INT 14h handler
 46h	WORD	offset of TAME INT 15h handler
 48h	WORD	offset of TAME INT 16h handler
 4Ah	WORD	offset of TAME INT 17h handler
 4Ch	WORD	offset of TAME INT 21h handler
 4Eh	WORD	offset of TAME INT 28h handler
 50h	WORD	X in /max:X,Y or /freq:X,Y
 52h	WORD	Y in /max:X,Y or /freq:X,Y
 54h	WORD	number of polls remaining before next task switch
 56h	WORD	/KEYIDLE value
 58h  4 BYTEs	???
 5Ch	WORD	X in /boost:X,Y
 5Eh	WORD	Y in /boost:X,Y
 60h	WORD	/FG: value
 62h	WORD	task switches left until next FGONLY DESQview API call
 64h	WORD	multitasker version ???
 66h	WORD	virtual screen segment
 68h	BYTE	flags for interrupts already grabbed by TAME
bit 0: INT 10h
    1: INT 14h
    2: INT 15h
    3: INT 16h
    4: INT 17h
    5: INT 21h
    6: INT 28h
 69h	BYTE	flags for interrupts which may be acted on (same bits as above)
 6Ah	BYTE	window or task number for this task
 6Bh	BYTE	multitasker type
01h DESQview
02h DoubleDOS
03h TopView
04h OmniView
05h VM/386
 6Ch	BYTE	type of task switching selected (bit flags)
bit 0: DESQview
    1: DoubleDOS
    2: TopView
    3: OmniView
    4: KeySwitch
    5: HLT instruction
 6Dh	BYTE	watch_DOS
 6Eh	BYTE	bit flags
bit 0: TAME enabled
    1: /FREQ instead of /MAX (counts in 50h and 52h per tick)
    2: /TIMEPOLL
    3: /KEYPOLL
    4: inhibit timer
    5: enable status monitoring
 6Fh	BYTE	old status
 70h	WORD	signature DA34h


initialization request structure:

Size	Description
 00h	BYTE	operating mode
00h wait for a call
01h hot key activates
02h incoming call activates
03h initiate a call
 01h  3 BYTEs	user ID to append to config file names
 04h	WORD	DS-relative pointer to path for config files
 06h	WORD	DS-relative pointer to path for program files


termination request structure:

Size	Description
 00h	BYTE	operating mode after termination
00h wait for a call
01h hot key activates
02h incoming call activates
80h use current mode
FFh remove from memory


DOS Drive Parameter Block:

Size	Description
 00h	BYTE	drive number (00h = A:, 01h = B:, etc)
 01h	BYTE	unit number within device driver
 02h	WORD	bytes per sector
 04h	BYTE	highest sector number within a cluster
 05h	BYTE	shift count to convert clusters into sectors
 06h	WORD	number of reserved sectors at beginning of drive
 08h	BYTE	number of FATs
 09h	WORD	number of root directory entries
 0Bh	WORD	number of first sector containing user data
 0Dh	WORD	highest cluster number (number of data clusters + 1)
16-bit FAT if greater than 0FF6h, else 12-bit FAT
 0Fh	BYTE	number of sectors per FAT
 10h	WORD	sector number of first directory sector
 12h	DWORD	address of device driver header
 16h	BYTE	media ID byte
 17h	BYTE	00h if disk accessed, FFh if not
 18h	DWORD	pointer to next DPB
---DOS 2.x---
 1Ch	WORD	cluster containing start of current directory, 0000h=root,
FFFFh = unknown
 1Eh 64 BYTEs	ASCIZ pathname of current directory for drive
---DOS 3.x---
 1Ch	WORD	cluster at which to start search for free space when writing
 1Eh	WORD	number of free clusters on drive, FFFFh = unknown
---DOS 4.0-5.0---
 0Fh	WORD	number of sectors per FAT
 11h	WORD	sector number of first directory sector
 13h	DWORD	address of device driver header
 17h	BYTE	media ID byte
 18h	BYTE	00h if disk accessed, FFh if not
 19h	DWORD	pointer to next DPB
 1Dh	WORD	cluster at which to start search for free space when writing,
usually the last cluster allocated
 1Fh	WORD	number of free clusters on drive, FFFFh = unknown


PCDOS 2.x country info:

Size	Description
 00h	WORD	date format  0 = USA	mm dd yy
     1 = Europe dd mm yy
     2 = Japan	yy mm dd
 02h	BYTE	currency symbol
 03h	BYTE	00h
 04h	BYTE	thousands separator char
 05h	BYTE	00h
 06h	BYTE	decimal separator char
 07h	BYTE	00h
 08h 24 BYTEs	reserved


MSDOS 2.x,DOS 3+ country info:

Size	Description
 00h	WORD	date format (see above)
 02h  5 BYTEs	ASCIZ currency symbol string
 07h  2 BYTEs	ASCIZ thousands separator
 09h  2 BYTEs	ASCIZ decimal separator
 0Bh  2 BYTEs	ASCIZ date separator
 0Dh  2 BYTEs	ASCIZ time separator
 0Fh	BYTE	currency format
bit 2 = set if currency symbol replaces decimal point
bit 1 = number of spaces between value and currency symbol
bit 0 = 0 if currency symbol precedes value
1 if currency symbol follows value
 10h	BYTE	number of digits after decimal in currency
 11h	BYTE	time format
bit 0 = 0 if 12-hour clock
1 if 24-hour clock
 12h	DWORD	address of case map routine
(FAR CALL, AL = character to map to upper case [>= 80h])
 16h  2 BYTEs	ASCIZ data-list separator
 18h 10 BYTEs	reserved


status block:

Size	Description
 00h	BYTE	status of command
00h successful
01h invalid handle
02h no more breakpoints available
03h hardware does not support specified breakpoint type
04h previous command prevents execution
05h debugger hardware not found
06h hardware failure
07h invalid command
08h driver not initialized yet
FEh recursive entry (hardware breakpoint inside hw bp handler)
---status for command 01h---
 01h	WORD	device driver interface version number (currently 1)
 03h	WORD	device driver software version
 05h	BYTE	maximum simultaneous hardware breakpoints
 06h	BYTE	configuration bits
bit 0: CPU and DMA accesses are distinct
    1: can detect DMA transfers
    2: supports data mask
    3: hardware pass counter on breakpoints
    4: can match on data as well as addresses
 07h	BYTE	supported breakpoint types
bit 0: memory read
    1: memory write
    2: memory read/write
    3: I/O read
    4: I/O write
    5: I/O read/write
    6: instruction fetch
 08h	WORD	supported addressing match modes
bit 0: any address
    1: equal to test value
    2: not equal
    3: above test value
    4: below test value
    5: below or equal
    6: above or equal
    7: within range
    8: outside range
 0Ah	WORD	supported data matches
bit 0: any data
    1: equal to test value
    2: not equal
    3: above test value
    4: below test value
    5: below or equal
    6: above or equal
    7: within range
    8: outside range
 0Ch	BYTE	maximum data match length (01h, 02h, or 04h)
 0Dh	WORD	size of onboard memory (in K)
 0Fh	WORD	maximum number of trace-back events
 11h	WORD	hardware breakpoint enable byte address segment (0000h if not
supported)
---status for command 04h---
 01h	BYTE	handle to use when referring to the just-set breakpoint


configuration data:

Size	Description
 00h 12 BYTEs	IPCUST.SYS device driver header
 12h	BYTE	???
 13h	BYTE	???
 14h	WORD	???
 16h	BYTE	bit flags
bit 0: send BS rather than DEL for BackSpace key
bit 1: wrap long lines
 17h	BYTE	???
 18h 64 BYTEs	ASCIZ hostname
 58h 64 BYTEs	ASCIZ domain name
(fully qualified domain name is hostname.domain-name)
 98h 16 BYTEs	ASCIZ username
 A8h 64 BYTEs	ASCIZ full name
 E8h 64 BYTEs	ASCIZ office address
128h 32 BYTEs	ASCIZ phone number
148h	WORD	offset from GMT in minutes
14Ah  4 BYTEs	ASCIZ timezone name
14Eh	WORD	number of time servers
150h  ? DWORDs	IP addresses for time servers (big-endian)
???
164h	WORD	number of old-style name servers
166h  3 DWORDs	IP addresses for name servers (big-endian)
172h	WORD	number of domain name servers
174h  3 DWORDs	IP addresses for domain name servers (big-endian)
180h	DWORD	IP address of default gateway (big-endian)
184h	DWORD	IP address of log server (big-endian)
188h	DWORD	IP address of cookie server (big-endian)
18Ch	DWORD	IP address of lpr server (big-endian)
190h	DWORD	IP address of imagen print server
194h 54 BYTEs	???
1E8h	WORD	TCP default window size in bytes
1EAh	WORD	TCP low window size
1ECh 64 BYTEs	ASCIZ host tabel filename
22Ch  2 BYTEs	???
22Eh 80 BYTEs	ASCIZ mail relay host name
27Eh	BYTE	???
27Fh	BYTE	??? bit flags
280h 44 BYTEs	???
2ACh	WORD	???
2AEh 202 BYTEs	???


hardware breakpoint commands:

Size	Description
 00h	BYTE	command code
00h install interrupt vectors
01h get hardware capabilities
02h enable hardware breakpoints
03h disable hardware breakpoints
04h set hardware breakpoint
05h clear hardware breakpoint
06h set I/O base address and reset hardware
07h restore interrupt vectors
---command code 00h---
 01h	DWORD	pointer to Turbo Debugger entry point to be jumped to on
hardware breakpoint; call with CPU state the same as on
the breakpoint except for pushing AX and placing an entry
code (FFh if breakout button or breakpoint handle) in AH
---command code 04h---
 01h	BYTE	breakpoint type
00h memory read
01h memory write
02h memory read/write
03h I/O read
04h I/O write
05h I/O read/write
06h instruction fetch
 02h	BYTE	address matching mode
00h any address
01h equal to test value
02h different from test value
03h above test value
04h below test value
05h below or equal to test value
06h above or equal to test value
07h within inclusive range
08h outside specified range
 03h	DWORD	32-bit linear low address
 07h	DWORD	32-bit linear high address
 0Bh	WORD	pass count
 0Dh	BYTE	data size (01h, 02h, or 04h)
 0Eh	BYTE	source of matched bus cycle
01h CPU
02h DMA
03h either
 0Fh	BYTE	data-matching mode
00h match any
01h equal to test value
02h different from test value
03h above test value
04h below test value
05h below or equal to test value
06h above or equal to test value
07h within specified range
08h outside specified range
 10h	DWORD	low data value
 14h	DWORD	high data value
 18h	DWORD	data mask specifying which bits of the data are tested
---command code 05h---
 01h	BYTE	handle of breakpoint to clear (breakpoint returned from command
04h)
---command code 06h---
 01h	WORD	base address of hardware debugger board


request block for GetProtocolManagerInfo:

Size	Description
 00h	WORD	01h
 02h	WORD	returned status (see below)
 04h	DWORD	returned pointer to structure representing parsed user config
 08h	DWORD	unused
 0Ch	WORD	returned BCD version of NDIS on which Protocol Manager is based


request block for RegisterModule:

Size	Description
 00h	WORD	02h
 02h	WORD	returned status (see below)
 04h	DWORD	pointer to module's common characteristics table (see below)
 08h	DWORD	pointer to list of modules to which the module is to be bound
 0Ch	WORD	unused


request block for BindAndStart:

Size	Description
 00h	WORD	03h
 02h	WORD	returned status (see below)
 04h	DWORD	caller's virtual address in FailingModules structure
 08h	DWORD	unused
 0Ch	WORD	unused


request block for GetProtocolManagerLinkage:

Size	Description
 00h	WORD	04h
 02h	WORD	returned status (see below)
 04h	DWORD	returned dispatch point
 08h	DWORD	unused
 0Ch	WORD	returned protocol manager DS
Note:	the dispatch point may be called as follows instead of using this IOCTL
STACK: WORD  protocol manager DS
       DWORD pointer to request block
Return: AX = returned status
STACK popped


request block for GetProtocolIniPath:

Size	Description
 00h	WORD	05h
 02h	WORD	returned status (see below)
 04h	DWORD	pointer to a buffer for the ASCIZ pathname of PROTOCOL.INI
 08h	DWORD	unused
 0Ch	WORD	buffer length


request block for RegisterProtocolManagerInfo:

Size	Description
 00h	WORD	06h
 02h	WORD	returned status (see below)
 04h	DWORD	pointer to structure containing parsed user config file
 08h	DWORD	unused
 0Ch	WORD	length of structure


request block for InitAndRegister:

Size	Description
 00h	WORD	07h
 02h	WORD	returned status (see below)
 04h	DWORD	unused
 08h	DWORD	poitner to ASCIZ name of the module to be prebind initialized
 0Ch	WORD	unused


request block for UnbindAndStop:

Size	Description
 00h	WORD	08h
 02h	WORD	returned status (see below)
 04h	DWORD	failing modules as for BindAndStart
 08h	DWORD	if not 0000h:0000h, pointer to ASCIZ name of module to unbind
if 0000h:0000h, terminate a set of previously dynamically
  bound protocol modules
 0Ch	WORD	unused


request block for BindStatus:

Size	Description
 00h	WORD	09h
 02h	WORD	returned status (see below)
 04h	DWORD	must be 0000h:0000h
on return, points to root tree
 08h	DWORD	0000h:0000h
 0Ch	WORD	unused under DOS


request block for RegisterStatus:

Size	Description
 00h	WORD	0Ah
 02h	WORD	returned status (0000h, 0008h, 002Ch) (see below)
 04h	DWORD	0000h:0000h
 08h	DWORD	pointer to 16-byte ASCIZ module name
 0Ch	WORD	0000h
Note:	not supported by the 10NET v5.0 PROTMAN$ driver


common characteristics table:

Size	Description
 00h	WORD	size of table in bytes
 02h	BYTE	NDIS major version
 03h	BYTE	NDIS minor version
 04h	WORD	reserved
 06h	BYTE	module major version
 07h	BYTE	module minor version
 08h	DWORD	module function flag bits
bit 0: binding at upper boundary supported
bit 1: binding at lower boundary supported
bit 2: dynamically bound
bits 3-31 reserved, must be 0
 0Ch 16 BYTEs	ASCIZ module name
 1Ch	BYTE	upper boundary protocol level
01h Media Access Control
02h Data link
03h network
04h transport
05h session
FFh not specified
 1Dh	BYTE	upper boundary interface type
for MACs: 1 = MAC
for data links and transports: to be defined
for session: 1 = NCB
any level: 0 = private (ISV-defined)
 1Eh	BYTE	lower boundary protocol level
00h physical
01h Media Access Control
02h Data link
03h network
04h transport
05h session
FFh not specified
 1Fh	BYTE	lower boundary interface type
same as offset 1Dh
 20h	WORD	module ID filled in by protocol manager
 22h	WORD	module DS
 24h	DWORD	system request entry point
 28h	DWORD	pointer to service-specific characteristics
0000h:0000h if none
 2Ch	DWORD	pointer to service-specific status
0000h:0000h if none
 30h	DWORD	pointer to upper dispatch table (see below)
0000h:0000h if none
 34h	DWORD	pointer to lower dispatch table (see below)
0000h:0000h if none
 38h	DWORD	reserved, must be 0
 3Ch	DWORD	reserved, must be 0
Note:	for compatibility with NDIS 1.x.x, a major version of 00h is
  interpreted as 01h


MAC Service-Specific Characteristics Table:

Size	Description
 00h	WORD	length of table in bytes
 02h 16 BYTEs	ASCIZ MAC type name, "802.3", "802.4", "802.5", "802.6", "DIX",
"DIX+802.3", "APPLETALK", "ARCNET", "FDDI", "SDLC", "BSC",
"HDLC", or "ISDN"
 12h	WORD	length of station addresses in bytes
 14h 16 BYTEs	permanent station address
 24h 16 BYTEs	current station address
 34h	DWORD	current functional adapter address (00000000h if none)
 38h	DWORD	pointer to multicast address list
 3Ch	DWORD	link speed in bits/sec
 40h	DWORD	service flags
bit 0: supports broadcast
    1: supports multicast
    2: supports functional/group addressing
    3: supports promiscuous mode
    4: station address software settable
    5: statistics always current
    6: supports InitiateDiagnostics
    7: supports loopback
    8: MAC does primarily ReceiveChain indications instead of
       ReceiveLookahead indications
    9: supports IBM source routing
   10: supports MAC reset
   11: supports Open/Close adapter
   12: supports interrupt request
   13: supports source routing bridge
   14: supports GDT virtual addresses (OS/2 version)
   15: multiple TransferDatas allowed durign a single
       indication
   16: MAC normally sets FrameSize = 0 in ReceiveLookahead
   17-31: reserved, must be 0
 44h	WORD	maximum frame size which may be both sent and received
 46h	DWORD	total transmit buffer capacity in bytes
 4Ah	WORD	transmit buffer allocation block size in bytes
 4Ch	DWORD	total receive buffer capacity in bytes
 50h	WORD	receive buffer allocation block size in bytes
 52h  3 BYTEs	IEEE vendor code
 55h	BYTE	vendor adapter code
 56h	DWORD	pointer to ASCIZ vendor adapter description
 5Ah	WORD	IRQ used by adapter
 5Ch	WORD	transmit queue depth
 5Eh	WORD	maximum supported number of data blocks in buffer descriptors
 60h  N BYTEs	vendor-specific info


NetBIOS Service-Specific Characteristics Table

Size	Description
 00h	WORD	length of table in bytes
 02h 16 BYTEs	ASCIZ type name of NetBIOS module
 12h	WORD	NetBIOS module code
 14h  N BYTEs	vendor-specific info


MAC Service-Specific Status Table:

Size	Description
 00h	WORD	length of table in bytes
 02h	DWORD	seconds since 0:00 1/1/70 when diagnostics last run
(FFFFFFFFh = never)
 06h	DWORD	MAC status bits
bits 0-2: 000 hardware not installed
  001 hardware failed startup diagnostics
  010 hardware configuration problem
  011 hardware fault
  100 operating marginally due to soft faults
  101 reserved
  110 reserved
  111 hardware fully operational
bit 3:	  MAC bound
    4:	  MAC open
    5:	  diagnostics in progress
    6-31: reserved
 0Ah	WORD	current packet filter flags
bit 0: directed/multicast or group/functional
    1: broadcast
    2: promiscuous
    3: all source routing
    4-15: reserved, must be zero
 0Ch	DWORD	pointer to media-specific status table or 0000h:0000h
 10h	DWORD	seconds past 0:00 1/1/70 of last ClearStatistics
 14h	DWORD	total frames received (FFFFFFFFh = not counted)
 18h	DWORD	frames with CRC error (FFFFFFFFh = not counted)
 1Ch	DWORD	total bytes received (FFFFFFFFh = not counted)
 20h	DWORD	frames discarded--no buffer space (FFFFFFFFh = not counted)
 24h	DWORD	multicast frames received (FFFFFFFFh = not counted)
 28h	DWORD	broadcast frames received (FFFFFFFFh = not counted)
 2Ch	DWORD	frames with errors (FFFFFFFFh = not counted)
 30h	DWORD	overly large frames (FFFFFFFFh = not counted)
 34h	DWORD	frames less than minimum size (FFFFFFFFh = not counted)
 38h	DWORD	multicast bytes received (FFFFFFFFh = not counted)
 3Ch	DWORD	broadcast bytes received (FFFFFFFFh = not counted)
 40h	DWORD	frames discarded--hardware error (FFFFFFFFh = not counted)
 44h	DWORD	total frames transmitted (FFFFFFFFh = not counted)
 48h	DWORD	total bytes transmitted (FFFFFFFFh = not counted)
 4Ch	DWORD	multicast frames transmitted (FFFFFFFFh = not counted)
 50h	DWORD	broadcast frames transmitted (FFFFFFFFh = not counted)
 54h	DWORD	broadcast bytes transmitted (FFFFFFFFh = not counted)
 58h	DWORD	multicast bytes transmitted (FFFFFFFFh = not counted)
 5Ch	DWORD	frames not transmitted--timeout (FFFFFFFFh = not counted)
 60h	DWORD	frames not transmitted--hardware error (FFFFFFFFh = not countd)
 64h  N BYTEs	vendor-specific info


returned data:

Size	Description
 00h  4 BYTEs	???
 04h	DWORD	pointer to ???
 08h  4 BYTEs	???


SMARTDRV status record:

Size	Description
 00h	BYTE	write-through flag (always 01h)
 01h	BYTE	writes should be buffered (always 00h)
 02h	BYTE	cache enabled if 01h
 03h	BYTE	driver type (01h extended memory, 02h expanded)
 04h	WORD	clock ticks between cache flushes (currently unused)
 06h	BYTE	cache contains locked tracks if nonzero
 07h	BYTE	flush cache on INT 19 reboot if nonzero
 08h	BYTE	cache full track writes if nonzero
 09h	BYTE	double buffering (for VDS) state (00h off, 01h on, 02h dynamic)
 0Ah	DWORD	original INT 13 vector
 0Eh	BYTE	minor version number
 0Fh	BYTE	major version number
 10h	WORD	unused
 12h	WORD	sectors read	\
 14h	WORD	sectors already in cache	 > may be scaled rather than
 16h	WORD	sectors already in track buffer /  absolute counts
 18h	BYTE	cache hit rate in percent
 19h	BYTE	track buffer hit rate in percent
 1Ah	WORD	total tracks in cache
 1Ch	WORD	number of tracks in use
 1Eh	WORD	number of locked tracks
 20h	WORD	number of dirty tracks
 22h	WORD	current cache size in 16K pages
 24h	WORD	original (maximum) cache size in 16K pages
 26h	WORD	minimum cache size in 16K pages
 28h	DWORD	pointer to byte flag to increment for locking cache contents


control block:

Size	Description
 00h	BYTE	data being requested
00h device driver header address
01h drive head location
02h reserved
03h error statistics
04h audio channel info
05h raw drive bytes (uninterpreted and device-specific)
06h device status
07h sector size
08h volume size
09h media change status
0Ah audio disk info
0Bh audio track info
0Ch audio Q-Channel info
0Dh audio sub-channel info
0Eh UPC code
---function 00h---
 01h	DWORD	device driver header address (see also AH=52h)
---function 01h---
 01h	BYTE	addressing mode
00h HSG
01h Red Book
 02h	DWORD	current location of drive's head
logical sector number in HSG mode
frame/second/minute/unused in Red Book mode
(HSG sector = minute * 4500 + second * 75 + frame - 150)
---function 03h---
 01h  N BYTEs	undefined as of 5 Aug 88 specification
---function 04h---
 01h	BYTE	input channel (0-3) for output channel 0
 02h	BYTE	volume for output channel 0
 03h	BYTE	input channel (0-3) for output channel 1
 04h	BYTE	volume for output channel 1
 05h	BYTE	input channel (0-3) for output channel 2
 06h	BYTE	volume for output channel 2
 07h	BYTE	input channel (0-3) for output channel 3
 08h	BYTE	volume for output channel 3
Notes:	output channels 0 and 1 are left and right, 2 and 3 are left prime and
  right prime; a volume of 00h is off
the default setting is for each input channel to be assigned to the
  same-numbered output channel at full (FFh) volume
---function 05h---
 01h	BYTE	number of bytes read
 02h 128 BYTEs	buffer for drive bytes
---function 06h---
 01h	DWORD	device parameters
bit 0: door open
    1: door unlocked
    2: supports raw reading in addition to cooked
    3: writable
    4: can play audio/video tracks
    5: supports interleaving
    6: reserved
    7: supports prefetch requests
    8: supports audio channel control
    9: supports Red Book addressing in addition to HSG
   10: audio is playing
---function 07h---
 01h	BYTE	read mode
00h cooked
01h raw
 02h	WORD	sector size in bytes
---function 08h---
 01h	DWORD	volume size in sectors
---function 09h---
 01h	BYTE	media change status
00h don't know
01h media unchanged
FFh media has been changed
---function 0Ah---
 01h	BYTE	lowest audio track number
 02h	BYTE	highest audio track number
 03h	DWORD	start address of lead-out track (Red Book format)
--function 0Bh---
 01h	BYTE	track number (set by caller)
 02h	DWORD	starting point of track (Red Book format)
 06h	BYTE	track control info
bits 15,14,12: track type (notice: bits not contiguous!)
000 two audio channels, no pre-emphasis
001 two audio channels with pre-emphasis
010 data track
100 four audio channels, no pre-emphasis
101 four audio channels with pre-emphasis
other reserved
bit 13: digital copy permitted
---function 0Ch---
 01h	BYTE	CONTROL and ADR byte (as received from drive)
 02h	BYTE	track number
 03h	BYTE	point or index
 04h	BYTE	minute	\
 05h	BYTE	second	 > running time within track
 06h	BYTE	frame	/
 07h	BYTE	zero
 08h	BYTE	"AMIN" or "PMIN"     \
 09h	BYTE	"ASEC" or "PSEC"      > running time on disk
 0Ah	BYTE	"AFRAME" or "PFRAME" /
---function 0Dh---
 01h	DWORD	starting frame address (Red Book format)
 05h	DWORD	transfer address
 09h	DWORD	number of sectors to read
Note:	copies 96 bytes of sub-channel info per sector into buffer
---function 0Eh---
 01h	BYTE	CONTROL and ADR byte
 02h  7 BYTEs	UPC/EAN code (13 BCD digits,low-order nybble of last byte is 0)
 09h	BYTE	zero
 0Ah	BYTE	"AFRAME"


hooked vector table entry:

Size	Description
 00h  5 BYTEs	FAR jump to actual interrupt handler
(end of table if first byte is not EAh)
 05h	BYTE	interrupt vector number


SCSI Request Block (64 bytes):

Size	Description
 00h	BYTE	request number
00h "HA_INQ"	 host adapter inquiry
01h "GET_TYPE"	 get device type
02h "EXEC_SIO"	 execute SCSI I/O
03h "ABORT_SRB"	 abort SRB
04h "RESET_DEV"	 reset SCSI device
05h "SET_HAPRMS" set host adapter parameters
 01h	BYTE	request status
00h not done yet
02h aborted
04h SCSI I/O error
80h invalid
81h no adapter
82h no device attached
else status
 02h	BYTE	host adapter ID
 03h	BYTE	request flags
bit 3: ???
 04h	DWORD	reserved
---request 00h---
 08h	BYTE	(returned) number of host adapters
 09h	BYTE	(returned) target adapter ID
 0Ah 16 BYTEs	(returned) manager ID
 1Ah 16 BYTEs	(returned) adapter ID
 2Ah 16 BYTEs	(returned) parameters
---request 01h---
 08h	BYTE	target ID
 09h	BYTE	logical unit number
 0Ah	BYTE	(returned) device type
01h streamer
---request 02h---
 08h	BYTE	target ID
 09h	BYTE	logical unit number
 0Ah	DWORD	data allocation length
 0Eh	BYTE	sense allocation length
 0Fh	DWORD	data buffer pointer
 13h	DWORD	next request pointer (for linking)
 17h	BYTE	CDB length
 18h	BYTE	(returned) host adapter status
11h select timeout
12h data overrun
13h bus error
14h bus failure
 19h	BYTE	(returned) target status
02h sense data stored in SRB
08h target busy
18h reservation error
 1Ah	DWORD	post routine address
 1Eh	WORD	real mode Post DS
 20h	DWORD	SRB pointer
 24h	WORD	reserved
 26h	DWORD	SRB physical address
 2Ah 22 BYTEs	SCSIMGR$ workspace
 40h  N BYTEs	CCB (20-24 bytes)
---request 04h---
 08h	BYTE	target ID
 09h	BYTE	logical unit number
 0Ah 14 BYTEs	reserved
 18h	BYTE	(returned) host adapter status (see above)
 19h	BYTE	(returned) target status (see above)
 1Ah	DWORD	post routine address
 1Eh 34 BYTEs	workspace


CCB:

Size	Description
 00h	BYTE	command code
01h rewind
05h get block size limits
08h read
0Ah write
10h write file marks
11h SCSI Space (set position?)
12h SCSI Inquire
19h erase
1Bh load/unload media
 01h	BYTE	flags
bits 4-0: vary by function
bits 7-5: logical unit number
 02h	BYTE	"adr_1"
 03h	BYTE	"adr_0"
 04h	BYTE	length
 05h	BYTE	control
...
 06h/0Ah 14 BYTEs buffer for sense data


386MAX v6.01 state:

Size	Description
 00h	BYTE	version number of state structure (must be set on entry;
  v6.01 returns an error if not 03h)
 01h  6 BYTEs	signature "386MAX"
 07h  4 BYTEs	version string "N;NN" (i.e. "6;01" for v6.01)
 0Bh	WORD	segment of low-memory portion of 386MAX.SYS
 0Dh  2 BYTEs	???
 0Fh	WORD	segment of ??? memory block or 0000h
 11h	WORD	bit flags
bit 1: ???
bit 2: ???
bit 3: ??? (cleared by calling INT 67 functions)
bit 5: ???
bit 6: 386MAX active???
bit 7: 386MAX is providing EMS services
bit 8: ???
bit 9: ??? (see INT 15/AX=2402h)
bit 10: ???
bit 11: ???
bit 12: ???
bit 13: QPMS has been used
bit 14: ???
bit 15: ???
 13h	WORD	starting address of video memory in K
 15h  8 BYTEs	???
 1Dh	WORD	KBytes extended memory used by 386MAX
 1Fh  2 BYTEs	???
 21h	WORD	???
 23h	WORD	IO port to write (OUT DX,AL) to invoke 386MAX INT 15 functions
 25h	WORD	IO port to write (OUT DX,AL) to invoke 386MAX API functions
 27h	WORD	???
 29h  2 BYTEs	???
 2Bh	DWORD	???
 2Fh  4 BYTEs	???
 33h	WORD	system configuration??? flags
bit 1: ROM compressed???
bit 3: ???
bit 5: 386MAX loaded into high memory
bit 11: PC/XT (thus only single 8259 interrupt controller
present, DMA only in 1st megabyte, etc)
 35h	WORD	??? bit flags
 37h  4 BYTEs	???
 3Bh	WORD	segment of first MCB in high memory chain???
 3Dh	WORD	flags
bit 2: no DPMI services
bit 11: don't backfill holes in video memory area
bit 12: don't backfill below video memory???
 3Fh	WORD	flags
bit 7: ???
 41h	WORD	flags
bit 0: Windows3 support enabled
bit 8: ???
 43h  2 BYTEs	???
 45h	WORD	amount of memory to report available on INT 15/AH=88h
 47h  4 BYTEs	???
 4Bh	WORD	???
 4Dh  2 BYTEs	???
 4Fh	WORD	???
 51h	WORD	bit flags
bit 12: ???
 53h	DWORD	old INT 21h
 57h	DWORD	pointer to 386MAX's EMS (INT 67h) handler


high memory info record:

Size	Description
 00h	WORD	segment address of memory region
 02h	WORD	size of memory region in paragraphs
 04h	BYTE	type or flags???
00h if locked out
02h if EMS page frame
04h if high RAM
42h if ROM
 05h	BYTE	???


ROM shadowing record:

Size	Description
 00h	WORD	segment of ROM???
 02h	WORD	segment of ROM???
 04h  2 BYTEs	???
 06h	WORD	size of shadowed ROM in paragraphs
 08h  4 BYTEs	???


memory speed record:

Size	Description
 00h	DWORD	page table entry for 4K page
 04h	WORD	number of microticks (840ns units) required for REP LODSD of
entire 4K page


configuration information:

Size	Description
 00h	WORD	version (high byte = major, low byte = minor)
 02h	WORD	board initialisation mode
 04h	WORD	board I/O address
03D0h CGA emulation
03B0h MDA emulation
0390h no emulation
0350h no emulation, alternate
 06h	WORD	emulation buffer segment
B800h	CGA emulation
B000h	MDA emulation
0000h	no emulation
 08h	WORD	PG1600 graphics buffer segment
 0Ah	WORD	number of bytes between consecutive graphic rows
 0Ch	WORD	horizontal pixel size
 0Eh	WORD	vertical pixel size
 10h	WORD	horizontal dots per inch
 12h	WORD	vertical dots per inch
 14h	WORD	graphics buffer bits per pixel
 16h	WORD	monitor bits per pixel


parameter record:

Size	Description
 00h	WORD	000Ah (function number???)
 02h	WORD	???
 04h	DWORD	pointer to buffer for ???
 08h  4 BYTEs	???
 0Ch	WORD	transfer size


interface info:

Size	Description
 00h	DWORD	address of entry point (see below)
 04h	WORD	version (0500h for v5.00)


SMARTDRV control block:

Size	Description
 00h	BYTE	function code
00h flush cache
01h flush and discard cache
02h disable caching (flushes and discards cache first)
03h enable caching
04h control write caching
05h set flushing tick count
06h lock cache contents
07h unlock cache contents
08h set flush-on-reboot flag
09h unused
0Ah control full-track caching
0Bh reduce cache size
0Ch increase cache size
0Dh set INT 13 chain address
---function 04h---
 01h	BYTE	write caching control action
00h turn off write-through
01h turn on write-through
02h turn off write buffering (also flushes cache)
03h turn on write buffering (also flushes cache)
---function 05h---
 01h	WORD	number of timer ticks between cache flushes
---function 08h---
 01h	BYTE	new flush-on-reboot flag (00h off, 01h on)
---function 0Ah---
 01h	BYTE	full-track writes are
00h not cached
01h cached
---functions 0Bh,0Ch---
 01h	WORD	number of 16K pages by which to increase/reduce cache size
---function 0Dh---
 01h	DWORD	new address to which to chain on INT 13
Note:	the previous address is not preserved


control block:

Size	Description
 00h	BYTE	function code
00h eject disk
01h lock/unlock door
02h reset drive
03h control audio channel
04h write device control string
05h close tray
---functions 00h,02h,05h---
 no further fields
---function 01h---
 01h	BYTE	lock function
00h unlock door
01h lock door
---function 03h---
 01h	BYTE	input channel (0-3) for output channel 0
 02h	BYTE	volume for output channel 0
 03h	BYTE	input channel (0-3) for output channel 1
 04h	BYTE	volume for output channel 1
 05h	BYTE	input channel (0-3) for output channel 2
 06h	BYTE	volume for output channel 2
 07h	BYTE	input channel (0-3) for output channel 3
 08h	BYTE	volume for output channel 3
Note:	output channels 0 and 1 are left and right, 2 and 3 are left prime and
  right prime; a volume of 00h is off
---function 04h---
 01h  N BYTEs	bytes to send directly to the CD-ROM drive without
interpretation


SCSITAPE control block:

Size	Description
 00h	WORD	command type
'F' Format (argument 1 = interleave, argument 2 = format type)
'E' Erase
'R' Rewind
'L' Load
'N' No Load
'S' Space (argument 1 = count, argument 2 = type)
'M' File Mark (argument 1 = count)
'A' Reassign
 02h	WORD	argument 1
 04h	WORD	argument 2
 06h	WORD	segment of command buffer
 08h	WORD	offset of command buffer
 0Ah	WORD	length of command buffer


buffer on return:

Size	Description
 00h  4 BYTEs	signature "IABH"
---if func 81h---
 (no additional fields)
---if func 82h---
 04h	DWORD	pointer to API entry point (see INT 2F/AX=FBA1h/BX=0082h)
---if func 84h---
 04h	WORD	success indicator
 06h	WORD	segment of ???
 08h	WORD	segment of ??? memory block to free if nonzero
 0Ah	WORD	segment of ??? memory block to free if nonzero


stacker buffer:

Size	Description
 00h	WORD	01CDh
 02h	WORD	sector count
 04h	DWORD	number of starting sector
 08h	DWORD	far pointer to Data Buffer


data record:

Size	Description
 00h	WORD	(call) signature 4444h
 02h	BYTE	(call) function
00h ???
01h ???
---function 00h---
 02h	BYTE	(return) ???
 03h	BYTE	(return) ???
---function 01h---
 02h	WORD	(return) 4444h
 04h	WORD	allocation unit size???
 06h	WORD	???
 08h	WORD	???
 0Ah	BYTE	???


signature data table:

Size	Description
 00h  5 BYTEs	???
 05h	BYTE	first drive number
 06h	BYTE	number of drives
 07h	???


parameter block for function 00h:

Size	Description
 00h  8 BYTEs	ASCIZ signature "STARMAC"
 08h	WORD	version
 0Ah	WORD	flags
bit 0: media requires connect or listen request before use
bit 1: network is a LAN (broadcast/multicast supported)
bit 2: point-to-point network
 0Ch	WORD	handle for use with MAC driver's private interface (filled in
by MAC driver)
 0Eh	WORD	context
 10h	WORD	approximate speed in KB/sec (filled in by MAC driver)
 12h	WORD	approximate cost in cents per hour (filled in by MAC driver)
 14h	WORD	maximum packet size in bytes (filled in by MAC driver)
 16h	WORD	addressing format (filled in by MAC driver)
0000h general addressing
0001h Ethernet addressing
0002h Token Ring addressing
0003h Token Bus addressing
 18h	DWORD	Send entry point (filled in by MAC driver)
 1Ch	DWORD	RegisterEventHandler entry point (filled in by MAC driver)
 20h	DWORD	SetPacketFilter entry point (filled in by MAC driver)
 24h	DWORD	UnBind entry point (filled in by MAC driver)


parameter block for function 45h:

Size	Description
 00h	WORD	number of times output is attempted before driver assumes
device is busy


parameter block for functions 4Ah and 6Ah:

Size	Description
 00h	WORD	length of data
 02h	WORD	code page ID
 04h 2N BYTEs	DCBS (double byte character set) lead byte range
  start/end for each of N ranges (DOS 4.0)
WORD	0000h  end of data (DOS 4.0)


parameter block for function 4Dh:

Size	Description
 00h	WORD	length of data
 02h	WORD	code page ID


parameter block for function 4Ch:

Size	Description
 00h	WORD	flags
DISPLAY.SYS = 0000h
PRINTER.SYS bit 0 clear to prepare downloaded font, set to
prepare cartridge selection
 02h	WORD	length of remainder of parameter block
 04h	WORD	number of code pages following
 06h  N WORDs	code page 1,...,N


parameter block for functions 5Fh and 7Fh:

Size	Description
 00h	BYTE	level (0 for DOS 4.x and 5.0)
 01h	BYTE	reserved (0)
 02h	WORD	length of following data (14)
 04h	WORD	control flags
  bit 0 set for blink, clear for intensity
  bits 1 to 15 reserved
 06h	BYTE	mode type (1=text, 2=graphics)
 07h	BYTE	reserved (0)
 08h	WORD	colors
   0 = monochrome
   else N bits per pixel
 0Ah	WORD	pixel columns
 0Ch	WORD	pixel rows
 0Eh	WORD	character columns
 10h	WORD	character rows


parameter block for function 6Bh:

Size	Description
 00h	WORD	length of following data
 02h	WORD	number of hardware code pages
 04h  N WORDs	hardware code pages 1,...,N
WORD	number of prepared code pages
      N WORDs	prepared code pages 1,...,N


mtop parameter block:

Size	Description
 00h	WORD	operation code
00h "MTWEOF" - write an end-of-file record
01h "MTFSF" - forward space file
02h "MTBSF" - backward space file
03h "MTFSR" - forward space record
04h "MTBSR" - backward space record
05h "MTREW" - rewind
06h "MTOFFL" - rewind and unload
07h "MTNOP" - perform TEST UNIT READY
 02h	DWORD	repetition count


mtget parameter block:

Size	Description
 00h	BYTE	ASPI host ID
 01h	BYTE	SCSI target ID
 02h	BYTE	SCSI logical unit number
 03h	BYTE	device parameters
bit 0: drive must use fixed-block read and write
bit 7: drive is an ASPI device
 04h	BYTE	current device state
bit 0: device currently opened in buffered mode
bit 1: drive currently opened in nonbuffered mode
bit 2: rewind drive on last close
bit 3: drive has been written on
bit 4: drive has been read from
bit 5: next read will return 0 bytes
bit 6: EOM will resemble EOF
bit 7: drive may be busy rewinding
 05h	BYTE	unit number within driver
 06h	WORD	fixed block blocksize
 08h	BYTE	last SCSI status
 09h	BYTE	last SCSI sense key
 0Ah	WORD	last SCSI opcode (packed)
bits 0-7: SCSI operation (SCSI packet byte 0)
bits 8-10: SCSI flags (SCSI packet byte 1)
bits 11-12: ASPI "Direction Bits" (ASPI SRB byte 3)
 0Ch	WORD	residual bytes from SCSI opcode


parameter block for functions 40h, 60h:

Size	Description
 00h	BYTE	special functions
bit 0 set if function to use current BPB, clear if Device
BIOS Parameter Block field contains new default BPB
bit 1 set if function to use track layout fields only
must be clear if CL=60h
bit 2 set if all sectors in track same size (should be set)
bits 3-7 reserved
 01h	BYTE	device type
00h  320K/360K disk
01h  1.2M disk
02h  720K disk
03h  single-density 8-inch disk
04h  double-density 8-inch disk
05h  fixed disk
06h  tape drive
07h  (DOS 3.3+) 1.44M floppy
08h  read/write optical disk
09h  (DOS 5.0) 2.88M floppy
0Ah  other type of block device
 02h	WORD	device attributes
bit 0 set if nonremovable medium
bit 1 set if door lock ("changeline") supported
bits 2-15 reserved
 04h	WORD	number of cylinders
 06h	BYTE	media type
for 1.2M drive
    00h 1.2M disk (default)
    01h 320K/360K disk
F8h for DUBLDISK.SYS v2.6 expanded drives
always 00h for other drive types
 07h 31 BYTEs	device BPB (see AH=53h), bytes after BPB offset 1Eh omitted
 26h	WORD	number of sectors per track (start of track layout field)
not used by function 60h
 28h  N word pairs: number,size of each sector in track


parameter block for functions 41h, 61h:

Size	Description
 00h	BYTE	special functions (reserved, must be zero)
 01h	WORD	number of disk head
 03h	WORD	number of disk cylinder
 05h	WORD	number of first sector to read/write
 07h	WORD	number of sectors
 09h	DWORD	transfer address


parameter block for functions 42h, 62h:

Size	Description
 00h	BYTE	reserved, must be zero (DOS <3.2)
  bit 0=0: format/verify track
1: format status call (DOS 3.2+)
  bits 1-7 reserved, must be zero
on return (DOS 4.x):
  bit 0: set if specified tracks, sectors/track supported
  bit 1: set if function not supported by BIOS
  bit 2: set if specified tracks, sectors/track not supported
  bit 3: set if no disk in drive
 01h	WORD	number of disk head
 03h	WORD	number of disk cylinder


parameter block for functions 46h, 66h:

Size	Description
 00h	WORD	(call) info level (should be 0000h)  !!!
 02h	DWORD	disk serial number (binary)
 06h 11 BYTEs	volume label or "NO NAME    "
 11h  8 BYTEs	filesystem type "FAT12	 " or "FAT16   " (CL=66h only)


parameter block for functions 47h, 67h:

Size	Description
 00h	BYTE	special-function field (must be zero)
 01h	BYTE	disk-access flag, nonzero if access allowed by driver


parameter block for function 68h:

Size	Description
 00h	BYTE	01h for default media type, 00h for any other media type
 01h	BYTE	02h for 720K, 07h for 1.44M, 09h for 2.88M


internal table:

Size	Description
 00h	DWORD	pointer to ???
 04h  7 BYTEs	???
 0Bh	WORD	K of extended memory at startup
 0Dh	BYTE	number of far jump entry points
 0Eh	WORD	segment containing far jumps to DR-DOS entry points (see below)
---DR-DOS 6.0---
 10h	WORD	(only if kernel loaded in HMA) offset in HMA of first free HMA
memory block (see below) or 0000h if none; segment is FFFFh
 12h	WORD	pointer to segment of environment variables set in CONFIG,
or 0000h if already used
 14h	WORD	(only if kernel loaded in HMA) offset in HMA of first used HMA
memory block (see below) or 0000h if none; segment is FFFFh
Note:	the segment used for the DR-DOS 6.0 CONFIG environment variables
  (excluding COMSPEC, VER and OS) is only useful for programs/drivers
  called from CONFIG.SYS. The word is set to zero later and the area
  lost.


jump table for DR-DOS 5.0-6.0:

Size	Description
 00h  5 BYTEs	far jump to entry point corresponding to CP/M CALL 5
 05h  5 BYTEs	far jump to entry point corresponding to INT 20
 0Ah  5 BYTEs	far jump to entry point corresponding to INT 21
 0Fh  5 BYTEs	far jump to entry point corresponding to ???
 14h  5 BYTEs	far jump to entry point corresponding to ???
 19h  5 BYTEs	far jump to entry point corresponding to ???
 1Eh  5 BYTEs	far jump to entry point corresponding to ???
 23h  5 BYTEs	far jump to entry point corresponding to ???
 28h  5 BYTEs	far jump to entry point corresponding to ???
 2Dh  5 BYTEs	far jump to entry point corresponding to ???
 32h  5 BYTEs	far jump to entry point corresponding to ??? (IRET)
 37h  5 BYTEs	far jump to entry point corresponding to ??? (IRET)
 3Ch  5 BYTEs	far jump to entry point corresponding to ??? (IRET)
 41h  5 BYTEs	far jump to entry point corresponding to ??? (IRET)
 46h  5 BYTEs	far jump to entry point corresponding to ??? (IRET)
 4Bh  5 BYTEs	far jump to entry point corresponding to ???


HMA Memory Block (DR-DOS 6.0 kernel loaded in HMA):

Size	Description
 00h	WORD	offset of next HMA Memory Block (0000h if last block)
 02h	WORD	size of this block in bytes (at least 10h)
 04h	BYTE	type of HMA Memory Block (interpreted by MEM)
00h system
01h KEYB
02h NLSFUNC
03h SHARE
04h TaskMAX
05h COMMAND
 05h	var	TSR (or system) code and data. DR-DOS TSR's, such as KEYB,
hooks interrupts using segment FFFEh instead FFFFh.


EXEC parameter block for AL=00h,01h,04h:

Size	Description
 00h	WORD	segment of environment to copy for child process (copy caller's
environment if 0000h)
 02h	DWORD	pointer to command tail to be copied into child's PSP
 06h	DWORD	pointer to first FCB to be copied into child's PSP
 0Ah	DWORD	pointer to second FCB to be copied into child's PSP
 0Eh	DWORD	(AL=01h) will hold subprogram's initial SS:SP on return
 12h	DWORD	(AL=01h) will hold entry point (CS:IP) on return


EXEC parameter block for AL=03h:

Size	Description
 00h	WORD	segment at which to load overlay
 02h	WORD	relocation factor to apply to overlay if in .EXE format


EXEC parameter block for FlashTek X-32:

Size	Description
 00h	PWORD	48-bit far pointer to environment string
 06h	PWORD	48-bit far pointer to command tail string


.EXE file header:

Size	Description
 00h  2 BYTEs	.EXE signature, either "MZ" or "ZM" (5A4Dh or 4D5Ah)
 02h	WORD	number of bytes in last 512-byte page of executable
 04h	WORD	total number of 512-byte pages in executable (includes any
partial last page)
 06h	WORD	number of relocation entries
 08h	WORD	header size in paragraphs
 0Ah	WORD	minimum paragraphs of memory to allocation in addition to
executable's size
 0Ch	WORD	maximum paragraphs to allocate in addition to executable's size
 0Eh	WORD	initial SS relative to start of executable
 10h	WORD	initial SP
 12h	WORD	checksum (one's complement of sum of all words in executable)
 14h	DWORD	initial CS:IP relative to start of executable
 18h	WORD	offset within header of relocation table (40h for New EXE)
 1Ah	WORD	overlay number (normally 0000h = main program)
---new executable---
 1Ch  4 BYTEs	???
 20h	WORD	behavior bits
 22h 26	BYTEs	reserved for additional behavior info
 3Ch	DWORD	offset of new executable header within disk file
---Borland TLINK---
 1Ch  2 BYTEs	??? (apparently always 01h 00h)
 1Eh	BYTE	signature FBh
 1Fh	BYTE	TLINK version (major in high nybble, minor in low nybble)
 20h  2 BYTEs	??? (v2.0 apparently always 72h 6Ah, v3.0+ seems always 6Ah 72h)
---ARJ self-extracting archive---
 1Ch  4 BYTEs	signature "RJSX" (older versions, new signature is "aRJsfX" in
the first 1000 bytes of the file)
---LZEXE 0.90 compressed executable---
 1Ch  4 BYTEs	signature "LZ09"
---LZEXE 0.91 compressed executable---
 1Ch  4 BYTEs	signature "LZ91"
---PKLITE compressed executable---
 1Ch	BYTE	minor version number
 1Dh	BYTE	(low nybble) major version
(high nybble) 01h if extra compression
 1Eh  6 BYTEs	signature "PKLITE" (followed by copyright message)
---LHarc 1.x self-extracting archive---
 1Ch  4 BYTEs	unused???
 20h  3 BYTEs	jump to start of extraction code
 23h  2 BYTEs	???
 25h 12 BYTEs	signature "LHarc's SFX "
---LHA 2.x self-extracting archive---
 1Ch  8 BYTEs	???
 24h 10 BYTEs	signature "LHa's SFX " (v2.10) or "LHA's SFX " (v2.13)
---TopSpeed C 3.0 CRUNCH compressed file---
 1Ch	DWORD	018A0001h
 20h	WORD	1565h
---PKARCK 3.5 self-extracting archive---
 1Ch	DWORD	00020001h
 20h	WORD	0700h
---BSA (Soviet archiver) self-extracting archive---
 1Ch	WORD	000Fh
 1Eh	BYTE	A7h
---LARC self-extracting archive---
 1Ch  4 BYTEs	???
 20h 11 BYTEs	"SFX by LARC "
---LH self-extracting archive---
 1Ch  8 BYTEs	???
 24h  8 BYTEs	"LH's SFX "
---other linkers---
 1Ch	var	optional information
---
  N   N DWORDs	relocation items
Notes:	if word at offset 02h is 4, it should be treated as 00h, since pre-1.10
  versions of the MS linker set it that way
if both minimum and maximum allocation (offset 0Ah/0Ch) are zero, the
  program is loaded as high in memory as possible
the maximum allocation is set to FFFFh by default


new executable header:

Size	Description
 00h  2 BYTEs	"NE" (4Eh 45h) signature
 02h  2 BYTEs	linker version (major, then minor)
 04h	WORD	offset from start of this header to entry table (see below)
 06h	WORD	length of entry table in bytes
 08h	DWORD	file load CRC (0 in Borland's TPW)
 0Ch	BYTE	program flags
bits 0-1 DGROUP type
  0 = none
  1 = single shared
  2 = multiple (unshared)
  3 = (null)
bit 2:	global initialization
bit 3:	protected mode only
bit 4:	8086 instructions
bit 5:	80286 instructions
bit 6:	80386 instructions
bit 7:	80x87 instructions
 0Dh	BYTE	application flags
bits 0-2: application type
    001 full screen (not aware of Windows/P.M. API)
    010 compatible with Windows/P.M. API
    011 uses Windows/P.M. API
bit 3: is a Family Application (OS/2)
bit 5: 0=executable, 1=errors in image
bit 6: non-conforming program (valid stack is not maintained)
bit 7: DLL or driver rather than application
(SS:SP info invalid, CS:IP points at FAR init routine
 called with AX=module handle which returns AX=0000h
 on failure, AX nonzero on successful initialization)
 0Eh	WORD	auto data segment index
 10h	WORD	initial local heap size
 12h	WORD	initial stack size (added to data seg, 0000h if SS != DS)
 14h	DWORD	program entry point (CS:IP), "CS" is index into segment table
 18h	DWORD	initial stack pointer (SS:SP), "SS" is segment index
if SS=automatic data segment and SP=0000h, the stack pointer is
  set to the top of the automatic data segment, just below the
  local heap
 1Ch	WORD	segment count
 1Eh	WORD	module reference count
 20h	WORD	length of nonresident names table in bytes
 22h	WORD	offset from start of this header to segment table (see below)
 24h	WORD	offset from start of this header to resource table
 26h	WORD	offset from start of this header to resident names table
 28h	WORD	offset from start of this header to module reference table
 2Ah	WORD	offset from start of this header to imported names table
(array of counted strings, terminated with a string of length
 00h)
 2Ch	DWORD	offset from start of file to nonresident names table
 30h	WORD	count of moveable entry point listed in entry table
 32h	WORD	file alignment size shift count
0 is equivalent to 9 (default 512-byte pages)
 34h	WORD	number of resource table entries
 36h	BYTE	target operating system
00h unknown
01h OS/2
02h Windows
03h European MSDOS 4.x
04h Windows 386
05h BOSS (Borland Operating System Services)
 37h	BYTE	other EXE flags
bit 0: supports long filenames
bit 1: 2.X protected mode
bit 2: 2.X proportional font
bit 3: gangload area
 38h	WORD	offset to return thunks or start of gangload area
 3Ah	WORD	offset to segment reference thunks or length of gangload area
 3Ch	WORD	minimum code swap area size
 3Eh  2 BYTEs	expected Windows version (minor version first)


Codeview trailer (at end of executable):

Size	Description
 00h	WORD	signature 4E42h ('NB')
 02h	WORD	Microsoft debug info version number
 04h	DWORD	Codeview header offset


new executable segment table record:

00h	WORD	offset in file (shift left by alignment shift to get byte offs)
 02h	WORD	length of image in file (0000h = 64K)
 04h	WORD	attributes
bit 0: data segment rather than code segment
bit 1: unused???
bit 2: real mode
bit 3: iterated
bit 4: movable
bit 5: sharable
bit 6: preloaded rather than demand-loaded
bit 7: execute-only (code) or read-only (data)
bit 8: relocations (directly following code for this segment)
bit 9: debug info present
bits 10,11: 80286 DPL bits
bit 12:	    discardable
bits 13-15: discard priority
 06h	WORD	number of bytes to allocate for segment (0000h = 64K)
Note:	the first segment table entry is entry number 1


new executable entry table item (list):

Size	Description
 00h	BYTE	number of entry points (00h if end of entry table list)
 01h	BYTE	segment number (00h if end of entry table list)
 02h 3N BYTEs	entry records
Offset	Size	Description
 00h	BYTE	flags
bit 0: exported
bit 1: single data
bits 2-7: unused???
 01h	WORD	offset within segment


new executable relocation data (immediately follows segment image):

Size	Description
 00h	WORD	number of relocation items
 02h 8N BYTEs	relocation items
Offset	Size	Description
 00h	BYTE	relocation type
00h LOBYTE
02h BASE
03h PTR
05h OFFS
0Bh PTR48
0Dh OFFS32
 01h	BYTE	flags
bit 2: additive
 02h	WORD	offset within segment
 04h	WORD	target address segment
 06h	WORD	target address offset


new executable resource data:

Size	Description
 00h	WORD	alignment shift count for resource data
 02h  N RECORDs resources
Format of resource record:
Offset	Size	Description
 00h	WORD	type ID
0000h if end of resource records
>= 8000h if integer type
else offset from start of resource table to type string
 02h	WORD	number of resources of this type
 04h	DWORD	reserved for runtime use
 08h  N Resources (see below)
Note:	resource type and name strings are stored immediately following the
  resource table, and are not null-terminated


new executable resource entry:

Size	Description
 00h	WORD	offset in alignment units from start of file to contents of
the resource data
 02h	WORD	length of resource image in bytes
 04h	WORD	flags
bit 4: moveable
bit 5: shareable
bit 6: preloaded
 06h	WORD	resource ID
>= 8000h if integer resource
else offset from start of resource table to resource string
 08h	DWORD	reserved for runtime use
Notes:	resource type and name strings are stored immediately following the
  resource table, and are not null-terminated
strings are counted strings, with a string of length 0 indicating the
  end of the resource table


new executable module reference table [one bundle of entries]:

Size	Description
 00h	BYTE	number of records in this bundle (00h if end of table)
 01h	BYTE	segment indicator
00h unused
FFh movable segment, segment number is in entry
else segment number of fixed segment
 02h  N RECORDs
Format of segment record
Offset	Size	Description
 00h	BYTE	flags
bit 0: entry is exported
bit 1: entry uses global (shared) data
bits 7-3: number of parameter words
---fixed segment---
 01h	WORD	offset
---moveable segment---
 01h  2 BYTEs	INT 3F instruction (CDh 3Fh)
 03h	BYTE	segment number
 05h	WORD	offset
Note:	table entries are numbered starting from 1


new executable resident/nonresident name table entry:

Size	Description
 00h	BYTE	length of string (00h if end of table)
 01h  N BYTEs	ASCII text of string
 N+1	WORD	ordinal number (index into entry table)
Notes:	the first string in the resident name table is the module name; the
  first entry in the nonresident name table is the module description
the strings are case-sensitive; if the executable was linked with
  /IGNORECASE, all strings are in uppercase


Linear Executable (enhanced mode executable) header:

Size	Description
 00h  2 BYTEs	"LE" (4Ch 45h) signature
 02h	BYTE	byte order (00h = little-endian, nonzero = big-endian)
 03h	BYTE	word order (00h = little-endian, nonzero = big-endian)
 04h	DWORD	executable format level
 08h	WORD	CPU type (see also INT 15/AH=C9h)
01h Intel 80286 or upwardly compatible
02h Intel 80386 or upwardly compatible
03h Intel 80486 or upwardly compatible
04h Intel 80586 or upwardly compatible
20h Intel i860 (N10) or compatible
21h Intel "N11" or compatible
40h MIPS Mark I (R2000, R3000) or compatible
41h MIPS Mark II (R6000) or compatible
42h MIPS Mark III (R4000) or compatible
 0Ah	WORD	target operating system
01h OS/2
02h Windows
03h European DOS 4.0
04h Windows 386
 0Ch	DWORD	module version
 10h	DWORD	module type
bit 2: initialization (only for DLLs)
0 = global
1 = per-process
bit 4: no internal fixups in executable image
bit 5: no external fixups in executable image
bits 8,9,10:
0 = unknown
1 = incompatible with PM windowing \
2 = compatible with PM windowing    > (only for
3 = uses PM windowing API	   /	programs)
bit 13: module not loadable (only for programs)
bit 15: module is DLL rather than program
 14h	DWORD	number of memory pages
 18h	Initial CS:EIP
DWORD	object number
DWORD	offset
 20h	Initial SS:ESP
DWORD	object number
DWORD	offset
 28h	DWORD	memory page size
 2Ch	DWORD	bytes on last page
 30h	DWORD	fixup section size
 34h	DWORD	fixup section checksum
 38h	DWORD	loader section size
 3Ch	DWORD	loader section checksum
 40h	DWORD	offset of object table (see below)
 44h	DWORD	object table entries
 48h	DWORD	object page map table offset
 4CH	DWORD	object iterate data map offset
 50h	DWORD	resource table offset
 54h	DWORD	resource table entries
 58h	DWORD	resident names table offset
 5Ch	DWORD	entry table offset
 60h	DWORD	module directives table offset
 64h	DWORD	Module Directives entries
 68h	DWORD	Fixup page table offset
 6Ch	DWORD	Fixup record table offset
 70h	DWORD	imported modules name table offset
 74h	DWORD	imported modules count
 78h	DWORD	imported procedures name table offset
 7Ch	DWORD	per-page checksum table offset
 80h	DWORD	data pages offset
 84h	DWORD	preload page count
 88h	DWORD	non-resident names table offset
 8Ch	DWORD	non-resident names table length
 90h	DWORD	non-resident names checksum
 94h	DWORD	automatic data object
 98h	DWORD	debug information offset
 9Ch	DWORD	debug information length
 A0h	DWORD	preload instance pages number
 A4h	DWORD	demand instance pages number
 A8h	DWORD	extra heap allocation
 ACh 20 BYTEs	reserved
 C0h	WORD	device ID (MS-Windows VxD only)
 C2h	WORD	DDK version (MS-Windows VxD only)
Note:	used by EMM386.EXE, QEMM, and Windows 3.0 Enhanced Mode drivers


object table entry:

Size	Description
 00h	DWORD	virtual size in bytes
 04h	DWORD	relocation base address
 08h	DWORD	object flags
bit 0: readable
bit 1: writable
bit 2: executable
bit 3: resource
bit 4: discardable
bit 5: shared
bit 6: preloaded
bit 7: invalid
bit 8-9: type
00 normal
01 zero-filled
10 resident
11 resident/contiguous
bit 10: "RESIDENT/LONG_LOCKABLE"
bit 11: reserved
bit 12: "16:16_ALIAS"
bit 13: "BIG" (Huge: 32-bit)
bit 14: conforming
bit 15: "OBJECT_I/O_PRIVILEGE_LEVEL"
bits 16-31: reserved
 0Ch	DWORD	page map index
 10h	DWORD	page map entries
 14h  4 BYTEs	reserved??? (apparently always zeros)


object page map table entry:

Size	Description
 00h	BYTE	??? (usually 00h)
 01h	WORD	index to fixup table (big-endian)
0000h if no relocation info
 03h	BYTE	type (00h hard copy in file, 03h some relocation needed)


resident names table entry:

Size	Description
 00h	BYTE	length of name
 01h  N BYTEs	name
 N+1  3 BYTEs	???


linear executable entry table:

Size	Description
 00h	BYTE	number of entries in table
 01h 10 BYTEs per entry
Offset	Size	Description
 00h	BYTE	bit flags
bit 0: non-empty bundle
bit 1: 32-bit entry
 01h	WORD	object number
 03h	BYTE	entry type flags
bit 0: exported
bit 1: uses single data rather than instance
bit 2: reserved
bits 3-7: number of stack parameters
 04h	DWORD	offset of entry point
 08h  2 BYTEs	???
Note:	empty bundles (bit flags at 00h = 00h) are used to skip unused indices,
  and do not contain the remaining nine bytes


linear executable fixup record:

Size	Description
 00h	BYTE	type
bits 7-4: modifier (0001 single, 0011 multiple)
bits 3-0: type
0000 byte offset
0010 word segment
0011 16-bit far pointer (DWORD)
0101 16-bit offset
0110 32-bit far pointer (PWORD)
0111 32-bit offset
1000 near call or jump, WORD/DWORD based on seg attrib
 01h	BYTE	fixup type
bit 7:	ordinal is BYTE rather than WORD
bit 5:	addition with DWORD rather than WORD
bit 4:	reloation info has size with new two bytes at end
bit 2:	set of add to destination, clear to replace destination
bits 1-0: type
00 internal fixup
01 external fixup, imported by ordinal
10 external fixup, imported by name
---if single type---
 02h	WORD	offset within page
 04h	relocation information
---internal fixup---
BYTE	object number
---external,ordinal---
BYTE	one-based module number in Import Module table
BYTE/WORD ordinal number
WORD/DWORD value to add (only present if modifier bit 4 set)
---external,name---
BYTE	one-based module number in Import Module table
WORD	offset in Import Procedure names
WORD/DWORD value to add (only present if modifier bit 4 set)
---if multiple type---
 02h	BYTE	number of items
 03h	var	relocation info as for "single" type (see above)
      N WORDs	offsets of items to relocate


Borland debugging information header (following load image):

Size	Description
 00h	WORD	signature 52FBh
 02h	WORD	version ID
 04h	DWORD	size of name pool in bytes
 08h	WORD	number of names in namem pool
 0Ah	WORD	number of type entries
 0Ch	WORD	number of structure members
 0Eh	WORD	number of symbols
 10h	WORD	number of global symbols
 12h	WORD	number of modules
 14h	WORD	number of locals (optional)
 16h	WORD	number of scopes in table
 18h	WORD	number of line-number entries
 1Ah	WORD	number of include files
 1Ch	WORD	number of segment records
 1Eh	WORD	number of segment/file correlations
 20h	DWORD	size of load image after removing uninitialized data and debug
info
 24h	DWORD	debugger hook; pointer into debugged program whose meaning
depends on program flags
 28h	BYTE	program flags
bit 0: case-sensitive link
bit 1: pascal overlay program
 29h	WORD	no longer used
 2Bh	WORD	size of data pool in bytes
 2Dh	BYTE	padding
 2Eh	WORD	size of following header extension (currently 00h, 10h, or 20h)
 30h	WORD	number of classes
 32h	WORD	number of parents
 34h	WORD	number of global classes (currently unused)
 36h	WORD	number of overloads (currently unused)
 38h	WORD	number of scope classes
 3Ah	WORD	number of module classes
 3Ch	WORD	number of coverage offsets
 3Eh	DWORD	offset relative to symbol base of name pool
 42h	WORD	number of browser information records
 44h	WORD	number of optimized symbol records
 46h	WORD	debugging flags
 48h  8 BYTEs	padding
Note:	additional information on the Borland debugging info may be found in
  Borland's Open Architecture Handbook


execution state structure:

Size	Description
 00h	WORD	reserved (00h)
 02h	WORD	type flags
bit 0: program is an .EXE
    1: program is an overlay
 04h	DWORD	pointer to ASCIZ name of program file
 08h	WORD	PSP segment of new program
 0Ah	DWORD	starting CS:IP of new program
 0Eh	DWORD	program size including PSP


FindFirst data block:

Size	Description
---PCDOS 3.10, PCDOS 4.01, MSDOS 3.2/3.3/5.0---
 00h	BYTE	drive letter (bits 0-6), remote if bit 7 set
 01h 11 BYTEs	search template
 0Ch	BYTE	search attributes
---DOS 2.x (and some DOS 3.x???)---
 00h	BYTE	search attributes
 01h	BYTE	drive letter
 02h 11 BYTEs	search template
---WILDUNIX.COM---
 00h 12 BYTEs	15-character wildcard search pattern and drive letter (packed)
 0Ch	BYTE	search attributes
---DOS 2.x and most 3.x---
 0Dh	WORD	entry count within directory
 0Fh	DWORD	pointer to DTA???
 13h	WORD	cluster number of start of parent directory
---PCDOS 4.01, MSDOS 3.2/3.3/5.0---
 0Dh	WORD	entry count within directory
 0Fh	WORD	cluster number of start of parent directory
 11h  4 BYTEs	reserved
---all versions, documented fields---
 15h	BYTE	attribute of file found
 16h	WORD	file time
    bits 11-15: hour
    bits 5-10:	minute
    bits 0-4:	seconds/2
 18h	WORD	file date
    bits 9-15:	year-1980
    bits 5-8:	month
    bits 0-4:	day
 1Ah	DWORD	file size
 1Eh 13 BYTEs	ASCIZ filename+extension


List of Lists:

Size	Description
 -12	WORD	(DOS 3.1+) sharing retry count (see AX=440Bh)
 -10	WORD	(DOS 3.1+) sharing retry delay (see AX=440Bh)
 -8	DWORD	(DOS 3+) pointer to current disk buffer
 -4	WORD	(DOS 3+) pointer in DOS code segment of unread CON input
when CON is read via a handle, DOS reads an entire line,
  and returns the requested portion, buffering the rest
  for the next read.  0000h indicates no unread input
 -2	WORD	segment of first memory control block
 00h	DWORD	pointer to first Drive Parameter Block (see AH=32h)
 04h	DWORD	pointer to first System File Table (see below)
 08h	DWORD	pointer to active CLOCK$ device's header
 0Ch	DWORD	pointer to active CON device's header
---DOS 2.x---
 10h	BYTE	number of logical drives in system
 11h	WORD	maximum bytes/block of any block device
 13h	DWORD	pointer to first disk buffer (see below)
 17h 18 BYTEs	actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see below)
---DOS 3.0---
 10h	BYTE	number of block devices
 11h	WORD	maximum bytes/block of any block device
 13h	DWORD	pointer to first disk buffer (see below)
 17h	DWORD	pointer to array of current directory structures (see below)
 1Bh	BYTE	value of LASTDRIVE command in CONFIG.SYS (default 5)
 1Ch	DWORD	pointer to STRING= workspace area
 20h	WORD	size of STRING area (the x in STRING=x from CONFIG.SYS)
 22h	DWORD	pointer to FCB table
 26h	WORD	the y in FCBS=x,y from CONFIG.SYS
 28h 18 BYTEs	actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see below)
---DOS 3.1-3.3---
 10h	WORD	maximum bytes per sector of any block device
 12h	DWORD	pointer to first disk buffer in buffer chain (see below)
 16h	DWORD	pointer to array of current directory structures (see below)
 1Ah	DWORD	pointer to system FCB tables (see below)
 1Eh	WORD	number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y)
 20h	BYTE	number of block devices installed
 21h	BYTE	number of available drive letters (largest of 5, installed
block devices, and CONFIG.SYS LASTDRIVE=).  Also size of
current directory structure array.
 22h 18 BYTEs	actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see below)
 34h	BYTE	number of JOIN'ed drives
---DOS 4.x---
 10h	WORD	maximum bytes per sector of any block device
 12h	DWORD	pointer to disk buffer info record (see below)
 16h	DWORD	pointer to array of current directory structures (see below)
 1Ah	DWORD	pointer to system FCB tables (see below)
 1Eh	WORD	number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y)
(always 00h for DOS 5.0)
 20h	BYTE	number of block devices installed
 21h	BYTE	number of available drive letters (largest of 5, installed
block devices, and CONFIG.SYS LASTDRIVE=).  Also size of
current directory structure array.
 22h 18 BYTEs	actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see below)
 34h	BYTE	number of JOIN'ed drives???
 35h	WORD	pointer within IBMDOS code segment to list of special program
names (see below)
(always 0000h for DOS 5.0)
 37h	DWORD	pointer to FAR routine for resident IFS utility functions
(see below)
may be called by any IFS driver which does not wish to
service functions 20h or 24h-28h itself
 3Bh	DWORD	pointer to chain of IFS (installable file system) drivers
 3Fh	WORD	the x in BUFFERS x,y (rounded up to multiple of 30 if in EMS)
 41h	WORD	the y in BUFFERS x,y
 43h	BYTE	boot drive (1=A:)
 44h	BYTE	01h if 80386+, 00h otherwise???
 45h	WORD	extended memory size in K
---DOS 5.0---
 10h 39 BYTEs	as for DOS 4.x (see above)
 37h	DWORD	pointer to SETVER program list or 0000h:0000h
 3Bh	WORD	??? pointer to function in DOS CS
 3Dh	WORD	??? apparently 0000h if DOS loaded low, PSP of most-recently
EXECed program if DOS in HMA
 3Fh  8 BYTEs	as for DOS 4.x (see above)


memory control block (see also below):

Size	Description
 00h	BYTE	block type: 5Ah if last block in chain, otherwise 4Dh
 01h	WORD	PSP segment of owner or
0000h if free
0006h if DR-DOS XMS UMB
0007h if DR-DOS excluded upper memory ("hole")
0008h if belongs to DOS
FFFAh if 386MAX UMB control block
FFFDh if 386MAX locked-out memory
FFFEh if 386MAX UMB (immediately follows its control block)
 03h	WORD	size of memory block in paragraphs
 05h  3 BYTEs	unused
---DOS 2.x,3.x---
 08h  8 BYTEs	unused
---DOS 4+ ---
 08h  8 BYTEs	ASCII program name if PSP memory block or DR-DOS UMB,
  else garbage
null-terminated if less than 8 characters
Notes:	the next MCB is at segment (current + size + 1)
under DOS 3.1+, the first memory block is the DOS data segment,
  containing installable drivers, buffers, etc.	 Under DOS 4+ it is
  divided into subsegments, each with its own memory control block
  (see below), the first of which is at offset 0000h.
for DOS 5.0, blocks owned by DOS may have either "SC" or "SD" in bytes
  08h and 09h.	"SC" is system code or locked-out inter-UMB memory,
  "SD" is system data, device drivers, etc.
Some versions of DR-DOS use only seven characters of the program name,
  placing a NUL in the eighth byte.


MSDOS 5.0 UMB control block:

Size	Description
 00h	BYTE	type: 5Ah if last block in chain, 4Dh otherwise
 01h	WORD	first available paragraph in UMB if control block at start
of UMB, 000Ah if control block at end of UMB
 03h	WORD	length in paragraphs of following UMB or locked-out region
 05h  3 BYTEs	unused
 08h  8 BYTEs	block type name: "UMB" if start block, "SM" if end block in UMB


STARLITE (General Software's Embedded DOS) memory control block:

Size	Description
 00h	BYTE	block type: 5Ah if last block in chain, otherwise 4Dh
 01h	WORD	PSP segment of owner, 0000h if free, 0008h if belongs to DOS
 03h	WORD	size of memory block in paragraphs
 05h	BYTE	unused
 06h	WORD	segment address of next memory control block (0000h if last)
 08h	WORD	segment address of previous memory control block or 0000h
 0Ah  6 BYTEs	reserved


DOS 4.x data segment subsegment control blocks:

Size	Description
 00h	BYTE	subsegment type (blocks typically appear in this order)
"D"  device driver
"E"  device driver appendage
"I"  IFS (Installable File System) driver
"F"  FILES=  control block storage area (for FILES>5)
"X"  FCBS=   control block storage area, if present
"C"  BUFFERS EMS workspace area (if BUFFERS /X option used)
"B"  BUFFERS=  storage area
"L"  LASTDRIVE=	 current directory structure array storage area
"S"  STACKS=  code and data area, if present (see below)
"T"  INSTALL= transient code
 01h	WORD	paragraph of subsegment start (usually the next paragraph)
 03h	WORD	size of subsegment in paragraphs
 05h  3 BYTEs	unused
 08h  8 BYTEs	for types "D" and "I", base name of file from which the driver
  was loaded (unused for other types)


data at start of STACKS code segment (if present):

Size	Description
 00h	WORD	???
 02h	WORD	number of stacks (the x in STACKS=x,y)
 04h	WORD	size of stack control block array (should be 8*x)
 06h	WORD	size of each stack (the y in STACKS=x,y)
 08h	DWORD	pointer to STACKS data segment
 0Ch	WORD	offset in STACKS data segment of stack control block array
 0Eh	WORD	offset in STACKS data segment of last element of that array
 10h	WORD	offset in STACKS data segment of the entry in that array for
the next stack to be allocated (initially same as value in 0Eh
and works its way down in steps of 8 to the value in 0Ch as
hardware interrupts pre-empt each other)
Note:	the STACKS code segment data may, if present, be located as follows:
    DOS 3.2:	The code segment data is at a paragraph boundary fairly early
in the IBMBIO segment (seen at 0070:0190h)
    DOS 3.3:	The code segment is at a paragraph boundary in the DOS data
segment, which may be determined by inspecting the segment
pointers of the vectors for those of interrupts 02h, 08h-0Eh,
70h, 72-77h which have not been redirected by device drivers or
TSRs.
    DOS 4.x:	Identified by sub-segment control block type "S" within the DOS
data segment.


array elements in STACKS data segment:

Size	Description
 00h	BYTE	status: 00h=free, 01h=in use, 03h=corrupted by overflow of
higher stack.
 01h	BYTE	not used
 02h	WORD	previous SP
 04h	WORD	previous SS
 06h	WORD	ptr to word at top of stack (new value for SP). The word at the
top of the stack is preset to point back to this control block.


sharing record:

Size	Description
 00h	BYTE	flag
00h free block
01h allocated block
FFh end marker
 01h	WORD	size of block
 03h	BYTE	checksum of pathname (including NUL)
if sum of ASCII values is N, checksum is (N/256 + N%256)
 04h	WORD	offset in SHARE's DS of lock record (see below)
 06h	DWORD	pointer to start of system file table chain for file
 0Ah	WORD	unique sequence number
 0Ch	var	ASCIZ full pathname


SHARE.EXE lock record:

Size	Description
 00h	WORD	offset in SHARE's DS of next lock table in list
 02h	DWORD	offset in file of start of locked region
 06h	DWORD	offset in file of end of locked region
 0Ah	DWORD	pointer to System File Table entry for this file
 0Eh	WORD	PSP segment of lock's owner


DOS 2.x system file tables:

Size	Description
 00h	DWORD	pointer to next file table (offset FFFFh if last)
 04h	WORD	number of files in this table
 06h  28h bytes per file
Offset	Size	Description
 00h	BYTE	number of file handles referring to this file
 01h	BYTE	file open mode (see AH=3Dh)
 02h	BYTE	file attribute
 03h	BYTE	drive (0 = character device, 1 = A, 2 = B, etc)
 04h 11 BYTEs	filename in FCB format (no path,no period,blank-padded)
 0Fh	WORD	???
 11h	WORD	???
 13h	DWORD	file size???
 17h	WORD	file date in packed format (see AX=5700h)
 19h	WORD	file time in packed format (see AX=5700h)
 1Bh	BYTE	device attribute (see AX=4400h)
---character device---
 1Ch	DWORD	pointer to device driver
---block device---
 1Ch	WORD	starting cluster of file
 1Eh	WORD	relative cluster in file of last cluster accessed
------
 20h	WORD	absolute cluster number of current cluster
 22h	WORD	???
 24h	DWORD	current file position???


DOS 3.0 system file tables and FCB tables:

Size	Description
 00h	DWORD	pointer to next file table (offset FFFFh if last)
 04h	WORD	number of files in this table
 06h  38h bytes per file
Offset	Size	Description
 00h-1Eh as for DOS 3.1+ (see below)
 1Fh	WORD	byte offset of directory entry within sector
 21h 11 BYTES	filename in FCB format (no path/period, blank-padded)
 2Ch	DWORD	(SHARE.EXE) pointer to previous SFT sharing same file
 30h	WORD	(SHARE.EXE) ??? network machine number
 32h	WORD	PSP segment of file's owner (first three entries for
AUX/CON/PRN contain segment of IO.SYS startup code)
 34h	WORD	(SHARE.EXE) offset in SHARE code seg of share record
 36h	WORD	??? apparently always 0000h


DOS 3.1-3.3x system file tables and FCB tables:

Size	Description
 00h	DWORD	pointer to next file table (offset FFFFh if last)
 04h	WORD	number of files in this table
 06h  35h bytes per file
Offset	Size	Description
 00h	WORD	number of file handles referring to this file
 02h	WORD	file open mode (see AH=3Dh)
bit 15 set if this file opened via FCB
 04h	BYTE	file attribute (see AX=4301h)
 05h	WORD	device info word (see AX=4400h)
bit 15 set if remote file
bit 14 set means do not set file date/time on closing
bit 12 set means don't inherit on EXEC
bits 5-0 drive number for disk files
 07h	DWORD	pointer to device driver header if character device
else pointer to DOS Drive Parameter Block (see AH=32h)
 0Bh	WORD	starting cluster of file
 0Dh	WORD	file time in packed format (see AX=5700h)
 0Fh	WORD	file date in packed format (see AX=5700h)
 11h	DWORD	file size
---system file table---
 15h	DWORD	current offset in file (may be larger than size of
file; INT 21/AH=42h does not check new position)
---FCB table---
 15h	WORD	counter for last I/O to FCB
 17h	WORD	counter for last open of FCB
(these are separate to determine the times of the
latest I/O and open)
---
 19h	WORD	relative cluster within file of last cluster accessed
 1Bh	WORD	absolute cluster number of last cluster accessed
0000h if file never read or written???
 1Dh	WORD	number of sector containing directory entry
 1Fh	BYTE	number of dir entry within sector (byte offset/32)
 20h 11 BYTEs	filename in FCB format (no path/period, blank-padded)
 2Bh	DWORD	(SHARE.EXE) pointer to previous SFT sharing same file
 2Fh	WORD	(SHARE.EXE) network machine number which opened file
 31h	WORD	PSP segment of file's owner (see AH=26h) (first three
entries for AUX/CON/PRN contain segment of IO.SYS
startup code)
 33h	WORD	offset within SHARE.EXE code segment of
sharing record (see above)  0000h = none


DOS 4.0-5.0 system file tables and FCB tables:

Size	Description
 00h	DWORD	pointer to next file table (offset FFFFh if last)
 04h	WORD	number of files in this table
 06h  3Bh bytes per file
Offset	Size	Description
 00h	WORD	number of file handles referring to this file
 02h	WORD	file open mode (see AH=3Dh)
bit 15 set if this file opened via FCB
 04h	BYTE	file attribute (see AX=4301h)
 05h	WORD	device info word (see AX=4400h)
bit 15 set if remote file
bit 14 set means do not set file date/time on closing
bit 13 set if named pipe
bit 12 set if no inherit
bit 11 set if network spooler
 07h	DWORD	pointer to device driver header if character device
else pointer to DOS Drive Parameter Block (see AH=32h)
or REDIR data
 0Bh	WORD	starting cluster of file
 0Dh	WORD	file time in packed format (see AX=5700h)
 0Fh	WORD	file date in packed format (see AX=5700h)
 11h	DWORD	file size
 15h	DWORD	current offset in file
---local file---
 19h	WORD	relative cluster within file of last cluster accessed
 1Bh	DWORD	number of sector containing directory entry
 1Fh	BYTE	number of dir entry within sector (byte offset/32)
---network redirector---
 19h	DWORD	pointer to REDIRIFS record
 1Dh  3 BYTEs	???
------
 20h 11 BYTEs	filename in FCB format (no path/period, blank-padded)
 2Bh	DWORD	(SHARE.EXE) pointer to previous SFT sharing same file
 2Fh	WORD	(SHARE.EXE) network machine number which opened file
 31h	WORD	PSP segment of file's owner (see AH=26h) (first three
entries for AUX/CON/PRN contain segment of IO.SYS
startup code)
 33h	WORD	offset within SHARE.EXE code segment of
sharing record (see above)  0000h = none
 35h	WORD	(local) absolute cluster number of last clustr accessed
(redirector) ???
 37h	DWORD	pointer to IFS driver for file, 0000000h if native DOS


current directory structure (CDS) (array, LASTDRIVE entries):

Size	Description
 00h 67 BYTEs	ASCIZ path in form X:\PATH (local) or \\MACH\PATH (network)
 43h	WORD	drive attributes (see also note below and AX=5F07h)
bit 15: uses network redirector	 \ invalid if 00, installable
    14: physical drive	 / file system if 11
    13: JOIN'ed	  \ path above is true path that would be
    12: SUBST'ed  / needed if not under SUBST or JOIN
 45h	DWORD	pointer to Drive Parameter Block for drive (see AH=32h)
---local drives---
 49h	WORD	starting cluster of current directory
0000h = root, FFFFh = never accessed
 4Bh	WORD	??? seems to be FFFFh always
 4Dh	WORD	??? seems to be FFFFh always
---network drives---
 49h	DWORD	pointer to redirector or REDIRIFS record, or FFFFh:FFFFh
 4Dh	WORD	stored user data from INT 21/AX=5F03h???
------
 4Fh	WORD	offset in current directory path of backslash corresponding to
  root directory for drive
this value specifies how many characters to hide from the
  "CHDIR" and "GETDIR" calls; normally set to 2 to hide the
  drive letter and colon, SUBST, JOIN, and networks change it
  so that only the appropriate portion of the true path is
  visible to the user
---DOS 4.x---
 51h	BYTE	??? used by network
 52h	DWORD	pointer to IFS driver for this drive, 00000000h if native DOS
 56h	WORD	???
Notes:	the path for invalid drives is normally set to X:\, but may be empty
  after JOIN x: /D in DR-DOS 5.0 or NET USE x: /D in older LAN versions
normally, only one of bits 13&12 may be set together with bit 14, but
  DR-DOS 5.0 uses other combinations for bits 15-12: 0111 JOIN,
  0001 SUBST, 0101 ASSIGN


DR-DOS 5.0-6.0 current directory structure entry (array):

Size	Description
 00h 67 BYTEs	ASCIZ pathname of actual root directory for this logical drive
 43h	WORD	drive attributes
1000h SUBSTed drive
3000h??? JOINed drive
4000h physical drive
5000h ASSIGNed drive
7000h JOINed drive
8000h network drive
 45h	BYTE	physical drive number (0=A:) if this logical drive is valid
 46h	BYTE	??? apparently flags for JOIN and ASSIGN
 47h	WORD	cluster number of start of parent directory (0000h = root)
 49h	WORD	entry number of current directory in parent directory
 4Bh	WORD	cluster number of start of current directory
 4Dh  2 BYTEs	used for media change detection (details not available)
 4Fh	WORD	cluster number of SUBST/JOIN "root" directory
0000h if physical root directory


device driver header:

Size	Description
 00h	DWORD	pointer to next driver, offset=FFFFh if last driver
 04h	WORD	device attributes
Character device:
   bit 15 set
   bit 14 IOCTL supported (see AH=44h)
   bit 13 (DOS 3+) output until busy supported
   bit 12 reserved
   bit 11 (DOS 3+) OPEN/CLOSE/RemMedia calls supported
   bits 10-8 reserved
   bit 7  (DOS 5+) Generic IOCTL check call supported (cmd 19h)
(see AX=4410h,AX=4411h)
   bit 6  (DOS 3.2+) Generic IOCTL call supported (command 13h)
(see AX=440Ch,AX=440Dh)
   bit 5  reserved
   bit 4  device is special (use INT 29 "fast console output")
   bit 3  device is CLOCK$ (all reads/writes use transfer
record described below)
   bit 2  device is NUL
   bit 1  device is standard output
   bit 0  device is standard input
Block device:
   bit 15 clear
   bit 14 IOCTL supported
   bit 13 non-IBM format
   bit 12 reserved
   bit 11 (DOS 3+) OPEN/CLOSE/RemMedia calls supported
   bit 10 reserved
   bit 9  direct I/O not allowed???
  (set by DOS 3.3 DRIVER.SYS for "new" drives)
   bit 8  ??? set by DOS 3.3 DRIVER.SYS for "new" drives
   bit 7  (DOS 5+) Generic IOCTL check call supported (cmd 19h)
(see AX=4410h,AX=4411h)
   bit 6  (DOS 3.2+) Generic IOCTL call supported (command 13h)
implies support for commands 17h and 18h
(see AX=440Ch,AX=440Dh,AX=440Eh,AX=440Fh)
   bits 5-2 reserved
   bit 1   driver supports 32-bit sector addressing
   bit 0   reserved
Note: for European MSDOS 4.0, bit 11 also indicates that bits
8-6 contain a version code (000 = DOS 3.0,3.1;
001 = DOS 3.2, 010 = European DOS 4.0)
 06h	WORD	device strategy entry point
call with ES:BX -> request header (see INT 2F/AX=0802h)
 08h	WORD	device interrupt entry point
---character device---
 0Ah  8 BYTEs	blank-padded character device name
---block device---
 0Ah	BYTE	number of subunits (drives) supported by driver
 0Bh  7 BYTEs	unused
---
 12h	WORD	(CD-ROM driver) reserved, must be 0000h
 14h	BYTE	(CD-ROM driver) drive letter (must initially be 00h)
 15h	BYTE	(CD-ROM driver) number of units
 16h  6 BYTEs	(CD-ROM driver) signature 'MSCDnn' where 'nn' is version
(currently '00')


CLOCK$ transfer record:

Size	Description
 00h	WORD	number of days since 1-Jan-1980
 02h	BYTE	minutes
 03h	BYTE	hours
 04h	BYTE	hundredths of second
 05h	BYTE	seconds


DOS 2.x disk buffer:

Size	Description
 00h	DWORD	pointer to next disk buffer, offset = FFFFh if last
least-recently used buffer is first in chain
 04h	BYTE	drive (0=A, 1=B, etc), FFh if not in use
 05h  3 BYTEs	unused??? (seems always to be 00h 00h 01h)
 08h	WORD	logical sector number
 0Ah	BYTE	number of copies to write (1 for non-FAT sectors)
 0Bh	BYTE	sector offset between copies if multiple copies to be written
 0Ch	DWORD	pointer to DOS Drive Parameter Block (see AH=32h)
 10h	buffered data


DOS 3.x disk buffer:

Size	Description
 00h	DWORD	pointer to next disk buffer, offset = FFFFh if last
least-recently used buffer is first in chain
 04h	BYTE	drive (0=A,1=B, etc), FFh if not in use
 05h	BYTE	flags
bit 7: ???
bit 6: buffer dirty
bit 5: buffer has been referenced
bit 4: ???
bit 3: sector in data area
bit 2: sector in a directory, either root or subdirectory
bit 1: sector in FAT
bit 0: boot sector??? (guess)
 06h	WORD	logical sector number
 08h	BYTE	number of copies to write (1 for non-FAT sectors)
 09h	BYTE	sector offset between copies if multiple copies to be written
 0Ah	DWORD	pointer to DOS Drive Parameter Block (see AH=32h)
 0Eh	WORD	unused??? (almost always 0)
 10h	buffered data


DOS 4.00 (pre UR 25066) disk buffer info:

Size	Description
 00h	DWORD	pointer to array of disk buffer hash chain heads (see below)
 04h	WORD	number of disk buffer hash chains (referred to as NDBCH below)
 06h	DWORD	pointer to lookahead buffer, zero if not present
 0Ah	WORD	number of lookahead sectors, else zero (the y in BUFFERS=x,y)
 0Ch	BYTE	00h if buffers in EMS (/X), FFh if not
 0Dh	WORD	EMS handle for buffers, zero if not in EMS
 0Fh	WORD	EMS physical page number used for buffers (usually 255)
 11h	WORD	??? seems always to be 0001h
 13h	WORD	segment of EMS physical page frame
 15h	WORD	??? seems always to be zero
 17h  4 WORDs	EMS partial page mapping information???


DOS 4.01 (from UR 25066 Corrctive Services Disk on) disk buffer info:

Size	Description
 00h	DWORD	pointer to array of disk buffer hash chain heads (see below)
 04h	WORD	number of disk buffer hash chains (referred to as NDBCH below)
 06h	DWORD	pointer to lookahead buffer, zero if not present
 0Ah	WORD	number of lookahead sectors, else zero (the y in BUFFERS=x,y)
 0Ch	BYTE	01h, possibly to distinguish from pre-UR 25066 format
 0Dh	WORD	??? EMS segment for BUFFERS (only with /XD)
 0Fh	WORD	??? EMS physical page number of EMS seg above (only with /XD)
 11h	WORD	??? EMS segment for ??? (only with /XD)
 13h	WORD	??? EMS physical page number of above (only with /XD)
 15h	BYTE	??? number of EMS page frames present (only with /XD)
 16h	WORD	segment of one-sector workspace buffer allocated in main memory
  if BUFFERS/XS or /XD options in effect, possibly to avoid DMA
  into EMS
 18h	WORD	EMS handle for buffers, zero if not in EMS
 1Ah	WORD	EMS physical page number used for buffers (usually 255)
 1Ch	WORD	??? appears always to be 0001h
 1Eh	WORD	segment of EMS physical page frame
 20h	WORD	??? appears always to be zero
 22h	BYTE	00h if /XS, 01h if /XD, FFh if BUFFERS not in EMS


DOS 4.x disk buffer hash chain head (array, one entry per chain):

Size	Description
 00h	WORD	EMS logical page number in which chain is resident, -1 if not
in EMS
 02h	DWORD	pointer to least recently used buffer header.  All buffers on
this chain are in the same segment.
 06h	BYTE	number of dirty buffers on this chain
 07h	BYTE	reserved (00h)
Notes:	buffered disk sectors are assigned to chain N where N is the sector's
  address modulo NDBCH,	 0 <= N <= NDBCH-1
each chain resides completely within one EMS page
this structure is in main memory even if buffers are in EMS


DOS 4.0-5.0 disk buffer:

Size	Description
 00h	WORD	forward ptr, offset only, to next least recently used buffer
 02h	WORD	backward ptr, offset only
 04h	BYTE	drive (0=A,1=B, etc), FFh if not in use
 05h	BYTE	flags
bit 7: remote buffer
bit 6: buffer dirty
bit 5: buffer has been referenced
bit 4: search data buffer (only valid if remote buffer)
bit 3: sector in data area
bit 2: sector in a directory, either root or subdirectory
bit 1: sector in FAT
bit 0: reserved
 06h	DWORD	logical sector number
 0Ah	BYTE	number of copies to write
for FAT sectors, same as number of FATs
for data and directory sectors, usually 1
 0Bh	WORD	offset in sectors between copies to write for FAT sectors
 0Dh	DWORD	pointer to DOS Drive Parameter Block (see AH=32h)
 11h	WORD	buffer use count if remote buffer (see flags above)
 13h	BYTE	reserved
 14h	buffered data
Note:	for DOS 4.x, all buffered sectors which have the same hash value
  (computed as the sum of high and low words of the logical sector
  number divided by NDBCH) are on the same doubly-linked circular
  chain; for DOS 5.0, only a single circular chain exists.
the links consist of offset addresses only, the segment being the same
  for all buffers in the chain.


DOS 5.0 disk buffer info:

Size	Description
 00h	DWORD	pointer to least-recently-used buffer header (may be in HMA)
(see above)
 04h	WORD	0000h (DOS 5 does not hash disk buffers, so offset 00h points
directly at the only buffer chain)
 06h	DWORD	pointer to lookahead buffer, zero if not present
 0Ah	WORD	number of lookahead sectors, else zero (the y in BUFFERS=x,y)
 0Ch	BYTE	buffer location
00h base memory, no workspace buffer
01h HMA, workspace buffer in base memory
 0Dh	DWORD	pointer to one-segment workspace buffer in base memory
 11h  3 BYTEs	unused???
 14h	WORD	???
 16h	BYTE	??? apparently always 00h
 17h	BYTE	??? apparently always FFh
 18h	BYTE	??? apparently always 00h
 19h	BYTE	??? apparently always 00h
 1Ah	WORD	??? segment within HIMEM.SYS area when buffers are in HMA and
  UMBs are enabled???, else 0000h
 1Ch	BYTE	bit 0 set iff UMB MCB chain linked to normal MCB chain
 1Dh	WORD	???
 1Fh	WORD	segment of first MCB in upper memory blocks or FFFFh if DOS
memory chain in base 640K only (first UMB MCB usually at 9FFFh,
locking out video memory with a DOS-owned memory block)
 21h	WORD	paragraph of start of most recent MCB chain search


IFS driver list:

Size	Description
 00h	DWORD	pointer to next driver header
 04h  8 BYTEs	IFS driver name (blank padded), as used by FILESYS command
 0Ch  4 BYTEs	???
 10h	DWORD	pointer to IFS utility function entry point (see below)
call with ES:BX -> IFS request (see below)
 14h	WORD	offset in header's segment of driver entry point
???


IFS request block:

Size	Description
 00h	WORD	total size in bytes of request
 02h	BYTE	class of request
02h ???
03h redirection
04h ???
05h file access
06h convert error code to string
07h ???
 03h	WORD	returned DOS error code
 05h	BYTE	IFS driver exit status
00h success
01h ???
02h ???
03h ???
04h ???
FFh internal failure
 06h 16 BYTEs	???
---request class 02h---
 16h	BYTE	function code
04h ???
 17h	BYTE	unused???
 18h	DWORD	pointer to ???
 1Ch	DWORD	pointer to ???
 20h  2 BYTEs	???
---request class 03h---
 16h	BYTE	function code
 17h	BYTE	???
 18h	DWORD	pointer to ???
 1Ch	DWORD	pointer to ???
 22h	WORD	returned ???
 24h	WORD	returned ???
 26h	WORD	returned ???
 28h	BYTE	returned ???
 29h	BYTE	unused???
---request class 04h---
 16h	DWORD	pointer to ???
 1Ah	DWORD	pointer to ???
---request class 05h---
 16h	BYTE	function code
01h flush disk buffers
02h get disk space
03h MKDIR
04h RMDIR
05h CHDIR
06h delete file
07h rename file
08h search directory
09h file open/create
0Ah LSEEK
0Bh read from file
0Ch write to file
0Dh lock region of file
0Eh commit/close file
0Fh get/set file attributes
10h printer control
11h ???
12h process termination
13h ???
---class 05h function 01h---
 17h  7	BYTEs	???
 1Eh	DWORD	pointer to ???
 22h  4 BYTEs	???
 26h	BYTE	???
 27h	BYTE	???
---class 05h function 02h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h  4 BYTEs	???
 26h	WORD	returned total clusters
 28h	WORD	returned sectors per cluster
 2Ah	WORD	returned bytes per sector
 2Ch	WORD	returned available clusters
 2Eh	BYTE	returned ???
 2Fh	BYTE	???
---class 05h functions 03h,04h,05h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h  4 BYTEs	???
 26h	DWORD	pointer to directory name
---class 05h function 06h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h  4 BYTEs	???
 26h	WORD	attribute mask
 28h	DWORD	pointer to filename
---class 05h function 07h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h  4 BYTEs	???
 26h	WORD	attribute mask
 28h	DWORD	pointer to source filespec
 2Ch	DWORD	pointer to destination filespec
---class 05h function 08h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h  4 BYTEs	???
 26h	BYTE	00h FINDFIRST
01h FINDNEXT
 28h	DWORD	pointer to FindFirst search data + 01h if FINDNEXT
 2Ch	WORD	search attribute if FINDFIRST
 2Eh	DWORD	pointer to filespec if FINDFIRST
---class 05h function 09h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h	DWORD	pointer to IFS open file structure (see below)
 26h	WORD	???  \ together, specify open vs. create, whether or
 28h	WORD	???  / not to truncate
 2Ah  4 BYTEs	???
 2Eh	DWORD	pointer to filename
 32h  4 BYTEs	???
 36h	WORD	file attributes on call
returned ???
 38h	WORD	returned ???
---class 05h function 0Ah---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h	DWORD	pointer to IFS open file structure (see below)
 26h	BYTE	seek type (02h = from end)
 28h	DWORD	offset on call
returned new absolute position
---class 05h functions 0Bh,0Ch---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h	DWORD	pointer to IFS open file structure (see below)
 28h	WORD	number of bytes to transfer
returned bytes actually transferred
 2Ah	DWORD	transfer address
---class 05h function 0Dh---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h	DWORD	pointer to IFS open file structure (see below)
 26h	BYTE	file handle???
 27h	BYTE	unused???
 28h	WORD	???
 2Ah	WORD	???
 2Ch	WORD	???
 2Eh	WORD	???
---class 05h function 0Eh---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h	DWORD	pointer to IFS open file structure (see below)
 26h	BYTE	00h commit file
01h close file
 27h	BYTE	unused???
---class 05h function 0Fh---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h  4 BYTEs	???
 26h	BYTE	02h GET attributes
03h PUT attributes
 27h	BYTE	unused???
 28h 12 BYTEs	???
 34h	WORD	search attributes???
 36h	DWORD	pointer to filename
 3Ah	WORD	(GET) returned ???
 3Ch	WORD	(GET) returned ???
 3Eh	WORD	(GET) returned ???
 40h	WORD	(GET) returned ???
 42h	WORD	(PUT) new attributes
(GET) returned attributes
---class 05h function 10h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h	DWORD	pointer to IFS open file structure (see below)
 26h	WORD	???
 28h	DWORD	pointer to ???
 2Ch	WORD	???
 2Eh	BYTE	???
 2Fh	BYTE	subfunction
01h get printer setup
03h ???
04h ???
05h ???
06h ???
07h ???
21h set printer setup
---class 05h function 11h---
 17h  7 BYTEs	???
 1Eh	DWORD	pointer to ???
 22h	DWORD	pointer to IFS open file structure (see below)
 26h	BYTE	subfunction
 27h	BYTE	unused???
 28h	WORD	???
 2Ah	WORD	???
 2Ch	WORD	???
 2Eh	BYTE	???
 2Fh	BYTE	???
---class 05h function 12h---
 17h 15 BYTEs	unused???
 26h	WORD	PSP segment
 28h	BYTE	type of process termination
 29h	BYTE	unused???
---class 05h function 13h---
 17h 15 BYTEs	unused???
 26h	WORD	PSP segment
---request class 06h---
 16h	DWORD	returned pointer to string corresponding to error code at 03h
 1Ah	BYTE	returned ???
 1Bh	BYTE	unused
---request class 07h---
 16h	DWORD	pointer to IFS open file structure (see below)
 1Ah	BYTE	???
 1Bh	BYTE	unused???


IFS open file structure:

Size	Description
 00h	WORD	???
 02h	WORD	device info word
 04h	WORD	file open mode
 06h	WORD	???
 08h	WORD	file attributes
 0Ah	WORD	owner's network machine number
 0Ch	WORD	owner's PSP segment
 0Eh	DWORD	file size
 12h	DWORD	current offset in file
 16h	WORD	file time
 18h	WORD	file date
 1Ah 11 BYTEs	filename in FCB format
 25h	WORD	???
 27h	WORD	hash value of SFT address
(low word of linear address + segment&F000h)
 29h  3 WORDs	network info from SFT
 2Fh	WORD	???


one item in DOS 4+ list of special program names:

Size	Description
 00h	BYTE	length of name (00h = end of list)
 01h  N BYTEs	name in format name.ext
 N    2 BYTEs	DOS version to return for program (major,minor)
(see AH=30h,INT 2F/AX=122Fh)
---DOS 4 only---
 N+2	BYTE	number of times to return fake version number (FFh = always)
Note:	if the name of the executable for the program making the DOS "get
  version" call matches one of the names in this list, DOS returns the
  specified version rather than the true version number


BIOS Parameter Block:

Size	Description
 00h	WORD	number of bytes per sector
 02h	BYTE	number of sectors per cluster
 03h	WORD	number of reserved sectors at start of disk
 05h	BYTE	number of FATs
 06h	WORD	number of entries in root directory
 08h	WORD	total number of sectors
for DOS 4+, set to zero if partition >32M, then set DWORD at
  15h to actual number of sectors
 0Ah	BYTE	media ID byte
 0Bh	WORD	number of sectors per FAT
---DOS 3+---
 0Dh	WORD	number of sectors per track
 0Fh	WORD	number of heads
 11h	DWORD	number of hidden sectors
 15h 11 BYTEs	reserved
---DOS 4+ ---
 15h	DWORD	total number of sectors if word at 08h contains zero
 19h  6 BYTEs	???
 1Fh	WORD	number of cylinders
 21h	BYTE	device type
 22h	WORD	device attributes (removable or not, etc)
---European MSDOS 4.00---
 15h	DWORD	total number of sectors if word at 08h contains zero
(however, this DOS does not actually implement >32M partitions)


hard error information packet:

Size	Description
 00h	WORD	contents of AX at system entry
 02h	WORD	Process ID which encountered error
 04h	WORD	contents of AX at time of error
 06h	BYTE	error type
00h physical I/O error
01h disk change request
02h file sharing violation
03h FCB problem
04h file locking violation
05h bad FAT
06h network detected error
 07h	BYTE	INT 24 error code
 08h	WORD	extended error code (see AH=59h/BX=0000h)
 0Ah	DWORD	pointer to associated device


DOS parameter list:

Size	Description
 00h	WORD	AX
 02h	WORD	BX
 04h	WORD	CX
 06h	WORD	DX
 08h	WORD	SI
 0Ah	WORD	DI
 0Ch	WORD	DS
 0Eh	WORD	ES
 10h	WORD	reserved (0)
 12h	WORD	computer ID (0 = current system)
 14h	WORD	process ID (PSP segment on specified computer)


DOS 3.10-3.30 Swappable Data Area:

Size	Description
 00h	BYTE	critical error flag
 01h	BYTE	InDOS flag (count of active INT 21 calls)
 02h	BYTE	drive on which current critical error occurred, or FFh
 03h	BYTE	locus of last error
 04h	WORD	extended error code of last error
 06h	BYTE	suggested action for last error
 07h	BYTE	class of last error
 08h	DWORD	ES:DI pointer for last error
 0Ch	DWORD	current DTA
 10h	WORD	current PSP
 12h	WORD	stores SP across an INT 23
 14h	WORD	return code from last process termination (zerod after reading
with AH=4Dh)
 16h	BYTE	current drive
 17h	BYTE	extended break flag
---remainder need only be swapped if in DOS---
 18h	WORD	value of AX on call to INT 21
 1Ah	WORD	PSP segment for sharing/network
 1Ch	WORD	network machine number for sharing/network (0000h = us)
 1Eh	WORD	first usable memory block found when allocating memory
 20h	WORD	best usable memory block found when allocating memory
 22h	WORD	last usable memory block found when allocating memory
 24h	WORD	memory size in paragraphs (used only during initialization)
 26h	WORD	???
 28h	BYTE	INT 24 returned Fail
 29h	BYTE	bit flags for allowable actions on INT 24
 2Ah	BYTE	??? flag
 2Bh	BYTE	FFh if Ctrl-Break termination, 00h otherwise
 2Ch	BYTE	??? flag of some kind
 2Dh	BYTE	??? (doesn't seem to be referenced)
 2Eh	BYTE	day of month
 2Fh	BYTE	month
 30h	WORD	year - 1980
 32h	WORD	number of days since 1-1-1980
 34h	BYTE	day of week (0 = Sunday)
 35h	BYTE	working SFT pointer at SDA+2AAh is valid ???
 36h	BYTE	safe to call INT 28 if nonzero
 37h	BYTE	flag: if nonzero, INT 24 abort turned into INT 24 fail
(set only during process termination)
 38h 26 BYTEs	device driver request header (see INT 2F/AX=0802h)
 52h	DWORD	pointer to device driver entry point (used in calling driver)
 56h 22 BYTEs	device driver request header
 6Ch 22 BYTEs	device driver request header
 82h	BYTE	type of PSP copy (00h=simple for INT 21/AH=26h, FFh=make child)
 83h	BYTE	??? apparently not referenced by kernel
 84h  3 BYTEs	24-bit user number (see AH=30h)
 87h	BYTE	OEM number (see AH=30h)
 88h  2 BYTEs	???
 8Ah  6 BYTEs	CLOCK$ transfer record (see AH=52h)
 90h	BYTE	??? buffer for single-byte I/O functions
 91h	BYTE	??? apparently not referenced by kernel
 92h 128 BYTEs	buffer for filename
112h 128 BYTEs	buffer for filename
192h 21 BYTEs	findfirst/findnext search data block (see AH=4Eh)
1A7h 32 BYTEs	directory entry for found file
1C7h 81 BYTEs	copy of current directory structure for drive being accessed
218h 11 BYTEs	FCB-format filename for device name comparison
223h	BYTE	unused???
224h 11 BYTEs	wildcard destination specification for rename (FCB format)
22Fh  2 BYTEs	???
231h	WORD	???
233h  5 BYTEs	???
238h	BYTE	extended FCB file attribute
239h	BYTE	type of FCB (00h regular, FFh extended)
23Ah	BYTE	directory search attributes
23Bh	BYTE	file open mode???
23Ch	BYTE	??? flag bits 0 and 4
23Dh	BYTE	??? flag or counter
23Eh	BYTE	??? flag
23Fh	BYTE	flag indicating how DOS function was invoked
(00h = direct INT 20/INT 21, FFh = server call AX=5D00h)
240h	BYTE	???
241h	BYTE	??? flag
242h	BYTE	flag: 00h if read, 01h if write
243h	BYTE	drive number for ???
244h	BYTE	???
245h	BYTE	??? flag or counter
246h	BYTE	line edit (AH=0Ah) insert mode flag (nonzero = on)
247h	BYTE	canonicalized filename referred to existing file/dir if FFh
248h	BYTE	??? flag or counter
249h	BYTE	type of process termination (00h-03h) (see AH=4Dh)
24Ah	BYTE	??? flag
24Bh	BYTE	value with which to replace first byte of deleted file's name
(normally E5h, but 00h as described under INT 21/AH=13h)
24Ch	DWORD	pointer to Drive Parameter Block for critical error invocation
250h	DWORD	pointer to stack frame containing user registers on INT 21
254h	WORD	stores SP across INT 24
256h	DWORD	pointer to DOS Drive Parameter Block for ???
25Ah	WORD	???
25Ch	WORD	??? temp
25Eh	WORD	??? flag (only low byte referenced)
260h	WORD	??? temp
262h	BYTE	Media ID byte returned by AH=1Bh,1Ch
263h	BYTE	??? (doesn't seem to be referenced)
264h	DWORD	pointer to device header
268h	DWORD	pointer to current SFT
26Ch	DWORD	pointer to current directory structure for drive being accessed
270h	DWORD	pointer to caller's FCB
274h	WORD	number of SFT to which file being opened will refer
276h	WORD	temporary storage for file handle
278h	DWORD	pointer to a JFT entry in process handle table (see AH=26h)
27Ch	WORD	offset in DOS DS of first filename argument
27Eh	WORD	offset in DOS DS of second filename argument
280h	WORD	offset of last component in pathname or FFFFh
282h	WORD	??? offset of transfer address???
284h	WORD	??? relative cluster within file being accessed ???
286h	WORD	??? absolute cluster number being accessed ???
288h	WORD	??? current sector number
28Ah	WORD	??? current cluster number
28Ch	WORD	??? current offset in file DIV bytes per sector
28Eh  2 BYTEs	???
290h	WORD	??? current offset in file MOD bytes per sector
292h	DWORD	current offset in file
296h	WORD	???
298h	WORD	???
29Ah	WORD	???
29Ch	WORD	???
29Eh	WORD	???
2A0h	WORD	???
2A2h	DWORD	number of bytes appended to file
2A6h	DWORD	pointer to ??? disk buffer
2AAh	DWORD	pointer to working SFT
2AEh	WORD	used by INT 21 dispatcher to store caller's BX
2B0h	WORD	used by INT 21 dispatcher to store caller's DS
2B2h	WORD	temporary storage while saving/restoring caller's registers
2B4h	DWORD	pointer to prev call frame (offset 250h) if INT 21 reentered
also switched to for duration of INT 24
2B8h 21 BYTEs	FindFirst search data for source file(s) of a rename operation
(see AH=4Eh)
2CDh 32 BYTEs	directory entry for file being renamed
2EDh 331 BYTEs	critical error stack
   403h	 35 BYTEs scratch SFT
438h 384 BYTEs	disk stack (functions greater than 0Ch, INT 25,INT 26)
5B8h 384 BYTEs	character I/O stack (functions 01h through 0Ch)
---DOS 3.2,3.3 only---
738h	BYTE	device driver lookahead flag (see AH=64h)
739h	BYTE	??? looks like a drive number
73Ah	BYTE	??? flag of some kind
73Ah	BYTE	???


DOS 4.x swappable data area list:

Size	Description
 00h	WORD	count of data areas
 02h  N BYTEs	"count" copies of data area record
Offset	Size	Description
 00h	DWORD	address
 04h	WORD	length and type
bit 15 set if swap always, clear if swap in DOS
bits 14-0: length in bytes


DOS 4.0-5.0 swappable data area:

Size	Description
 00h	BYTE	critical error flag
 01h	BYTE	InDOS flag (count of active INT 21 calls)
 02h	BYTE	drive on which current critical error occurred or FFh
 03h	BYTE	locus of last error
 04h	WORD	extended error code of last error
 06h	BYTE	suggested action for last error
 07h	BYTE	class of last error
 08h	DWORD	ES:DI pointer for last error
 0Ch	DWORD	current DTA
 10h	WORD	current PSP
 12h	WORD	stores SP across an INT 23
 14h	WORD	return code from last process termination (zerod after reading
with AH=4Dh)
 16h	BYTE	current drive
 17h	BYTE	extended break flag
 18h  2 BYTEs	???
---remainder need only be swapped if in DOS---
 1Ah	WORD	value of AX on call to INT 21
 1Ch	WORD	PSP segment for sharing/network
 1Eh	WORD	network machine number for sharing/network (0000h = us)
 20h	WORD	first usable memory block found when allocating memory
 22h	WORD	best usable memory block found when allocating memory
 24h	WORD	last usable memory block found when allocating memory
 26h	WORD	memory size in paragraphs (used only during initialization)
 28h	WORD	???
 2Ah	BYTE	???
 2Bh	BYTE	???
 2Ch	BYTE	???
 2Dh	BYTE	???
 2Eh	BYTE	???
 2Fh	BYTE	??? (doesn't seem to be referenced)
 30h	BYTE	day of month
 31h	BYTE	month
 32h	WORD	year - 1980
 34h	WORD	number of days since 1-1-1980
 36h	BYTE	day of week (0 = Sunday)
 37h	BYTE	???
 38h	BYTE	???
 39h	BYTE	???
 3Ah 30 BYTEs	device driver request header (see INT 2F/AX=0802h)
 58h	DWORD	pointer to device driver entry point (used in calling driver)
 5Ch 22 BYTEs	device driver request header
 72h 30 BYTEs	device driver request header
 90h  6	BYTEs	???
 96h  6 BYTEs	CLOCK$ transfer record (see AH=52h)
 9Ch  2 BYTEs	???
 9Eh 128 BYTEs	buffer for filename
11Eh 128 BYTEs	buffer for filename
19Eh 21 BYTEs	findfirst/findnext search data block (see AH=4Eh)
1B3h 32 BYTEs	directory entry for found file
1D3h 88 BYTEs	copy of current directory structure for drive being accessed
22Bh 11 BYTEs	FCB-format filename for device name comparison
236h	BYTE	???
237h 11 BYTEs	wildcard destination specification for rename (FCB format)
242h  2 BYTEs	???
244h	WORD	???
246h  5 BYTEs	???
24Bh	BYTE	extended FCB file attributes
24Ch	BYTE	type of FCB (00h regular, FFh extended)
24Dh	BYTE	directory search attributes
24Eh	BYTE	file open mode
24Fh	BYTE	??? flag bits
250h	BYTE	??? flag or counter
251h	BYTE	??? flag
252h	BYTE	flag indicating how DOS function was invoked
(00h = direct INT 20/INT 21, FFh = server call AX=5D00h)
253h	BYTE	???
254h	BYTE	???
255h	BYTE	???
256h	BYTE	???
257h	BYTE	???
258h	BYTE	???
259h	BYTE	???
25Ah	BYTE	canonicalized filename referred to existing file/dir if FFh
25Bh	BYTE	???
25Ch	BYTE	type of process termination (00h-03h)
25Dh	BYTE	???
25Eh	BYTE	???
25Fh	BYTE	???
260h	DWORD	pointer to Drive Parameter Block for critical error invocation
264h	DWORD	pointer to stack frame containing user registers on INT 21
268h	WORD	stores SP???
26Ah	DWORD	pointer to DOS Drive Parameter Block for ???
26Eh	WORD	segment of disk buffer
270h	WORD	???
272h	WORD	???
274h	WORD	???
276h	WORD	???
278h	BYTE	Media ID byte returned by AH=1Bh,1Ch
279h	BYTE	??? (doesn't seem to be referenced)
27Ah	DWORD	pointer to ???
27Eh	DWORD	pointer to current SFT
282h	DWORD	pointer to current directory structure for drive being accessed
286h	DWORD	pointer to caller's FCB
28Ah	WORD	SFT index to which file being opened will refer
28Ch	WORD	temporary storage for file handle
28Eh	DWORD	pointer to a JFT entry in process handle table (see AH=26h)
292h	WORD	offset in DOS DS of first filename argument
294h	WORD	offset in DOS DS of second filename argument
296h	WORD	???
298h	WORD	???
29Ah	WORD	???
29Ch	WORD	???
29Eh	WORD	???
2A0h	WORD	???
2A2h	WORD	??? directory cluster number???
2A4h	DWORD	???
2A8h	DWORD	???
2ACh	WORD	???
2AEh	DWORD	offset in file???
2B2h	WORD	???
2B4h	WORD	bytes in partial sector
2B6h	WORD	number of sectors
2B8h	WORD	???
2BAh	WORD	???
2BCh	WORD	???
2BEh	DWORD	number of bytes appended to file
2C2h	DWORD	pointer to ??? disk buffer
2C6h	DWORD	pointer to ??? SFT
2CAh	WORD	used by INT 21 dispatcher to store caller's BX
2CCh	WORD	used by INT 21 dispatcher to store caller's DS
2CEh	WORD	temporary storage while saving/restoring caller's registers
2D0h	DWORD	pointer to prev call frame (offset 264h) if INT 21 reentered
also switched to for duration of INT 24
2D4h	WORD	open mode/action for INT 21/AX=6C00h
2D6h	BYTE	??? (set to 00h by INT 21h dispatcher, 02h when a read is
performed, and 01h or 03h by INT 21/AX=6C00h)
2D7h	WORD	??? apparently unused
2D9h	DWORD	stored ES:DI for AX=6C00h
2DDh	WORD	extended file open action code (see AX=6C00h)
2DFh	WORD	extended file open attributes (see AX=6C00h)
2E1h	WORD	extended file open file mode (see AX=6C00h)
2E3h	DWORD	pointer to filename to open (see AX=6C00h)
2E7h	WORD	???
2E9h	WORD	???
2EBh	BYTE	???
2ECh	WORD	stores DS during call to [List-of-Lists + 37h]
2EEh	WORD	???
2F0h	BYTE	???
2F1h	WORD	??? bit flags
2F3h	DWORD	pointer to user-supplied filename
2F7h	DWORD	pointer to ???
2FBh	WORD	stores SS during call to [List-of-Lists + 37h]
2FDh	WORD	stores SP during call to [List-of-Lists + 37h]
2FFh	BYTE	flag, nonzero if stack switched in calling [List-of-Lists+37h]
300h 21 BYTEs	FindFirst search data for source file(s) of a rename operation
(see AH=4Eh)
315h 32 BYTEs	directory entry for file being renamed
335h 331 BYTEs	critical error stack
480h 384 BYTEs	disk stack (functions greater than 0Ch, INT 25,INT 26)
600h 384 BYTEs	character I/O stack (functions 01h through 0Ch)
780h	BYTE	device driver lookahead flag (see AH=64h)
781h	BYTE	??? looks like a drive number
782h	BYTE	??? flag of some kind
783h	BYTE	???
784h	WORD	???
786h	WORD	???
788h	WORD	???
78Ah	WORD	???


user account structure:

Size	Description
 00h 16 BYTEs	blank-padded username (zero-padded for v4.x)
 10h 16 BYTEs	reserved (00h)
 20h 32 BYTEs	user description
 40h	BYTE	privilege bits
bit 7: bypass access control lists
    6: bypass queue protection
    5: treat as local process
    4: bypass mail protection
    3: allow audit entry creation
    2: system manager
    0: user cannot change password
 41h	BYTE	maximum concurrent users
 42h 42 BYTEs	bit map for disallowed half hours, beginning on Sunday
(bit set if half-hour not an allowed time)
 6Ch	WORD	internal (0002h)
 6Eh  2 WORDs	last login time
 72h  2 WORDs	account expiration date (MSDOS-format year/month:day)
 76h  2 WORDs	password expiration date (0 = none)
 7Ah	BYTE	number of days to extend password after change (1-31)
00h if no extension required
---v3.x---
 7Bh  5 BYTEs	reserved
---v4.x---
 7Bh	BYTE	storage for first letter of user name when deleted (first
character is changed to 00h when deleting account)
 7Ch	BYTE	extended privileges
 7Dh  3 BYTEs	reserved


message buffer:

Size	Description
 00h	BYTE	reserved
 01h	BYTE	message type
00h general
01h server warning
02h-7Fh reserved
80h-FFh user-defined
 02h 16 BYTEs	ASCIZ destination machine name
 12h 16 BYTEs	ASCIZ server name which user must be logged into
 22h 16 BYTEs	ASCIZ user name
 32h 16 BYTEs	ASCIZ originating machine name (filled in when received)
 42h 80 BYTEs	message text


queue entry:

Size	Description
 00h	BYTE	status of entry
00h empty
01h being updated
02h being held
03h waiting for despool
04h being despooled
05h canceled
06h spooled file could not be accessed
07h destination could not be accessed
08h rush job
 01h	DWORD	size of spooled file
 05h	BYTE	type of entry
00h printer queue file
01h message
02h local file
03h remote file
04h to remote modem
05h batch processor file
 06h	BYTE	output control
bit 6: don't delete (for mail)
bit 5: mail file contains voice mail (v3+)
bit 4: mail message has been read
bit 3: response has been requested for this mail
 07h	WORD	number of copies
 09h	DWORD	sequence number of queue entry
 0Dh 48 BYTEs	pathname of spooled file
 3Dh 16 BYTEs	user who spooled file
 4Dh 16 BYTEs	name of machine from which file was spooled
 5Dh	WORD	date file was spooled (see AX=5700h)
 5Fh	WORD	time file was spooled (see AX=5700h)
 61h 17 BYTEs	ASCIZ destination device or user name
 72h 48 BYTEs	comment field


printer status:

Size	Description
 00h	BYTE	printer state
bit 7: printer paused
bits 0-6: 0 printer disabled
  1 will stop at end of job
  2 print multiple jobs
 01h	WORD	queue index of print job being despooled
FFFFh if not despooling--ignore all following fields
 03h	WORD	actual characters per second being output
 05h	DWORD	number of characters actually output so far
 09h	DWORD	number of bytes read from spooled file so far
 0Dh	WORD	copies remaining to print


stream information:

Size	Description
 00h	BYTE	queueing of jobs for logical printer (0=disabled,other=enabled)
 01h 11 BYTEs	logical printer resource template (may contain ? wildcards)


active user entry:

Size	Description
 00h	WORD	virtual circuit number
 02h	BYTE	login state
bit 0: fully logged in
    1: remote program load login
    2: user has system manager privileges
    3: user can create audit entries
    4: bypass mail protection
    5: treat as local process
    6: bypass queue protection
    7: bypass access control lists
 03h	BYTE	last command issued (see below)
 04h  5 BYTEs	number of I/O bytes (40-bit unsigned number)
 09h  3 BYTEs	number of server requests (24-bit unsigned)
 0Ch 16 BYTEs	name of user who is logged in
 1Ch 16 BYTEs	name of remote logged in machine
 2Ch	BYTE	extended privileges (v4+???)
bit 0: user cannot change his password
 2Dh	WORD	time left in minutes (0000h = unlimited) (v4+???)


time block:

Size	Description
 00h	WORD	year
 02h	BYTE	day
 03h	BYTE	month
 04h	BYTE	minutes
 05h	BYTE	hour
 06h	BYTE	hundredths of second
 07h	BYTE	second


lead byte table entry:

Size	Description
 00h  2 BYTEs	low/high ends of a range of leading byte of double-byte chars
 02h  2 BYTEs	low/high ends of a range of leading byte of double-byte chars
...
  N   2 BYTEs	00h,00h end flag


DBCS table:

Size	Description
 00h  2 BYTEs	low/high ends of a range of leading byte of double-byte chars
 02h  2 BYTEs	low/high ends of a range of leading byte of double-byte chars
...
  N   2 BYTEs	00h,00h end flag


country information:

Size	Description
 00h	BYTE	info ID
---if info ID = 01h---
 01h	WORD	size
 03h	WORD	country ID
 05h	WORD	code page
 07h 34 BYTEs	country-dependent info (see AH=38h)
---if info ID = 02h---
 01h	DWORD	pointer to uppercase table (see below)
---if info ID = 04h---
 01h	DWORD	pointer to filename uppercase table (see below)
---if info ID = 05h---
 01h	DWORD	pointer to filename character table (see below)
---if info ID = 06h---
 01h	DWORD	pointer to collating table (see below)
---if info ID = 07h (DOS 4+)---
 01h	DWORD	pointer to DBCS lead byte table (see below)


uppercase table:

Size	Description
 00h	WORD	table size
 02h 128 BYTEs	uppercase equivalents (if any) of chars 80h to FFh


collating table:

Size	Description
 00h	WORD	table size
 02h 256 BYTEs	values used to sort characters 00h to FFh


filename terminator table:

Size	Description
 00h	WORD	table size (not counting this word)
 02h	BYTE	??? (01h for MSDOS 3.30-5.00)
 03h	BYTE	lowest permissible character value for filename
 04h	BYTE	highest permissible character value for filename
 05h	BYTE	??? (00h for MSDOS 3.30-5.00)
 06h	BYTE	first excluded character in range \ all characters in this
 07h	BYTE	last excluded character in range  / range are illegal
 08h	BYTE	??? (02h for MSDOS 3.30-5.00)
 09h	BYTE	number of illegal (terminator) characters
 0Ah  N BYTES	characters which terminate a filename:	."/\[]:|<>+=;,
Note:	partially documented for DOS 5.0, but undocumented for earlier versions


filename uppercase table:

Size	Description
 00h	WORD	table size
 02h 128 BYTEs	uppercase equivalents (if any) of chars 80h to FFh


DBCS lead byte table:

Size	Description
 00h	WORD	length
 02h 2N BYTEs	start/end for N lead byte ranges
WORD	0000h	(end of table)


disk info:

Size	Description
 00h	WORD	info level (zero)
 02h	DWORD	disk serial number (binary)
 06h 11 BYTEs	volume label or "NO NAME    " if none present
 11h  8 BYTEs	(AL=00h only) filesystem type--string "FAT12   " or "FAT16   "


data structure:

Type	Description
 00h	WORD	hour
 02h	WORD	minute
 04h	WORD	second
 06h	WORD	day
 08h	WORD	month
 0Ah	WORD	year
 0Ch	WORD	???
 0Eh	WORD	relative barometric pressure (in 1/100 inches)
 10h	WORD	???
 12h	WORD	???
 14h	WORD	temperature 1 (in 1/10 degrees F)
 16h	WORD	temperature 1 lowest (in 1/10 degrees F)
 18h	WORD	temperature 1 highest (in 1/10 degrees F)
 1Ah	WORD	temperature 2 (in 1/10 degrees F)
 1Ch	WORD	temperature 2 lowest (in 1/10 degrees F)
 1Eh	WORD	temperature 2 highest (in 1/10 degrees F)
 20h	WORD	wind speed (in MPH)
 22h	WORD	average of 60 wind speed samples (in MPH)
 24h	WORD	highest wind speed (in MPH)
 26h	WORD	wind chill factor  (in 1/10 degrees F)
 28h	WORD	lowest wind chill factor (in 1/10 degrees F)
 2Ah	WORD	???
 2Ch	WORD	wind direction (in degrees)
 2Eh	WORD	accumulated daily rainfall (in 1/10 inches)
 30h	WORD	accumulated annual rainfall (in 1/10 inches)


translate tables:

Size	Description
 00h 256 BYTEs	ASCII to 3270 buffer code translate table
100h 256 BYTEs	3270 buffer code to ASCII translate table
200h 256 BYTEs	3270 buffer code to EBCDIC translate table
300h 256 BYTEs	EBCDIC to 3270 buffer code translate table


capture flags table:

Size	Description
 00h	BYTE	status (used internally, should be set to 00h)
 01h	BYTE	print flags
bit 2: print capture file if interrupted by loss of connection
    3: no automatic form feed after print job
    6: printing control sequences interpreted by print service
    7: print banner page before capture file
 02h	BYTE	tab size (01h-12h, default 08h)
 03h	BYTE	printer number on server (00h-04h, default 00h)
 04h	BYTE	number of copies to print (00h-FFh, default 01h)
 05h	BYTE	form type required in printer (default 00h)
 06h	BYTE	reserved
 07h 13 BYTEs	text to be placed on banner page
 14h	BYTE	reserved
 15h	BYTE	default local printer (00h = LPT1)
 16h	WORD	timeout in clock ticks for flushing capture file on inactivity
(big-endian)
0000h = never timeout
 18h	BYTE	flush capture file on LPT close if nonzero
 19h	WORD	maximum lines per page (big-endian)
 1Bh	WORD	maximum characters per line (big-endian)
 1Dh 13 BYTEs	name of form required in printer
 2Ah	BYTE	LPT capture flag
00h inactive, FFh LPT device is being captured
 2Bh	BYTE	file capture flag
00h if no file specified, FFh if capturing to file
 2Ch	BYTE	timing out (00h if no timeout in effect, FFh if timeout counter
running)
 2Dh	DWORD	address of printer setup string (big-endian)
 31h	DWORD	address of printer reset string (big-endian)
 35h	BYTE	target connection ID
 36h	BYTE	capture in progress if FFh
 37h	BYTE	job queued for printing if FFh
 38h	BYTE	print job valid if FFh
 39h	DWORD	bindery object ID of print queue if previous byte FFh
 3Dh	WORD	print job number (1-999) `````(big-endian)


reply buffer:

Size	Description
 00h	WORD	sectors/block
 02h	WORD	total blocks on volume
 04h	WORD	unused blocks
 06h	WORD	total directory entries
 08h	WORD	unused directory entries
 0Ah 16 BYTEs	volume name, null padded
 1Ah	WORD	removable flag, 0000h = not removable
Note:	all words are big-endian


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	06h (subfunction "Get Printer Status")
 03h	BYTE	printer number (00h-04h)


reply buffer:

Size	Description
 00h	WORD	(call) 0004h (size of following results buffer)
 02h	BYTE	flag: 00h printer active, FFh printer halted
 03h	BYTE	flag: 00h printer online, 01h printer offline
 04h	BYTE	current form type
 05h	BYTE	target printer number (00h-04h)
same as number in request buffer unless rerouted by server
console


request buffer:

Size	Description
 00h	WORD	length of following data (max 102h)
 02h	BYTE	09h (subfunction "Specify Capture File")
 03h	BYTE	directory handle or 00h
 04h	BYTE	length of filename
 05h  N BYTEs	name of capture file


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 9Eh)
 02h	BYTE	00h (subfunction "Send Broadcast Message")
 03h	BYTE	number of connections (01h-64h)
 04h  N BYTEs	list of connections to receive broadcast message
BYTE	length of message (01h-37h)
      N BYTEs	broadcast message (no control characters or characters > 7Eh)


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of per-connection results
00h successful
FCh message rejected due to lack of buffer space
FDh invalid connection number
FFh blocked (see also AH=E1h/SF=02h)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	01h (subfunction "Get Broadcast Message")


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 38h)
 02h	BYTE	length of message (00h-37h)
00h if no broadcast messages pending
 03h  N BYTEs	message (no control characters or characters > 7Eh)


request buffer:

Size	Description
 00h	WORD	length of following data (max 9Eh)
 02h	BYTE	subfunction
02h disable station broadcasts
03h enable station broadcasts
 03h	???


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer
 02h	???


request buffer:

Size	Description
 00h	WORD	length of following data (max E5h)
 02h	BYTE	04h (subfunction "Send Personal Message")
 03h	BYTE	number of connections (01h-64h)
 04h  N BYTEs	list of connections to receive broadcast message
BYTE	length of message (01h-7Eh)
      N BYTEs	message (no control characters or characters > 7Eh)


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of per-connection results
00h successful
FCh message rejected because queue is full (contains 6 msgs)
FDh incomplete pipe
FFh failed


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	05h (subfunction "Get Personal Message")


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 80h)
 02h	BYTE	connection number of sending station
 03h	BYTE	length of message (00h-7Eh)
00h if no personal messages pending
 04h  N BYTEs	message (no control characters or characters > 7Eh)


request buffer:

Size	Description
 00h	WORD	length of following data (max 66h)
 02h	BYTE	06h (subfunction "Open Message Pipe")
 03h	BYTE	number of pipes to open (01h-64h)
 04h  N BYTEs	list of connection numbers


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of results
00h successful
FEh incomplete (target half not yet created)
FFh failed


request buffer:

Size	Description
 00h	WORD	length of following data (max 66h)
 02h	BYTE	07h (subfunction "Close Message Pipe")
 03h	BYTE	number of pipes to close (01h-64h)
 04h  N BYTEs	list of connection numbers


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of results
00h successful
FDh failed
FFh no such pipe


request buffer:

Size	Description
 00h	WORD	length of following data (max 66h)
 02h	BYTE	08h (subfunction "Check Pipe Status")
 03h	BYTE	number of pipes to monitor (01h-64h)
 04h  N BYTEs	list of connection numbers


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of pipe statuses
00h open
FEh incomplete
FFh closed


request buffer:

Size	Description
 00h	WORD	length of following data (max 3Eh)
 02h	BYTE	09h (subfunction "Broadcast to Console")
 03h	BYTE	length of message (01h-3Ch)
 04h  N BYTEs	message (no control characters or characters > 7Eh)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 103h)
 02h	BYTE	00h (subfunction "Set Directory Handle")
 03h	BYTE	directory handle of target
 04h	BYTE	directory handle of source
 05h	BYTE	length of source directory path (01h-FFh)
 06h  N BYTEs	source directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	01h (subfunction "Get Directory Path")
 03h	BYTE	directory handle


reply buffer:

Size	Description
 00h	WORD	(call) length of following data buffer
 02h	BYTE	length of directory path (01h-FFh)
 03h  N BYTEs	full directory path including volume


request buffer:

Size	Description
 00h	WORD	length of following data (max 104h)
 02h	BYTE	02h (subfunction "Scan Directory Information")
 03h	BYTE	directory handle
 04h	WORD	subdirectory number (big-endian)
0000h for first call, returned subdir number + 1 on next call
 06h	BYTE	length of directory path
 07h  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 001Ch (length of following data buffer)
 02h 16 BYTEs	subdirectory name
 12h	DWORD	date and time of creation (big-endian) (see below)
 16h	DWORD	object ID of owner (bid-endian)
 1Ah	BYTE	maximum directory rights (see AH=E2h/SF=03h)
 1Bh	BYTE	unused
 1Ch	WORD	subdirectory number (big-endian)


request buffer:

Size	Description
 00h	WORD	length of following data (max 102h)
 02h	BYTE	03h (subfunction "Get Effective Directory Rights")
 03h	BYTE	directory handle
 04h	BYTE	length of directory path (00h-FFh)
 05h  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0001h (length of following data buffer)
 02h	BYTE	effective directory rights (see below)


request buffer:

Size	Description
 00h	WORD	length of following data (max 104h)
 02h	BYTE	04h (subfunction "Modify Maximum Rights Mask")
 03h	BYTE	directory handle
 04h	BYTE	rights to grant (see AH=E2h/SF=03h)
 05h	BYTE	rights to revoke (see AH=E2h/SF=03h)
 06h	BYTE	length of directory path (00h-FFh)
 07h  N BYTEs	directory path
Note:	the rights specified at offset 05h are revoked first, and then the
  rights specified at offset 04h are added to the resulting rights
  mask


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 12h)
 02h	BYTE	05h (subfunction "Get Volume Number")
 03h	BYTE	length of volume name (01h-10h)
 04h  N BYTEs	volume name


reply buffer:

Size	Description
 00h	WORD	(call) 0001h (length of following results buffer)
 02h	BYTE	volume number


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	06h (subfunction "Get Volume Name")
 03h	BYTE	volume number


reply buffer:

Size	Description
 00h	WORD	(call) 0011h (length of following results buffer)
 02h	BYTE	length of volume name
 03h 16 BYTEs	NUL-padded volume name


request buffer:

Size	Description
 00h	WORD	length of following data (max 103h)
 02h	BYTE	0Ah (subfunction "Create Directory")
 03h	BYTE	directory handle
 04h	BYTE	maximum directory rights (see AH=E2h/SF=01h)
 05h	BYTE	length of directory path (00h-FFh)
 06h  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 103h)
 02h	BYTE	0Bh (subfunction "Delete Directory")
 03h	BYTE	directory handle
 04h	BYTE	unused
 05h	BYTE	length of directory path (00h-FFh)
 06h  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 103h)
 02h	BYTE	0Ch (subfunction "Scan Directory For Trustees")
 03h	BYTE	directory handle
 04h	BYTE	sequence number
00h on first call, increment for each subsequent call
 05h	BYTE	length of directory path (00h-FFh)
 06h  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0031h (length of following results buffer)
 02h 16 BYTEs	directory name
 12h  4 BYTEs	date and time of creation
 16h	DWORD	object ID of owner (big-endian)
 1Ah  5 DWORDs	object IDs of Trustees 0 through 4 (big-endian)
00000000h = end of group
 2Eh  5 BYTEs	directory rights for Trustees 0 through 4 (see AH=E2h/SF=03h)


request buffer:

Size	Description
 00h	WORD	length of following data (max 107h)
 02h	BYTE	0Dh (subfunction "Add Trustee To Directory")
 03h	BYTE	directory handle
 04h	DWORD	object ID of trustee (big-endian)
 08h	BYTE	trustee directory rights (see AH=E2h/SF=01h)
 09h	BYTE	length of directory path (00h-FFh)
 0Ah  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 107h)
 02h	BYTE	0Eh (subfunction "Delete Trustee From Directory")
 03h	BYTE	directory handle
 04h	DWORD	object ID of trustee (big-endian)
 08h	BYTE	unused
 09h	BYTE	length of directory path (00h-FFh)
 0Ah  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 111h)
 02h	BYTE	0Fh (subfunction "Rename Directory")
 03h	BYTE	directory handle
 04h	BYTE	length of directory path (00h-FFh)
 05h  N BYTEs	directory path
BYTE	length of new directory name (01h-0Eh)
      N BYTEs	new directory name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	10h (subfunction "Purge Erased Files")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 13h)
 02h	BYTE	11h (subfunction "Restore Erased File")
 03h	BYTE	directory handle or 00h
 04h	BYTE	length of volume name
 05h  N BYTEs	volume name (including colon)
Note:	if both a directory handle and a volume name are specified, the volume
  name overrides the handle


reply buffer:

Size	Description
 00h	WORD	(call) 001Eh (size of following results buffer)
 02h 15 BYTEs	ASCIZ name of erased file
 11h 15 BYTEs	ASCIZ name under which file was restored


request buffer:

Size	Description
 00h	WORD	length of following data (max 103h)
 02h	BYTE	12h (subfunction "Alloc Permanent Directory Handle")
 03h	BYTE	directory handle
 04h	BYTE	drive ('A'-'Z')
 05h	BYTE	length of directory path
 06h  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0002h (size of following results buffer)
 02h	BYTE	new directory handle
 03h	BYTE	effective directory rights (see AH=E2h/SF=01h)


request buffer:

Size	Description
 00h	WORD	length of following data (max 103h)
 02h	BYTE	13h (subfunction "Alloc Temporary Directory Handle")
 03h	BYTE	directory handle
 04h	BYTE	drive ('A'-'Z')
 05h	BYTE	length of directory path
 06h  N BYTEs	directory path


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	14h (subfunction "Deallocate Directory Handle")
 03h	BYTE	directory handle


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no returned data)


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	15h (subfunction "Get Volume Info With Handle")
 03h	BYTE	directory handle


reply buffer:

Size	Description
 00h	WORD	(call) 001Ch (length of following results buffer)
 02h	WORD	sectors per block (big-endian)
 04h	WORD	total blocks on volume (big-endian)
 06h	WORD	blocks available on volume (big-endian)
 08h	WORD	total directory slots  (big-endian)
 0Ah	WORD	directory slots available (big-endian)
 0Ch 16 BYTEs	NUL-padded volume name
 1Ch	WORD	flag: volume removable if nonzero (big-endian)


request buffer:

Size	Description
 00h	WORD	length of following data
 02h	BYTE	16h (subfunction "Allocate Special Temporary Directory Handle")
???


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	18h (subfunction "Restore Directory Handle")
 03h	BYTE	directory handle


reply buffer:

Size	Description
 00h	WORD	(call) 0010h (length of following results buffer)
 02h 16	BYTEs	save buffer


request buffer:

Size	Description
 00h	WORD	0011h (length of following data)
 02h	BYTE	18h (subfunction "Restore Directory Handle")
 03h 16 BYTEs	save buffer


reply buffer:

Size	Description
 00h	WORD	(call) 0002h (length of following results buffer)
 02h	BYTE	new directory handle
 03h	BYTE	effective rights (see AH=E2h/SF=03h)


request buffer:

Size	Description
 00h	WORD	length of following data (max 10Bh)
 02h	BYTE	19h (subfunction "Set Directory Information")
 03h	BYTE	directory handle
 04h	DWORD	date and time of creation (big-endian)
 08h	DWORD	object ID of owner (big-endian)
 0Ch	BYTE	maximum directory rightes (see AH=E2h/SF=03h)
 0Dh	BYTE	length of directory path
 0Eh  N BYTEs	directory path


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0004h (length of following data)
 02h	BYTE	1Ah (subfunction "Get Path From Directory Entry")
 03h	BYTE	volume number (00h-1Fh)
 04h	WORD	directory entry number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 200h)
 02h 256 BYTEs	path


request buffer:

Size	Description
 00h	WORD	length of following data
 02h	BYTE	subfunction number
00h login
01h change password
02h map user to station set
03h map object to number
04h map number to object
05h get station's logged information
06h get station's root mask (obsolete)
07h map group name to number
08h map number to group name
09h get memberset M of group G
var	depends on subfunction
Notes:	the above subfunctions are not described in _NetWare_System_Calls--DOS_
see separate entries below for other subfunctions


reply buffer:

Size	Description
 00h	WORD	(call) length of following buffer space for results
var	depends on subfunction


object property:

Size	Description
 00h 1-16 BYTEs	property name
  N	BYTE	flags
bit 0: property is dynamic
bit 1: property is a set rather than an item
 N+1	BYTE	security levels (see below)
???


request buffer:

Size	Description
 00h	WORD	length of following data (max 102h)
 02h	BYTE	0Ah (subfunction "Enter Login Area")
 03h	BYTE	number of local drives
 04h	BYTE	length of subdirectory name (00h-FFh)
 05h  N BYTEs	name of subdirectory under SYS:LOGIN where to find the login
utility


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 52h)
 02h	BYTE	0Dh (subfunction "Log Network Message")
 03h	BYTE	length of message (01h-50h)
 04h  N BYTEs	message (no control characters or characters > 7Eh)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	0Eh (subfunction "Get Disk Utilization")
 03h	BYTE	volume number (00h-1Fh)
 04h	DWORD	object ID (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 000Bh (size of following results buffer)
 02h	BYTE	volume number (00h-1Fh)
 03h	DWORD	object ID (big-endian)
 07h	WORD	directories used by object (big-endian)
 09h	WORD	files created by object (big-endian)
 0Bh	WORD	disk blocks used by object-created files (big-endian)


request buffer:

Size	Description
 00h	WORD	length of following data (max 105h)
 02h	BYTE	0Fh (subfunction "Scan File Information")
 03h	WORD	sequence number (big-endian)
FFFFh on first call
 05h	BYTE	directory handle or 00h
 06h	BYTE	search attributes (see AX=4301h)
 07h	BYTE	length of filespec
 08h  N BYTEs	ASCIZ uppercase filespec


reply buffer:

Size	Description
 00h	WORD	(call) 005Eh (size of following results buffer)
 02h	WORD	next sequence number (place in request buffer for next call)
 04h 15 BYTEs	ASCIZ filename
 13h	BYTE	file attributes (see AX=4301h for format)
 14h	BYTE	extended file attributes (see AH=B6h for format)
 15h	DWORD	file size in bytes (big-endian)
 19h	WORD	file's creation date (big-endian) (see AX=5700h for format)
 1Bh	WORD	date of last access (big-endian) (see AX=5700h for format)
 1Dh	DWORD	date and time of last update (big-endian) (see AH=E2h/SF=02h)
 21h	DWORD	object ID of owner (big-endian)
 25h	DWORD	date and time last archived (big-endian) (see AH=E2h/SF=02h)
 29h 55 BYTEs	reserved


request buffer:

Size	Description
 00h	WORD	length of following data (max 151h)
 02h	BYTE	10h (subfunction "Set File Information")
 03h	BYTE	file attributes (see AX=4301h for format)
 04h	BYTE	extended file attributes (see AH=B6h for format)
 05h  4 BYTEs	reserved
 09h	WORD	file's creation date (big-endian) (see AX=5700h for format)
 0Bh	WORD	date of last access (big-endian) (see AX=5700h for format)
 0Dh	DWORD	date and time of last update (big-endian) (see AH=E2h/SF=02h)
 11h	DWORD	object ID of owner (big-endian)
 15h	DWORD	date and time last archived (big-endian) (see AH=E2h/SF=02h)
 19h 56 BYTEs	reserved
 51h	BYTE	directory handle or 00h
 52h	BYTE	search attributes (see AX=4301h for format)
 53h	BYTE	length of filename
 54h  N BYTEs	filename


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	11h (subfunction "Get File Server Information")


reply buffer:

Size	Description
 00h	WORD	(call) 0080h (size of following results buffer)
 02h 48 BYTEs	server's name
 32h	BYTE	NetWare version
 33h	BYTE	NetWare subversion (0-99)
 34h	WORD	number of connections supported (big-endian)
 36h	WORD	number of connections in use (big-endian)
 38h	WORD	maximum connected volumes (big-endian)
---Advanced NetWare 2.1+ ---
 3Ah	BYTE	operating system revision number
 3Bh	BYTE	fault tolerance (SFT) level
 3Ch	BYTE	TTS level
 3Dh	WORD	maximum simultaneously-used connections (big-endian)
 3Fh	BYTE	accounting version
 40h	BYTE	VAP version
 41h	BYTE	queueing version
 42h	BYTE	print server version
 43h	BYTE	virtual console version
 44h	BYTE	security restrictions level
 45h	BYTE	internetwork bridge version
 46h 60 BYTEs	reserved


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	13h (subfunction "Get Internet Address")
 03h	BYTE	logical connection number (01h-64h)


reply buffer:

Size	Description
 00h	WORD	(call) 000Ch (length of following results buffer)
 02h  4 BYTEs	network number
 06h  6 BYTEs	physical node address
 0Ch  2 BYTEs	socket number


request buffer:

Size	Description
 00h	WORD	length of following data (max B3h)
 02h	BYTE	14h (subfunction "Login To File Server")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
BYTE	length of password
      N BYTEs	password


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 33h)
 02h	BYTE	15h (subfunction "Get Object Connection Numbers")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name


reply buffer:

Size	Description
 00h	WORD	(call) length of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	connection list


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	16h (subfunction "Get Connection Information")
 03h	BYTE	logical connection number (01h-64h)


reply buffer:

Size	Description
 00h	WORD	(call) 003Dh (length of following results buffer)
 02h	DWORD	object ID for object logged in on the connection (big-endian)
00000000h if no object logged in
 06h	WORD	type of object (big-endian)
 08h 48 BYTEs	name of object
 38h  7 BYTEs	login time (see below)


login time:

Size	Description
 00h	BYTE	year (80-99 = 1980-1999, 00-79 = 2000-2079)
 01h	BYTE	month (1-12)
 02h	BYTE	day (1-31)
 03h	BYTE	hour (0-23)
 04h	BYTE	minute (0-59)
 05h	BYTE	second (0-59)
 06h	BYTE	day of week (0 = Sunday)


request buffer:

Size	Description
 00h	WORD	length of following data (max 35h)
 02h	BYTE	32h (subfunction "Create Bindery Object")
 03h	BYTE	object flag
00h static
01h dynamic
 04h	BYTE	object security levels
 05h	WORD	type of object (big-endian)
 07h	BYTE	length of object's name
 08h  N BYTEs	object's name


reply buffer:

Size	Description
 00h	WORD	0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 33h)
 02h	BYTE	33h (subfunction "Delete Bindery Object")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 63h)
 02h	BYTE	34h (subfunction "Rename Bindery Object")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
BYTE	length of new name (01h-2Fh)
      N BYTEs	new name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 33h)
 02h	BYTE	35h (subfunction "Get Bindery Object ID")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name
 06h  N BYTEs	object's name


reply buffer:

Size	Description
 00h	WORD	(call) 0036h (length of following buffer space)
 02h	DWORD	object ID (big-endian)
 06h	WORD	type of object (big-endian)
 08h 48 BYTEs	object name


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	36h (subfunction "Get Bindery Object Name")
 03h	DWORD	object ID (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0036h (length of following buffer space)
 02h	DWORD	object ID (big-endian)
 06h	WORD	type of object (big-endian)
 08h 48 BYTEs	object name


request buffer:

Size	Description
 00h	WORD	length of following data (max 37h)
 02h	BYTE	37h (subfunction "Scan Bindery Object")
 03h	DWORD	last object ID (big-endian)
 07h	WORD	type of object (big-endian)
 09h	BYTE	length of object's name
 0Ah  N BYTEs	object's name


reply buffer:

Size	Description
 00h	WORD	(call) 0039h (length of following buffer space)
 02h	DWORD	object ID (big-endian)
FFFFFFFFh for first call
 06h	WORD	type of object (big-endian)
 08h	BYTE	length of object's name (01h-2Fh)
 09h  N BYTEs	object name
BYTE	object flag (00h static, 01h dynamic)
BYTE	object's security levels
BYTE	object properties flag (00h no, FFh yes)


request buffer:

Size	Description
 00h	WORD	length of following data (max 34h)
 02h	BYTE	38h (subfunction "Change Bindery Object Security")
 03h	BYTE	new security levels
 04h	WORD	type of object (big-endian)
 06h	BYTE	length of object's name (01h-2Fh)
 07h  N BYTEs	object name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 45h)
 02h	BYTE	39h (subfunction "Create Property")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
BYTE	property flags
BYTE	property security levels
BYTE	length of property's name (01h-0Fh)
      N BYTEs	property's name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 43h)
 02h	BYTE	3Ah (subfunction "Delete Property")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
BYTE	length of property's name (01h-0Fh)
      N BYTEs	property's name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 44h)
 02h	BYTE	3Bh (subfunction "Change Property Security")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
BYTE	new property security levels
BYTE	length of property's name
      N BYTEs	property name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 47h)
 02h	BYTE	3Ch (subfunction "Scan Property")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
DWORD	sequence number (big-endian)
FFFFFFFFh for first call
BYTE	length of property's name (01h-0Fh)
      N BYTEs	property's name


reply buffer:

Size	Description
 00h	WORD	(call) 0018h (length of following results buffer)
 02h 16 BYTEs	property name
 12h	BYTE	property flags
 13h	BYTE	property security levels
 14h	DWORD	sequence number (big-endian)
 18h	BYTE	property value flag (00h no, FFh yes)
 19h	BYTE	more properties (00h no, FFh yes)


request buffer:

Size	Description
 00h	WORD	length of following data (max 44h)
 02h	BYTE	3Dh (subfunction "Read Property Value")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
BYTE	segment number (01h on first call, increment until done)
BYTE	length of property's name (01h-0Fh)
      N BYTEs	property name


reply buffer:

Size	Description
 00h	WORD	(call) 0082h (length of following results buffer)
 02h 128 BYTEs	property's value
 82h	BYTE	more segments (00h no, FFh yes)
 83h	BYTE	property's flags


request buffer:

Size	Description
 00h	WORD	length of following data (max C5h)
 02h	BYTE	3Eh (subfunction "Write Property Value")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
BYTE	segment number (01h on first call, increment until done)
BYTE	erase remaining segments (00h no, FFh yes)
BYTE	length of property's name (01h-0Fh)
      N BYTEs	property name
    128 BYTEs	property value segment


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 133h)
 02h	BYTE	3Fh (subfunction "Verify Bindery Object Password")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
BYTE	length of password (00h-7Fh)
      N BYTEs	password


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 133h)
 02h	BYTE	40h (subfunction "Change Bindery Object Password")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
BYTE	length of old password (00h-7Fh)
      N BYTEs	old password
BYTE	length of new password (00h-7Fh)
      N BYTEs	new password


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 75h)
 02h	BYTE	41h (subfunction "Add Bindery Object to Set")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name
 06h  N BYTEs	object name
BYTE	length of property name (01h-0Fh)
      N BYTEs	property name
WORD	type of member object (big-endian)
BYTE	length of member object's name
      N BYTEs	member object's name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 75h)
 02h	BYTE	42h (subfunction "Delete Bindery Object from Set")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name
 06h  N BYTEs	object name
BYTE	length of property name (01h-0Fh)
      N BYTEs	property name
WORD	type of member object (big-endian)
BYTE	length of member object's name
      N BYTEs	member object's name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 75h)
 02h	BYTE	43h (subfunction "Is Bindery Object In Set")
 03h	WORD	type of object (big-endian)
 05h	BYTE	length of object's name
 06h  N BYTEs	object's name
BYTE	length of property's name
      N BYTEs	property's name
WORD	type of member object (big-endian)
BYTE	length of member object's name
      N BYTEs	member object's name


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	44h (subfunction "Close Bindery")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	45h (subfunction "Open Bindery")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	46h (subfunction "Get Bindery Access Level")


reply buffer:

Size	Description
 00h	WORD	0005h (length of following buffer)
 02h	BYTE	security levels
 03h	DWORD	object ID (big-endian)


request buffer:

Size	Description
 00h	WORD	0008h (length of following data)
 02h	BYTE	47h (subfunction "Scan Bindery Object Trustee Paths")
 03h	BYTE	volume number (00h-1Fh)
 04h	WORD	last sequence number (big-endian)
00h on first call
 06h	DWORD	object ID (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) length of following results buffer (max 107h)
 02h	WORD	next sequence number (big-endian)
 04h	DWORD	object ID (big-endian)
 08h	BYTE	trustee directory rights (see AH=E2h/SF=03h)
 09h	BYTE	length fo trustee path
 0Ah  N BYTEs	trustee path


request buffer:

Size	Description
 00h	WORD	length of following data (max ABh)
 02h	BYTE	64h (subfunction "Create Queue")
 03h	WORD	queue type (big-endian)
 05h	BYTE	length of queue's name (01h-2Fh)
 06h  N BYTEs	queue's name
BYTE	directory handle or 00h
BYTE	length of path name (01h-76h)
      N BYTEs	path name of directory in which to create queue subdirectory


reply buffer:

Size	Description
 00h	WORD	(call) 0004h (size of following results buffer)
 02h	DWORD	object ID of queue (big-endian)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	65h (subfunction "Destroy Queue")
 03h	DWORD	object ID of queue (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	66h (subfunction "Read Queue Current Status")
 03h	DWORD	object ID of queue (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0085h (size of following results)
 02h	DWORD	object ID of queue (big-endian)
 06h	BYTE	status of queue
bit 0: operator disabled addition of new jobs
bit 1: operator refuses additional job servers attaching
bit 2: operator disabled job servicing
 07h	BYTE	number of jobs in queue (00h-FAh)
 08h	BYTE	number of servers attached to queue (00h-19h)
 09h 25 DWORDs	list of object IDs of attached servers
 6Dh 25 BYTEs	list of attached servers' stations
 86h	BYTE	(call) maximum number of servers to return


request buffer:

Size	Description
 00h	WORD	0006h (length of following data)
 02h	BYTE	67h (subfunction "Set Queue Current Status")
 03h	DWORD	object ID of queue (big-endian)
 07h	BYTE	queue status
bit 0: operator disabled addition of new jobs
bit 1: operator refuses additional job servers attaching
bit 2: operator disabled job servicing


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0107h (length of following data)
 02h	BYTE	68h (subfunction "Close File and Start Queue Job")
 03h	DWORD	object ID of queue (big-endian)
 07h	BYTE	client station
 08h	BYTE	client task number
 09h	DWORD	object ID of client (big-endian)
 0Dh	DWORD	object ID of target server (big-endian)
FFFFFFFh if any server acceptable
 11h  6 BYTEs	target execution time (year,month,day,hour,minute,second)
FFFFFFFFFFFFh to execute as soon as possible
 17h  6 BYTEs	job entry time (year,month,day,hour,minute,second)
 1Dh	WORD	job number (big-endian)
 1Fh	WORD	job type (big-endian)
 21h	BYTE	job position
 22h	BYTE	job control flags
 23h 14 BYTEs	ASCIZ job file name
 31h  6 BYTEs	job file handle
 37h	BYTE	server station
 38h	BYTE	server task number
 39h	DWORD	object ID of server (big-endian)
 3Dh 50 BYTEs	ASCIZ job description string
 6Fh 152 BYTEs	client record area


reply buffer:

Size	Description
 00h	WORD	(call) 0036h (size of following results buffer)
 02h	BYTE	client station
 03h	BYTE	client task number
 04h	DWORD	object ID of client (big-endian)
 08h	DWORD	object ID of target server (big-endian)
 0Ch  6 BYTEs	target execution time (year,month,day,hour,minute,second)
 12h  6 BYTEs	job entry time (year,month,day,hour,minute,second)
 18h	WORD	job number (big-endian)
 1Ah	WORD	job type (big-endian)
 1Ch	BYTE	job position
 1Dh	BYTE	job control flags
 1Eh 14 BYTEs	ASCIZ job file name
 2Ch  6 BYTEs	job file handle
 32h	BYTE	server station
 33h	BYTE	server task number
 34h	DWORD	object ID of server or 00000000h (big-endian)


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	69h (subfunction "Close File and Start Queue Job")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	6Ah (subfunction "Remove Job From Queue")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	6Bh (subfunction "Get Queue Job List")
 03h	DWORD	object ID of queue (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 1F6h)
 02h	WORD	job count (big-endian)
 04h  N WORDs	list of job numbers by position in queue (big-endian)
WORD	maximum job numbers


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	6Ch (subfunction "Read Queue Job Entry")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0100h (size of following results)
 02h	BYTE	client station number
 03h	BYTE	client task number
 04h	DWORD	object ID of client
 08h	DWORD	object ID of target server (big-endian)
FFFFFFFFh if any server acceptable
 0Ch  6 BYTEs	target execution time (year,month,day,hour,minute,second)
FFFFFFFFFFFFh if serviced as soon as possible
 12h  6 BYTEs	job entry time (year,month,day,hour,minute,second)
 18h	WORD	job number (big-endian)
 1Ah	WORD	job type (big-endian)
 1Ch	BYTE	job position
 1Dh	BYTE	job control flags
bit 3: job will be serviced automatically if connection broken
bit 4: job remains in queue after server aborts job
bit 5: client has not filled associated job file
bit 6: User Hold--job advances, but cannot be serviced until
this bit is cleared by user or operator
bit 7: Operator Hold--job advances, but cannot be serviced
until this bit is cleared by an operator
 1Eh 14 BYTEs	ASCIZ job filename
 2Ch  6 BYTEs	job file handle
 32h	BYTE	server station
 33h	BYTE	server task number
 34h	DWORD	object ID of server
 38h 50 BYTEs	ASCIZ job description string
 6Ah 152 BYTEs	client record area


request buffer:

Size	Description
 00h	WORD	0105h (length of following data)
 02h	BYTE	6Dh (subfunction "Change Queue Job Entry")
 03h	DWORD	object ID of queue (big-endian)
 07h	BYTE	client station number
 08h	BYTE	client task number
 09h	DWORD	object ID of client
 0Dh	DWORD	object ID of target server (big-endian)
 11h  6 BYTEs	target execution time (year,month,day,hour,minute,second)
 17h  6 BYTEs	job entry time (year,month,day,hour,minute,second)
 1Dh	WORD	job number (big-endian)
 1Fh	WORD	job type (big-endian)
 21h	BYTE	job position
 22h	BYTE	job control flags
bit 3: job will be serviced automatically if connection broken
bit 4: job remains in queue after server aborts job
bit 5: client has not filled associated job file
bit 6: User Hold--job advances, but cannot be serviced until
this bit is cleared by user or operator
bit 7: Operator Hold--job advances, but cannot be serviced
until this bit is cleared by an operator
 23h 14 BYTEs	ASCIZ job filename
 31h  6 BYTEs	job file handle
 37h	BYTE	server station
 38h	BYTE	server task number
 39h	DWORD	object ID of server
 3Dh 50 BYTEs	ASCIZ job description string
 6Fh 152 BYTEs	client record area


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0008h (length of following data)
 02h	BYTE	6Eh (subfunction "Change Queue Job Position")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)
 09h	BYTE	new position in queue (01h-FAh)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	6Fh (subfunction "Attach Queue Server To Queue")
 03h	DWORD	object ID of queue (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	70h (subfunction "Detach Queue Server From Queue")
 03h	DWORD	object ID of queue (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	71h (subfunction "Service Queue Job and Open File")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	target job type (big-endian)
FFFFh any


request buffer:

Size	Description
 00h	WORD	000Bh (length of following data)
 02h	BYTE	72h (subfunction "Finish Servicing Queue Job and File")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)
 09h	DWORD	charge (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	73h (subfunction "Abort Servicing Queue Job and File")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	74h (subfunction "Change To Client Rights")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	75h (subfunction "Change To Client Rights")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	000Ah (length of following data)
 02h	BYTE	76h (subfunction "Read Queue Server Current Status")
 03h	DWORD	object ID of queue (big-endian)
 07h	DWORD	object ID of server (big-endian)
 0Bh	BYTE	server station


reply buffer:

Size	Description
 00h	WORD	(call) 0040h (size of following results)
 02h 64 BYTEs	server status record (format depends on server)
first four bytes should contain estimated "price" for an
average job


request buffer:

Size	Description
 00h	WORD	0045h (length of following data)
 02h	BYTE	77h (subfunction "Set Queue Server Current Status")
 03h	DWORD	object ID of queue (big-endian)
 02h 64 BYTEs	server status record (format depends on server)
first four bytes should contain estimated "price" for an
average job


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	78h (subfunction "Get Queue Job's File Size")
 03h	DWORD	object ID of queue (big-endian)
 07h	WORD	job number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 000Ah (size of following results)
 02h	DWORD	object ID of queue (big-endian)
 06h	WORD	job number (big-endian)
 08h	DWORD	size of job file in bytes (big-endian)


request buffer:

Size	Description
 00h	WORD	length of following data (max 33h)
 02h	BYTE	96h (subfunction "Get Account Status")
 03h	WORD	type of bindery object (big-endian)
 05h	BYTE	length of object name (01h to 2Fh)
 06h  N BYTEs	object name


reply buffer:

Size	Description
 00h	WORD	(call) length of following buffer space
 02h	DWORD	account balance (big-endian)
 06h	DWORD	credit limit (big-endian)
signed number indicating lowest allowable account balance
 0Ah 120 BYTEs	reserved
 82h	DWORD	object ID, server 1 (big-endian)
 86h	DWORD	hold amount, server 1 (big-endian)
...
 F8h	DWORD	object ID, server 16 (big-endian)
 FCh	DWORD	hold amount, server 16 (big-endian)
Note:	the reply buffer lists the servers which have placed holds on a portion
  of the account balance, and the amount reserved by each


request buffer:

Size	Description
 00h	WORD	length of following data (max 13Fh)
 02h	BYTE	97h (subfunction "Submit Account Charge")
 03h	WORD	service type (big-endian)
 05h	DWORD	amount to be charged to account (big-endian)
 09h	DWORD	amount of prior hold to be cancelled (big-endian)
 0Dh	WORD	type of bindery object (big-endian)
 0Fh	WORD	type of comment (big-endian)
8000h-FFFFh reserved for experimental use
 11h	BYTE	length of object's name
 12h  N BYTEs	object name
BYTE	length of comment
      N BYTEs	comment


reply buffer:

Size	Description
 00h	WORD	0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 37h)
 02h	BYTE	98h (subfunction "Submit Account Hold")
 03h	DWORD	amount of account balance to reserve (big-endian)
 07h	WORD	type of bindery object
 09h	BYTE	length of object's name
 0Ah  N BYTEs	object name


reply buffer:

Size	Description
 00h	WORD	0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max 137h)
 02h	BYTE	99h (subfunction "Submit Account Note")
 03h	WORD	type of service (big-endian)
 05h	WORD	type of bindery object (big-endian)
 07h	WORD	type of comment (big-endian)
8000h-FFFFh reserved for experimental use
 09h	BYTE	length of object's name
 0Ah  N BYTEs	object name
BYTE	length of comment
      N BYTEs	comment


reply buffer:

Size	Description
 00h	WORD	0000h (no data returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	C8h (subfunction "Check Console Privileges")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	C9h (subfunction "Get File Server Description Strings")


reply buffer:

Size	Description
 00h	WORD	(call) 0200h (size of following results buffer)
 02h	var	ASCIZ name of company distributing this copy of NetWare
var	ASCIZ version and revision
      9 BYTEs	ASCIZ revision date (mm/dd/yy)
var	ASCIZ copyright notice


request buffer:

Size	Description
 00h	WORD	0007h (length of following data)
 02h	BYTE	CAh (subfunction "Set File Server Date And Time")
 03h	BYTE	year (00-79 = 2000-2079, 80-99 = 1980-1999)
 04h	BYTE	month (1-12)
 05h	BYTE	day (1-31)
 06h	BYTE	hour (0-23)
 07h	BYTE	minute
 08h	BYTR	second


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	CBh (subfunction "Disable File Server Login")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	CCh (subfunction "Enable File Server Login")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	CDh (subfunction "Get File Server Login Status")


reply buffer:

Size	Description
 00h	WORD	(call) 0001h (size of following results buffer)
 02h	BYTE	login state (00h disabled, 01h enabled)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	CEh (subfunction "Purge All Erased Files")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	CFh (subfunction "Disable Transaction Tracking")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	D0h (subfunction "Enable Transaction Tracking")


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	length of following data (max A2h)
 02h	BYTE	D1h (subfunction "Send Console Broadcast")
 03h	BYTE	number of connections to receive message
00h = all, else specific list below
 04h  N BYTEs	connection list
BYTE	length of message (max 3Ch)
      N BYTEs	message


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	D2h (subfunction "Clear Connection Number")
 03h	BYTE	connection number


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	D3h (subfunction "Down File Server")
 03h	BYTE	flag: force down even if files open if nonzero


reply buffer:

Size	Description
 00h	WORD	(call) 0000h (no results returned)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	D4h (subfunction "Get File System Statistics")


reply buffer:

Size	Description
 00h	WORD	(call) 0028h (size of following results buffer)
 02h	DWORD	clock ticks since system started
 06h	WORD	maximum open files set by configuration
 08h	WORD	maximum files open concurrently
 0Ah	WORD	current number of open files
 0Ch	DWORD	total files opened
 10h	DWORD	total file read requests
 14h	DWORD	total file write requests
 18h	WORD	current changed FATs
 1Ah	WORD	total changed FATs
 1Ch	WORD	number of FAT write errors
 1Eh	WORD	number of fatal FAT write errors
 20h	WORD	number of FAT scan errors
 22h	WORD	maximum concurrently-indexed files
 24h	WORD	current number of indexed files
 26h	WORD	number of attached indexed files
 28h	WORD	number of indexed files available
Note:	all fields except the first are big-endian


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	D5h (subfunction "TTS Get Statistics")


reply buffer:

Size	Description
 00h	WORD	(call) length of following results buffer (max 1BCh)
 02h	DWORD	clock ticks since system started (big-endian)
 06h	BYTE	transaction tracking supported if nonzero
(all following fields are invalid if zero)
 07h	BYTE	transaction tracking enabled
 08h	WORD	transaction volume number (big-endian)
 0Ah	WORD	maximum simultaneous transactions configured (big-endian)
 0Ch	WORD	maximum simultaneous transactions since startup (big-endian)
 0Eh	WORD	current transactions in progress (big-endian)
 10h	DWORD	total transactions performed (big-endian)
 14h	DWORD	total write transactions (big-endian)
 18h	DWORD	total transactions backed out (big-endian)
 1Ch	WORD	number of unfilled backout requests (big-endian)
 1Eh	WORD	disk blocks used for transaction tracking (big-endian)
 20h	DWORD	blocks allocated for tracked-file FATs (big-endian)
 24h	DWORD	number of file size changes during a transaction (big-endian)
 28h	DWORD	number of file truncations during a transaction (big-endian)
 2Ch	BYTE	number of records following
 2Dh	Active Transaction Records [array]
Offset	Size	Description
 00h	BYTE	logical connection number
 01h	BYTE	task number


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	D6h (subfunction "Get Disk Cache Statistics")


reply buffer:

Size	Description
 00h	WORD	(call) 004Eh (length of following results buffer)
 02h	DWORD	clock ticks since system started (big-endian)
 06h	WORD	number of cache buffers (big-endian)
 08h	WORD	size of cache buffer in bytes (big-endian)
 0Ah	WORD	number of dirty cache buffers (big-endian)
 0Ch	DWORD	number of cache read requests (big-endian)
 10h	DWORD	number of cache write requests (big-endian)
 14h	DWORD	number of cache hits (big-endian)
 18h	DWORD	number of cache misses (big-endian)
 1Ch	DWORD	number of physical read requests (big-endian)
 20h	DWORD	number of physical write requests (big-endian)
 24h	WORD	number of physical read errors (big-endian)
 26h	WORD	number of physical write errors (big-endian)
 28h	DWORD	cache get requests (big-endian)
 2Ch	DWORD	cache full write requests (big-endian)
 30h	DWORD	cache partial write requests (big-endian)
 34h	DWORD	background dirty writes (big-endian)
 38h	DWORD	background aged writes (big-endian)
 3Ch	DWORD	total cache writes (big-endian)
 40h	DWORD	number of cache allocations (big-endian)
 44h	WORD	thrashing count (big-endian)
 46h	WORD	number of times LRU block was dirty (big-endian)
 48h	WORD	number of reads on cache blocks not yet filled by writes
(big-endian)
 4Ah	WORD	number of times a fragmented write occurred (big-endian)
 4Ch	WORD	number of cache hits on unavailable block (big-endian)
 4Eh	WORD	number of times a cache block was scrapped (big-endian)


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	D7h (subfunction "Get Drive Mapping Table")


reply buffer:

Size	Description
 00h	WORD	(call) 00ECh (length of following results buffer)
 02h	DWORD	clock tick elapsed since system started (big-endian)
 06h	BYTE	fault tolerance (SFT) level
 07h	BYTE	number of logical drives attached to server
 08h	BYTE	number of physical drives attached to server
 09h  5 BYTEs	disk channel types (00h none, 01h XT, 02h AT, 03h SCSI,
04h disk coprocessor drive, 32h-FFh value-added drive types)
 0Eh	WORD	number of outstanding controller commands (big-endian)
 10h 32 BYTEs	drive mapping table (FFh = no such drive)
 30h 32 BYTEs	drive mirror table (secondary physical drive, FFh = none)
 50h 32 BYTEs	dead mirror table (last drive mapped to, FFh if never mirrored)
 70h	BYTE	physical drive being remirrored (FFh = none)
 71h	BYTE	reserved
 72h	DWORD	remirrored block (big-endian)
 76h 60 BYTEs	SFT error table (internal error counters)


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	D8h (subfunction "Get Physical Disk Statistics")
 03h	BYTE	physical disk number


reply buffer:

Size	Description
 00h	WORD	(call) 005Dh (size of following results record)
 02h	DWORD	clock ticks since system started (big-endian)
 06h	BYTE	physical disk channel
 07h	BYTE	flag: drive removable if nonzero
 08h	BYTE	physical drive type
 09h	BYTE	drive number within controller
 0Ah	BYTE	controller number
 0Bh	BYTE	controller type
 0Ch	DWORD	size of drive in 4K disk blocks (big-endian)
 10h	WORD	number of cylinders on drive (big-endian)
 12h	BYTE	number of heads
 13h	BYTE	number of sectors per track
 14h 64 BYTEs	ASCIZ drive make and model
 54h	WORD	number of I/O errors (big-endian)
 56h	DWORD	start of Hot Fix table (big-endian)
 5Ah	WORD	size of Hot Fix table (big-endian)
 5Ch	WORD	number of Hot Fix blocks available (big-endian)
 5Eh	BYTE	flag: Hot Fix disabled if nonzero


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	D9h (subfunction "Get Disk Channel Statistics")
 03h	BYTE	channel number


reply buffer:

Size	Description
 00h	WORD	(call) 00A8h (size of following results record)
 02h	DWORD	clock ticks since system started (big-endian)
 06h	WORD	channel run state (big-endian)
00h running
01h being stopped
02h stopped
03h nonfunctional
 08h	WORD	channel synchronization state (big-endian)
00h not in use
02h used by NetWare, no other requests
04h used by NetWare, other requests
06h in use, not needed by NetWare
08h in use, needed by NetWare
0Ah channel released, NetWare should use it
 0Ah	BYTE	driver type
 0Bh	BYTE	major version of driver
 0Ch	BYTE	minor version of driver
 0Dh 65 BYTEs	ASCIZ driver description
 4Eh	WORD	first I/O address used (big-endian)
 50h	WORD	length of first I/O address (big-endian)
 52h	WORD	second I/O address used (big-endian)
 54h	WORD	length of second I/O address (big-endian)
 56h  3 BYTEs	first shared memory address
 59h  2 BYTEs	length of first shared memory address
 5Bh  3 BYTEs	second shared memory address
 5Eh  2 BYTEs	length of second shared memory address
 60h	BYTE	first interrupt number in-use flag
 61h	BYTE	first interrupt number used
 62h	BYTE	second interrupt number in-use flag
 63h	BYTE	second interrupt number used
 64h	BYTE	first DMA channel in-use flag
 65h	BYTE	first DMA channel used
 66h	BYTE	second DMA channel in-use flag
 67h	BYTE	second DMA channel used
 68h	BYTE	flags
 69h	BYTE	reserved
 6Ah 80 BYTEs	ASCIZ configuration description


request buffer:

Size	Description
 00h	WORD	0003h (length of following data)
 02h	BYTE	DAh (subfunction "Get Connection's Task Information")
 03h	WORD	logical connection number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	BYTE	lock status of connection
00h no locks
01h waiting on physical record lock
02h waiting on file lock
03h waiting on logical record lock
04h waiting on semaphore
 03h	var	Lock Status Information (see below)
 N	BYTE	number of records following
 N+1	Active Task Information Records [array]
Offset	Size	Description
 00h	BYTE	task number (01h-FFh)
 01h	BYTE	task state
01h in TTS explicit transaction
02h in TTS implicit transaction
04h shared fileset lock active


Lock Status Information:

Size	Description
---lock status 00h---
 no fields
---lock status 01h---
 00h	BYTE	number of waiting task
 01h	DWORD	start address
 05h	DWORD	end address
 09h	BYTE	volume number
 0Ah	WORD	directory entry number
 0Ch 14 BYTEs	ASCIZ filename
---lock status 02h---
 00h	BYTE	number of waiting task
 01h	BYTE	volume number
 02h	WORD	directory entry number
 04h 14 BYTEs	ASCIZ filename
---lock status 03h---
 00h	BYTE	number of waiting task
 01h	BYTE	length of record name
 02h  N BYTEs	ASCIZ record name
---lock status 04h---
 00h	BYTE	number of waiting task
 01h	BYTE	length of semaphore's name
 02h  N BYTEs	ASCIZ semaphore name


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	DBh (subfunction "Get Connection's Open Files")
 03h	WORD	logical connection number (big-endian)
 05h	WORD	last record seen (big-endian)
0000h on first call


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" field on next call)
0000h if no more records
 04h	BYTE	number of records following
 05h	File Information Records [array]
Offset	Size	Description
 00h	BYTE	task number
 01h	BYTE	lock flags (see below)
 02h	BYTE	access flags (see below)
 03h	BYTE	lock type
00h no lock
FEh file lock
FFh locked by Begin Share File Set
 04h	BYTE	volume number (00h-1Fh)
 05h	WORD	directory entry (big-endian)
 07h 14 BYTEs	ASCIZ filename


request buffer:

Size	Description
 00h	WORD	length of following data (max 104h)
 02h	BYTE	DCh (subfunction "Get Connections Using a File")
 03h	WORD	last record (big-endian)
0000h on first call
 05h	BYTE	directory handle
 06h	BYTE	length of file path
 07h  N BYTEs	ASCIZ file path


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	count of tasks which have opened or logged file (big-endian)
 04h	WORD	count of tasks which have opened file (big-endian)
 06h	WORD	count of opens for reading (big-endian)
 08h	WORD	count of opens for writing (big-endian)
 0Ah	WORD	deny read count (big-endian)
 0Ch	WORD	deny write count (big-endian)
 0Eh	WORD	next request record (place in "last record" field on next call)
0000h if no more records
 10h	BYTE	locked flag
00h not locked exclusively
else locked exclusively
 11h	BYTE	number of records following
 12h	File Usage Information Records [array]
Offset	Size	Description
 00h	WORD	logical connection number (big-endian)
 02h	BYTE	task number
 03h	BYTE	lock flags (see AH=E3h/SF=DBh)
 04h	BYTE	access flags (see AH=E3h/SF=DBh)
 05h	BYTE	lock type
00h no lock
FEh file lock
FFh locked by Begin Share File Set


request buffer:

Size	Description
 00h	WORD	0016h (length of following data)
 02h	BYTE	DDh (subfunction "Get Physical Record Locks by Connection and
File")
 03h	WORD	logical connection number (big-endian)
 05h	WORD	last record seen (big-endian)
0000h on first call
 07h	BYTE	volume number (00h-1Fh)
 08h	WORD	directory handle (big-endian)
 0Ah 14 BYTEs	ASCIZ filename


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" on next call)
0000h if no more records
 04h	BYTE	number of physical record locks
 05h	BYTE	number of records following
 06h	Physical Record Lock Info [array]
Offset	Size	Description
 00h	BYTE	task number
 01h	BYTE	lock status (see below)
 02h	DWORD	starting offset of record in file (big-endian)
 06h	DWORD	ending offset of record in file (big-endian)


request buffer:

Size	Description
 00h	WORD	length of following data (max 104h)
 02h	BYTE	DEh (subfunction "Get Physical Record Locks by File")
 03h	WORD	last record seen (big-endian)
0000h on first call
 05h	BYTE	directory handle
 06h	BYTE	length of filename
 07h  N BYTEs	ASCIZ filename


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" on next call)
0000h if no more records
 04h	BYTE	number of physical record locks
 05h	BYTE	number of records following
 06h	Physical Record Lock Info [array]
Offset	Size	Description
 00h	WORD	number of tasks logging record (big-endian)
 02h	WORD	number of tasks with shareable lock (big-endian)
 04h	DWORD	starting offset of record in file (big-endian)
 08h	DWORD	ending offset of record in file (big-endian)
 0Ch	WORD	logical connection number (big-endian)
 0Eh	BYTE	task number
 0Fh	BYTE	lock type
00h none
FEh file lock
FFh Begin Share File Set lock


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	DFh (subfunction "Get Logical Records By Connection")
 03h	WORD	logical connection number (big-endian)
 05h	WORD	last record seen (big-endian)
0000h on first call


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" field on next call)
0000h if no more locked records
 09h	BYTE	number of records following
 0Ah	Logical Lock Information Records [list]
Offset	Size	Description
 00h	BYTE	task number
 01h	BYTE	lock status (see AH=E3h/SF=DDh)
 02h	BYTE	length of logical lock's name
 03h  N BYTEs	logical lock's name


request buffer:

Size	Description
 00h	WORD	length of following data (max 67h)
 02h	BYTE	E0h (subfunction "Get Logical Record Information")
 03h	WORD	last record seen (big-endian)
0000h on first call
 05h	BYTE	length of logical record's name
 06h  N BYTEs	logical record's name


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 200h)
 02h	WORD	number of logical connections logging the record (big-endian)
 04h	WORD	number of logical connections with shareable lock (big-endian)
 06h	WORD	next request record (place in "last record" field on next call)
 08h	BYTE	locked exclusively if nonzero
 09h	BYTE	number of records following
 0Ah	Task Information Records [array]
Offset	Size	Description
 00h	WORD	logical connection number (big-endian)
 02h	BYTE	task number
 03h	BYTE	lock status (see AH=E3h/SF=DFh)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	E1h (subfunction "Get Connection's Semaphores")
 03h	WORD	logical connection number (big-endian)
 05h	WORD	last record seen (big-endian)
0000h on first call


reply buffer:

Size	Description
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" field on next call)
 04h	BYTE	number of records following
 05h	Semaphore Information Records [array]
Offset	Size	Description
 00h	WORD	open count (big-endian)
 02h	BYTE	semaphore value (-128 to 127)
 03h	BYTE	task number
 04h	BYTE	lock type
 05h	BYTE	length of semaphore's name
 06h  N BYTEs	semaphore's name
     14 BYTEs	filename


request buffer:

Size	Description
 00h	WORD	length of following data (max 83h)
 02h	BYTE	E2h (subfunction "Get LAN Driver's Configuration Information")
 03h	WORD	last record seen (big-endian)
0000h on first call
 05h	BYTE	length of semaphore's name (01h-7Fh)
 06h  N BYTEs	semaphore's name


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 1FEh)
 02h	WORD	next request record (place in "last record" on next call)
0000h if no more
 04h	WORD	number of logical connections opening semaphore (big-endian)
 06h	BYTE	semaphore value (-127 to 128)
 07h	BYTE	number of records following
 08h	Semaphore Information [array]
Offset	Size	Description
 00h	WORD	logical connection number (big-endian)
 02h	BYTE	task number


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	E3h (subfunction "Get LAN Driver's Configuration Information")
 03h	BYTE	LAN board (00h-03h)


reply buffer:

Size	Description
 00h	WORD	(call) 00ACh (size of following results buffer)
 02h  4 BYTEs	network number
 06h  6 BYTEs	node number
 0Ch	BYTE	LAN driver installed (00h no--remaining fields invalid)
 0Dh	BYTE	option number selected at configuration time
 0Eh 160 BYTEs	configuration text
ASCIZ hardware type
ASCIZ hardware settings


request buffer:

Size	Description
 00h	WORD	0003h (length of following data)
 02h	BYTE	E5h (subfunction "Get Connection's Usage Statistics")
 03h	WORD	logical connection number (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 0014h (size of following results record)
 02h	DWORD	clock ticks since server started (big-endian)
 06h  6 BYTEs	bytes read
 0Ch  6 BYTEs	bytes written
 12h	DWORD	total request packets (big-endian)


request buffer:

Size	Description
 00h	WORD	0005h (length of following data)
 02h	BYTE	E6h (subfunction "Get Bindery Object Disk Space Left")
 03h	DWORD	object ID (big-endian)


reply buffer:

Size	Description
 00h	WORD	(call) 000Fh (size of following results buffer)
 02h	DWORD	clock ticks elapsed since server started (big-endian)
 06h	DWORD	object ID (big-endian)
 0Ah	DWORD	4K disk blocks available to user (big-endian)
 0Eh	BYTE	restrictions
00h enforced
FFh not enforced


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	E7h (subfunction "Get File Server LAN I/O Statistics")


reply buffer:

Size	Description
 00h	WORD	(call) 0042h (size of following results buffer)
 02h	DWORD	clock ticks since system started
 06h	WORD	total routing buffers
 08h	WORD	maximum routing buffers used
 0Ah	WORD	current routing buffers used
 0Ch	DWORD	total file service packets
 10h	WORD	number of file service packets buffered
 12h	WORD	number of invalid connection packets
 14h	WORD	packets with bad logical connection numbers
 16h	WORD	number of packets received during processing
 18h	WORD	number of requests reprocessed
 1Ah	WORD	packets with bad sequence numbers
 1Ch	WORD	number of duplicate replies sent
 1Eh	WORD	number of acknowledgements sent
 20h	WORD	number of packets with bad request types
 22h	WORD	requests to attach to ws for which a request is being processed
 24h	WORD	requests to attach from ws which is already attaching
 26h	WORD	number of forged detach requests
 28h	WORD	detach requests with bad connection number
 2Ah	WORD	requests to detach from ws for which requests pending
 2Ch	WORD	number of cancelled replies
 2Eh	WORD	packets discarded due to excessive hop count
 30h	WORD	packets discarded due to unknown net
 32h	WORD	incoming packets discarded for lack of DGroup buffer
 34h	WORD	outgoing packets discarded due to lack of buffer
 36h	WORD	received packets destined for B,C, or D side drivers
 38h	DWORD	number of NetBIOS packets propagated through net
 3Ch	DWORD	total number of non-file-service packets
 40h	DWORD	total number of routed packets
Note:	all fields except the first are big-endian


request buffer:

Size	Description
 00h	WORD	0001h (length of following data)
 02h	BYTE	E8h (subfunction "Get File Server Misc Information")


reply buffer:

Size	Description
 00h	WORD	(call) size of following results buffer (max 0048h)
 02h	DWORD	clock ticks since system started
 06h	BYTE	CPU type
00h Motorola 68000
01h Intel 8086, 8088, or V20
02h Intel 80286+
 07h	BYTE	reserved
 08h	BYTE	number of service processes in server
 09h	BYTE	server utilization in percent
 0Ah	WORD	maximum bindery objects set by configuration (big-endian)
0000h = unlimited
 0Ch	WORD	maximum number of bindery objects used (big-endian)
 0Eh	WORD	current number of bindery objects in use (big-endian)
 10h	WORD	total server memory in K (big-endian)
 12h	WORD	wasted server memory in K (big-endian)
normally 0000h
 14h	WORD	number of records following (01h-03h)
 16h	Dynamic Memory Information [array]
Offset	Size	Description
 00h	DWORD	total dynamic space (big-endian)
 04h	DWORD	maximum dynamic space used (big-endian)
 08h	DWORD	current dynamic space usage (big-endian)


request buffer:

Size	Description
 00h	WORD	0002h (length of following data)
 02h	BYTE	E9h (subfunction "Get Volume Information")
 03h	BYTE	directory handle


reply buffer:

Size	Description
 00h	WORD	(call) 0028h (length of following results buffer)
 02h	DWORD	elapsed system time (big-endian)
 06h	BYTE	volume number
 07h	BYTE	logical drive number
 08h	WORD	sectors per block (big-endian)
 0Ah	WORD	starting block (big-endian)
 0Ch	WORD	total blocks on volume (big-endian)
 0Eh	WORD	blocks available on volume (big-endian)
 10h	WORD	total directory slots (big-endian)
 12h	WORD	directory slots available (big-endian)
 14h	WORD	maximum directory entries actually used (big-endian)
 16h	BYTE	flag: volume hashed if nonzero
 17h	BYTE	flag: volume cached if nonzero
 18h	BYTE	flag: volume removable if nonzero
 19h	BYTE	flag: volume mounted if nonzero
 1Ah 16 BYTEs	NUL-padded volume name


date/time buffer:

Size	Description
 00h	BYTE	year (80-99 = 1980-1999, 0-79 = 2000-2079)
 01h	BYTE	month (1=Jan)
 02h	BYTE	day
 03h	BYTE	hours
 04h	BYTE	minutes
 05h	BYTE	seconds
 06h	BYTE	day of week (0 = Sunday) (Novell and NTNX only)


connection ID table [one entry of eight-element array]:

Size	Description
 00h	BYTE	in use flag
E0h AES temporary
F8h IPX in critical section
FAh processing
FBh holding
FCh AES waiting
FDh waiting
FEh receiving
FFh sending
 01h	BYTE	order number assigned to server (1-8)
 02h	DWORD	file server's network address (big-endian)
 06h  6 BYTEs	file server's node address (big-endian)
 0Ch	WORD	socket number (big-endian)
 0Eh	WORD	base receive timeout in clock ticks (big-endian)
 10h  6 BYTEs	preferred routing node (big-endian)
 16h	BYTE	packet sequence number
 17h	BYTE	connection number (FFh = no connection)
 18h	BYTE	connection status (00h if active)
 19h	WORD	maximum receive timeout in clock ticks (big-endian)
 1Bh  5 BYTEs	reserved


request buffer:

Size	Description
 00h	BYTE	directory handle
 01h	BYTE	search attributes (see AX=4301h)
 02h	BYTE	length of filespec
 03h  N BYTEs	ASCIZ filespec (may include wildcards)


request buffer:

Size	Description
 00h	WORD	source file handle (as returned by AH=3Ch or AH=3Dh)
 02h	WORD	destination file handle
 04h	DWORD	starting offset in source
 08h	DWORD	starting offset in destination
 0Ch	DWORD	number of bytes to copy


disk read packet:

Size	Description
 00h	DWORD	sector number
 04h	WORD	number of sectors to read
 06h	DWORD	transfer address


driver address buffer:

Size	Description
 00h	WORD	signature CDCDh
 02h	WORD	??? 0001h
 04h	DWORD	pointer to start of Stacker device driver


device driver:

Size	Description
 00h	WORD	signature A55Ah
 02h	WORD	Stacker version * 64h
 04h	WORD	offset of volume-specific information offset table
(list of WORDs, one per drive, containing offsets to various
information)
 06h 56 BYTEs	n/a
 3Eh	BYTE	volume number, set after INT 21/AX=4404h
(use to index into volume-specific info offset table)
 3Fh 19 BYTEs	n/a
 52h  4 BYTEs	ASCII string "SWAP"
 56h 26 BYTEs	drive mapping table (one byte for each drive A: through Z:)


Stacker boot record:

Size	Description
1F0h  8 BYTEs	Stacker signature (first byte is CDh)
1F8h	DWORD	pointer to start of Stacker device driver
1FCh	WORD	Stacker volume number
1FEh	WORD	???


disk write packet:

Size	Description
 00h	DWORD	sector number
 04h	WORD	number of sectors to read
 06h	DWORD	transfer address
---------------------------------------------
INT 26 - COMTROL HOSTESS i/ISA DEBUGGER - ENTER/EXIT EXTENDED ADDRESSING MODE
???
Return: ???
SeeAlso: INT 23"COMTROL HOSTESS",INT 27"COMTROL HOSTESS"


signature string:

Size	Description
 00h  8 BYTEs	blank-padded manufacturer's name (possibly abbreviated)
 08h  8 BYTEs	blank-padded product name
 10h 64 BYTEs	ASCIZ product description (optional, may be a single 00h)
Note:	it is not necessary to reserve a full 64 bytes for the description,
  just enough to store the actual ASCIZ string


interrupt hook list [array]:

Size	Description
 00h	BYTE	interrupt number (last entry in array is 2Dh)
 01h	WORD	offset within hook list's segment of the interrupt handler
this will point at the initial short jump of the interrupt
sharing protocol header (see below)


hotkey list:

Size	Description
 00h	BYTE	type of hotkey checking
bit 0: checks before chaining INT 09
bit 1: checks after chaining INT 09
bit 2: checks before chaining INT 15/AH=4Fh
bit 3: checks after chaining INT 15/AH=4Fh
bit 4: checks on INT 16/AH=00h,01h,02h
bit 5: checks on INT 16/AH=10h,11h,12h
bits 6,7: reserved (0)
 01h	BYTE	number of hotkeys (may be zero if TSR can disable hotkeys)
 02h 6N BYTEs	array of hotkey definitions
(one per hotkey, first should be primary hotkey)
Offset	Size	Description
 00h	BYTE	hotkey scan code (00h/80h if shift states only)
hotkey triggers on release if bit 7 set
 01h	WORD	required shift states (see below)
 03h	WORD	disallowed shift states (see below)
 05h	BYTE	flags
bit 0: hotkey chained before processing
bit 1: hotkey chained after processing
bit 2: others should pass through this hotkey
so that it can be monitored
bit 3: hotkey will not activate if other keys
pressed/released before hotkey press is
completed
bit 4: this key is remapped into some other key
bit 5-7: reserved (0)
Notes:	except for bit 7, the shift states correspond exactly to the return
  values from INT 16/AH=12h.  A set bit in the required states word
  indicates that the corresponding shift state must be active when the
  hotkey's scan code is received for the hotkey to be recognized; a
  clear bit means that the corresponding state may be ignored.	A set
  bit in the disallowed shift states word indicates that the
  corresponding shift state must be inactive.
if bit 2 is set, either control key may be pressed for the hotkey; if
  bits 8 and 10 are both set, then both control keys must be pressed.
  Similarly for bits 3 and 9/11, as well as 7 and 0/1.
for the disallowed-states word, if one of the "either" bits is set,
  then both the corresponding left bit and right bit must be set
examples:
Ctrl-Alt-Del monitoring: 53h 000Ch 0003h 06h
Alt-key tap (DESQview):	 B8h 0000h 0007h 08h
Shf-Shf-N (NOTE.COM):	 31h 0003h 000Ch 00h


interrupt sharing protocol interrupt handler entry point:

Size	Description
 00h  2 BYTEs	short jump to actual start of interrupt handler, immediately
following this data block (EBh 10h)
 02h	DWORD	address of next handler in chain
 06h	WORD	signature 424Bh
 08h	BYTE	EOI flag
00h software interrupt or secondary hardware interrupt handler
80h primary hardware interrupt handler (will issue EOI)
 09h  2 BYTEs	short jump to hardware reset routine
must point at a valid FAR procedure (may be just RETF)
 0Bh  7 BYTEs	reserved (0)


commandline:

Size	Description
 00h	BYTE	length of command string, not counting trailing CR
 01h	var	command string
  N	BYTE	0Dh (CR)


vector table entry:

Size	Description
 00h	BYTE	vector number (00h = end of table)
 01h	DWORD	original vector
 05h	WORD	offset of interrupt handler in TSR's code segment


author_name_ver table:

Size	Description
 -16	WORD	segment in which really begins the TSR code (CS in programs
with PSP, XMS upper memory segment if installed as UMB...)
 -14	WORD	offset in which really begins the TSR code (frecuently 100h
in *.COM programs and 0 in upper memory TSR's).
 -12	WORD	memory used by TSR (in paragraphs). Knowing the memory area
used by TSR is possible to determine if hooked vectors are
still pointing it (and if it is safe the unistall process).
 -10	BYTE	characteristics byte
bits 0-2: 000 normal program (with PSP)
  001 upper XMS memory block (needed HIMEM.SYS function
      to free memory when unistalling)
  010 device driver (*.SYS)
  011 device driver in EXE format
  1xx others (reserved)
bits 3-6 reserved
bit 7 set if extra_table defined and supported
 -9	BYTE	number of multiplex entry used (redefinition available). Note
that the TSR must be use THIS variable in it's INT 2Fh handler.
 -8	WORD	offset to vector_area table (see bellow)
 -6	WORD	offset to extra_area table (see bit 7 in offset -10 and bellow)
 -4   4 BYTEs	"*##*"	(to insure that the TSR verify this agreement)
 00h	var	"AUTHOR:PROGRAM_NAME:VERSION",0	 (variable length, this area
is used in order to determine if the TSR is already resident
and it's version code; the ':' char is used as delimiter)


vector_area table:

Size	Description
 -1	BYTE	number of vectors intercepted by TSR
 00h	BYTE	first vector number
 01h	DWORD	first vector pointer before installing the TSR
 05h	BYTE	second vector number
 06h	DWORD	second vector pointer before installing the TSR
  .	  .	(and so on) Note that the TSR must be use THIS variables to
invoke previous interrupt handler routines.


extra_area table (needed only to improve relocation feature):

Size	Description
 00h	WORD	offset to external_ctrl table (0 if not supported)
 02h	WORD	reserved for future use (0)


external_ctrl table:

Size	Description
 00h	BYTE	bit 0: TSR is relocatable (no absolute segment references)
 01h	WORD	offset to a variable which can activate/inhibit the TSR
 ---And if bit 0 in offset 00h is off:
 03h	DWORD	pointer to ASCIIZ with pathname to executable file which
supports /SR parameter (silent installation & inhibit)
 07h	DWORD	pointer to first variable to initialize on the copy reloaded
from the previous TSR still resident
 0Bh	DWORD	pointer to last variable (all variables packed in one block)


submit packet:

Size	Description
 00h	BYTE	level (must be 00h)
 01h	DWORD	pointer to ASCIZ filename (no wildcards)


device driver request header:

Size	Description
 00h	BYTE	length of request header
 01h	BYTE	subunit within device driver
 02h	BYTE	command code (see above)
 03h	WORD	status (filled in by device driver)
bit 15: error
bits 14-11: reserved
bit 10: ??? set by DOS kernel on entry to some driver calls
bit 9: busy
bit 8: done (may be clear on return under European MSDOS 4.0)
bits 7-0: error code if bit 15 set (see below)
---DOS---
 05h  4 BYTEs	reserved (unused in DOS 2.x and 3.x)
 09h	DWORD	(European MSDOS 4.0 only) pointer to next request header in
device's request queue
(other versions) reserved (unused in DOS 2.x and 3.x)
---STARLITE architecture---
 05h	DWORD	pointer to next request header
 09h  4 BYTEs	reserved
---command code 00h---
 0Dh	BYTE	(return) number of units
 0Eh	DWORD	(call) pointer to DOS device helper function (see below)
(European MSDOS 4.0 only)
(call) pointer past end of memory available to driver (DOS 5.0)
(return) address of first free byte following driver
 12h	DWORD	(call) pointer to commandline arguments
(return) pointer to BPB array (block drivers) or
0000h:0000h (character drivers)
 16h	BYTE	(DOS 3+) drive number for first unit of block driver (0=A)
   ---European MSDOS 4.0---
 17h	DWORD	pointer to function to save registers on stack
   ---DOS 5.0---
 17h	WORD	(return) error-message flag
0001h MSDOS should display error msg on init failure
---command code 01h---
 0Dh	BYTE	media descriptor
 0Eh	BYTE	returned status
00h don't know
01h media has not changed
FFh media has been changed
 0Fh	DWORD	(return, DOS 3+) pointer to previous volume ID if OPEN/CLOSE/RM
  bit in device header is set and disk changed
---command code 02h---
 0Dh	BYTE	media descriptor
 0Eh	DWORD	transfer address
-> scratch sector if NON-IBM FORMAT bit in device header set
-> first FAT sector otherwise
 12h	DWORD	pointer to BPB (set by driver) (see INT 21/AH=53h)
---command codes 03h,0Ch--- (see also INT 21/AX=4402h,INT 21/AX=4403h)
 0Dh	BYTE	media descriptor (block devices only)
 0Eh	DWORD	transfer address
 12h	WORD	(call) number of bytes to read/write
(return) actual number of bytes read or written
---command codes 04h,08h,09h---
 0Dh	BYTE	media descriptor (block devices only)
 0Eh	DWORD	transfer address
 12h	WORD	byte count (character devices) or sector count (block devices)
 14h	WORD	starting sector number (block devices only)
 16h	DWORD	(DOS 3+) pointer to volume ID if error 0Fh returned
 1Ah	DWORD	(DOS 4+) 32-bit starting sector number (block devices with
device attribute word bit 1 set only) (see INT 21/AH=52h)
---command code 05h---
 0Dh	BYTE	byte read from device if BUSY bit clear on return
---command codes 06h,07h,0Ah,0Bh,0Dh,0Eh,0Fh---
 no further fields
---command code 10h---
 0Dh	BYTE	unused
 0Eh	DWORD	transfer address
 12h	WORD	(call) number of bytes to write
(return) actual number of bytes written
---command codes 11h,12h---
 0Dh	BYTE	reserved
---command code 15h---
 no further fields
---command codes 13h,19h---
 0Dh	BYTE	category code
00h unknown
01h COMn:
03h CON
05h LPTn:
07h mouse (European MSDOS 4.0)
08h disk
9Eh (STARLITE) Media Access Control driver
 0Eh	BYTE	function code
00h (STARLITE) MAC Bind request
 0Fh	WORD	copy of DS at time of IOCTL call (apparently unused in DOS 3.3)
SI contents (European MSDOS 4.0)
 11h	WORD	offset of device driver header
DI contents (European MSDOS 4.0)
 13h	DWORD	pointer to parameter block from INT 21/AX=440Ch or AX=440Dh
---command codes 80h,82h---
 0Dh	BYTE	addressing mode
00h HSG (default)
01h Phillips/Sony Red Book
 0Eh	DWORD	transfer address (ignored for command 82h)
 12h	WORD	number of sectors to read
(if 0 for command 82h, request is an advisory seek)
 14h	DWORD	starting sector number
logical sector number in HSG mode
frame/second/minute/unused in Red Book mode
(HSG sector = minute * 4500 + second * 75 + frame - 150)
 18h	BYTE	data read mode
00h cooked (2048 bytes per frame)
01h raw (2352 bytes per frame, including EDC/ECC)
 19h	BYTE	interleave size (number of sectors stored consecutively)
 1Ah	BYTE	interleave skip factor (# sectors between consec portions)
---command code 83h---
 0Dh	BYTE	addressing mode (see above)
 0Eh	DWORD	transfer address (ignored)
 12h	WORD	number of sectors to read (ignored)
 14h	DWORD	starting sector number (see also above)
---command code 84h---
 0Dh	BYTE	addressing mode (see above)
 0Eh	DWORD	starting sector number (see also above)
 12h	DWORD	number of sectors to play
---command codes 85h,88h---
 no further fields
---command codes 86h,87h---
 0Dh	BYTE	addressing mode (see above)
 0Eh	DWORD	transfer address (ignored in write mode 0)
 12h	WORD	number of sectors to write
 14h	DWORD	starting sector number (see also above)
 18h	BYTE	write mode
00h mode 0 (write all zeros)
01h mode 1 (default) (2048 bytes per sector)
02h mode 2 form 1 (2048 bytes per sector)
03h mode 2 form 2 (2336 bytes per sector)
 19h	BYTE	interleave size (number of sectors stored consecutively)
 1Ah	BYTE	interleave skip factor (# sectors between consec portions)


character queue:

Size	Description
 00h	WORD	size of queue in bytes
 02h	WORD	index of next character out
 04h	WORD	count of characters in the queue
 06h  N BYTEs	queue buffer


DOS 3.30 drive data table:

Size	Description
 00h	DWORD	pointer to next table
 04h	BYTE	physical unit number (for INT 13)
 05h	BYTE	logical drive number
 06h 19 BYTEs	BIOS Parameter Block (see also INT 21/AH=53h)
Offset	Size	Description
 00h	WORD	bytes per sector
 02h	BYTE	sectors per cluster, FFh if unknown
 03h	WORD	number of reserved sectors
 05h	BYTE	number of FATs
 06h	WORD	number of root dir entries
 08h	WORD	total sectors
 0Ah	BYTE	media descriptor, 00h if unknown
 0Bh	WORD	sectors per FAT
 0Dh	WORD	sectors per track
 0Fh	WORD	number of heads
 11h	WORD	number of hidden sectors
 19h	BYTE	flags
bit 6: 16-bit FAT instead of 12-bit FAT
 1Ah	WORD	number of DEVICE OPEN calls without corresponding DEVICE CLOSE
 1Ch 11 BYTEs	volume label or "NO NAME    " if none (always "NO NAME" for
fixed media)
 27h	BYTE	terminating null for volume label???
 28h	BYTE	device type (see INT 21/AX=440Dh)
 29h	WORD	bit flags describing drive
bit 0: fixed media
bit 1: door lock supported
bit 2: ??? (used in determining BPB to set for INT 21/AX=440Dh)
bit 3: all sectors in a track are the same size
bit 4: physical drive has multiple logical units
bit 5: current logical drive for physical drive
bit 6: ???
bit 7: ???
bit 8: ??? (related to disk change detection)
 2Bh	WORD	number of cylinders
 2Dh 19 BYTEs	BIOS Parameter Block for highest capacity supported
 40h  3 BYTEs	???
 43h  9 BYTEs	filesystem type???, default = "NO NAME	"
(apparently only MSDOS 3.30 fixed media, nulls for removable
media and PCDOS 3.30)
 4Ch	BYTE	least-significant byte of last-accessed cylinder number
---removable media---
 4Dh	DWORD	time of last access in clock ticks (FFFFFFFFh if never)
---fixed media---
 4Dh	WORD	partition (FFFFh = primary, 0001h = extended)
 4Fh	WORD	absolute cylinder number of partition's start on physical
drive (always FFFFh if primary partition)


COMPAQ DOS 3.31 drive data table:

Size	Description
 00h	DWORD	pointer to next table
 04h	BYTE	physical unit number (for INT 13)
 05h	BYTE	logical drive number
 06h 25 BYTEs	BIOS Parameter Block (see DOS 4.0-5.0 drive data table below)
 1Fh  6 BYTEs	??? apparently always zeros
 25h	BYTE	flags
bit 6: 16-bit FAT instead of 12-bit FAT
    5: large volume???
 26h	WORD	device-open count???
 28h 11 BYTEs	volume label or "NO NAME    " if none (always "NO NAME" for
fixed media)
 33h	BYTE	terminating null for volume label
 34h	BYTE	device type (see INT 21/AX=440Dh)
 35h	WORD	bit flags describing drive
 37h	WORD	number of cylinders
 39h 25 BYTEs	BIOS parameter block for highest capacity drive supports
 52h  6 BYTEs	??? apparently always zeros
 58h	BYTE	least-significant byte of last-accessed cylinder number
---removable media---
 59h	DWORD	time of last access in clock ticks (FFFFFFFFh if never)
---fixed media---
 59h	WORD	partition (FFFFh = primary, 0001h = extended)
 5Bh	WORD	absolute cylinder number of partition's start on physical
drive (always FFFFh if primary partition)


DOS 4.0-5.0 drive data table:

Size	Description
 00h	DWORD	pointer to next table
 04h	BYTE	physical unit number (for INT 13)
 05h	BYTE	logical drive number
 06h 25 BYTEs	BIOS Parameter Block (see also INT 21/AH=53h)
Offset	Size	Description
 00h	WORD	bytes per sector
 02h	BYTE	sectors per cluster, FFh if unknown
 03h	WORD	number of reserved sectors
 05h	BYTE	number of FATs
 06h	WORD	number of root dir entries
 08h	WORD	total sectors (see offset 15h if zero)
 0Ah	BYTE	media descriptor, 00h if unknown
 0Bh	WORD	sectors per FAT
 0Dh	WORD	sectors per track
 0Fh	WORD	number of heads
 11h	DWORD	number of hidden sectors
 15h	DWORD	total sectors if WORD at 08h is zero
 1Fh	BYTE	flags
bit 6: 16-bit FAT instead of 12-bit
 20h  2 BYTEs	???
 22h	BYTE	device type (see INT 21/AX=440Dh)
 23h	WORD	bit flags describing drive
bit 0: fixed media
bit 1: door lock supported
bit 2: ???
bit 3: all sectors in a track are the same size
bit 4: physical drive has multiple logical units
bit 5: current logical drive for physical drive
bit 6: ???
bit 7: ???
bit 8: ???
 25h	WORD	number of cylinders
 27h 25 BYTEs	BIOS Parameter Block for highest capacity supported
 40h  7 BYTEs	???
---removable media---
 47h	DWORD	time of last access in clock ticks (FFFFFFFFh if never)
---fixed media, DOS 4.x---
 47h	WORD	partition (FFFFh = primary, 0001h = extended)
 49h	WORD	absolute cylinder number of partition's start on phys drive
(FFFFh if primary partition)
---fixed media, DOS 5.0---
 47h	WORD	??? apparently always 0001h
 49h	WORD	absolute cylinder number of partition's start on phys drive
------
 4Bh 11 BYTEs	volume label or "NO NAME    " if none (apparently taken from
extended boot record rather than root directory)
 56h	BYTE	terminating null for volume label???
 57h	DWORD	serial number
 5Bh  8 BYTEs	filesystem type ("FAT12	  " or "FAT16	")
 63h	BYTE	terminating null for filesystem type???


parameter block:

Size	Description
 00h	DWORD	start offset
 04h	DWORD	size of region


DOS 4.x error table:

Size	Description
 00h	BYTE	FFh
 01h  2 BYTEs	04h,00h (DOS version???)
 03h	BYTE	number of error headers following
 04h 2N WORDs	table of all error headers for table
Offset	Size	Description
 00h	WORD	error message number
 02h	WORD	offset of error message from start of header
error messages are count byte followed by msg
Note:	DOS 5 error tables consist of one word per error number; each word
  contains either the offset of a counted string or 0000h


DOS 3.30 internal code page structure:

Size	Description
 00h  8 BYTEs	???
 08h 64 BYTEs	name of country information file
 48h	WORD	system code page
 4Ah	WORD	number of supported subfunctions
 4Ch  5 BYTEs	data to return for INT 21/AX=6502h
 51h  5 BYTEs	data to return for INT 21/AX=6504h
 56h  5 BYTEs	data to return for INT 21/AX=6505h
 5Bh  5 BYTEs	data to return for INT 21/AX=6506h
 60h 41 BYTEs	data to return for INT 21/AX=6501h


directory entry (direct copy):

Size	Description
 00h	BYTE  length of directory entry
 01h	BYTE  length of XAR in Logical Block Numbers
 02h	DWORD LBN of data, Intel (little-endian) format
 06h	DWORD LBN of data, Motorola (big-endian) format
 0Ah	DWORD length of file, Intel format
 0Eh	DWORD length of file, Motorola format
---High Sierra---
 12h  6 BYTEs date and time
 18h	BYTE  bit flags
 19h	BYTE  reserved
---ISO 9660---
 12h  7 BYTEs date and time
 19h	BYTE  bit flags
---both formats---
 1Ah	BYTE  interleave size
 1Bh	BYTE  interleave skip factor
 1Ch	WORD  volume set sequence number, Intel format
 1Eh	WORD  volume set sequence number, Motorola format
 20h	BYTE  length of file name
 21h  N BYTEs file name
BYTE (optional) padding if filename is odd length
      N BYTEs system data


directory entry (canonicalized):

Size	Description
 00h	BYTE	length of XAR in Logical Block Numbers
 01h	DWORD	Logical Block Number of file start
 05h	WORD	size of disk in logical blocks
 07h	DWORD	file length in bytes
 0Bh  7 BYTEs	date and time
 12h	BYTE	bit flags
 13h	BYTE	interleave size
 14h	BYTE	interleave skip factor
 15h	WORD	volume set sequence number
 17h	BYTE	length of file name
 18h 38 BYTEs	ASCIZ filename
 3Eh	WORD	file version number
 40h	BYTE	number of bytes of system use data
 41h 220 BYTEs	system use data


Startup Information Structure:

Size	Description
 00h  2 BYTEs	major, minor version of info structure
 02h	DWORD	pointer to next startup info structure or 0000h:0000h
 06h	DWORD	pointer to ASCIZ name of virtual device file or 0000h:0000h
 0Ah	DWORD	virtual device reference data (only used if above nonzero)
 0Eh	DWORD	pointer to instance data records or 0000h:0000h


one Instance Item in array:

Size	Description
 00h	DWORD	address of instance data (end of array if 0000h:0000h)
 04h	WORD	size of instance data


patch table:

Size	Description
 00h	WORD	number of items in patch table
 02h  N WORDs	offsets of ??? to be patched


TSR-to-Windows communication structure:

Size	Description
 00h	DWORD	pointer to next structure
 04h	WORD	PSP segment
 06h	WORD	API version ID (0100h)
 08h	WORD	EXEC flags
bit 0: "WINEXEC"
bit 1: "LOADLIBRARY"
bit 2: "OPENDRIVER"
 0Ah	WORD	"exec_cmd_show"
 0Ch	DWORD	"exec_cmd"
 10h  4 BYTEs	reserved (0)
 14h	DWORD	pointer to TSR ID block (see below)
 18h	DWORD	pointer to TSR data block or 0000h:0000h


Norton Utilities 6.0 TSR ID block:

Size	Description
 00h	WORD	length of name string
 02h  N BYTEs	name of TSR's executable


bitmap:

Size	Description
 00h	WORD	type (0000h)
 02h	WORD	width of bitmap in pixels
 04h	WORD	height of bitmap in pixels
 06h	WORD	bytes per line
 08h	BYTE	number of color planes
 09h	BYTE	number of adjacent color bits in pixel
 0Ah	DWORD	pointer to start of data
 0Eh	WORD	width in 0.1mm units
 10h	WORD	height in 0.1mm units
 12h  N BYTEs	bitmap data


metafile picture:

Size	Description
 00h	WORD	mapping mode
 02h	WORD	X extent
 04h	WORD	Y extent
 06h	WORD	picture data


parameter block:

Size	Description
 00h	BYTE	subfunction
00h set/reset interlock
01h get /L flag
 01h	BYTE	interlock state
00h=reset, 01h=set
  This interlock prevents some of the ANSI.SYS post-processing
  in its hook onto INT 10, AH=00h mode set
 02h	BYTE	(returned)
00h if /L not in effect
01h if /L in effect


parameter block:

Size	Description
 00h	WORD	reserved, should be 0000h
 02h	DWORD	pointer to command tail to be copied into child's PSP
 06h	DWORD	pointer to first FCB to be copied into child's PSP
 0Ah	DWORD	pointer to second FCB to be copied into child's PSP


TSR modules:

Size	Description
 00h  4 BYTEs	signature "FTSR"
 04h	WORD	segment address of this module
 06h	WORD	number of words to skip (usually 0000h if no PSP present)
 08h  N WORDs	module-defined data that must be at a fixed segment offset
(usually only a PSP if file access is required)
     5N BYTEs	interrupt list (see below)
BYTE	FFh terminator


interrupt list entry:

Size	Description
 00h	BYTE	interrupt number (00h-FEh)
 01h	WORD	offset within segment of DWORD pointer to previous interrupt
 03h	WORD	offset within segment of begin of interrupt handler code


EMM structure:

Size	Description
 00h	DWORD	number of bytes to move (must be even)
 04h	WORD	source handle
 06h	DWORD	offset into source block
 0Ah	WORD	destination handle
 0Ch	DWORD	offset into destination block
Notes:	if source and destination overlap, only forward moves (source base
  less than destination base) are guaranteed to work properly
if either handle is zero, the corresponding offset is interpreted
  as a real-mode address referring to memory directly addressable
  by the processor


data table:

Size	Description
 00h  8 BYTEs	???
 08h	WORD	offset of WORD containing number of elements in cache


callback info structure:

Size	Description
 00h	DWORD	pointer to next callback info structure
 04h	DWORD	pointer to notification function (see below)
 08h	DWORD	reserved
 0Ch	DWORD	address of zero-terminated list of API info structures
(see AX=4B02h)


task switcher version structure:

Size	Description
 00h	WORD	major version of supported protocol  (current protocol is 1.0)
 02h	WORD	minor version of supported protocol
 04h	WORD	major version of task switcher
 06h	WORD	minor version of task switcher
 08h	WORD	task switcher ID (see AX=4B03h)
 0Ah	WORD	operation flags
bit 0: set if task switcher disabled
bits 1-15: reserved (0)
 0Ch	DWORD	pointer to ASCIZ task switcher name
("MS-DOS Shell Task Switcher" for DOSSHELL task switcher)
 10h	DWORD	pointer to previous task switcher's entry point or 0000h:0000h


API info structure:

Size	Description
 00h	WORD	size of structure in bytes (000Ah)
 02h	WORD	API identifier
0001h NetBIOS
0002h 802.2
0003h TCP/IP
0004h LAN Manager named pipes
0005h Novell NetWare IPX
 04h	WORD	major version \ of highest version of API for which the support
 06h	WORD	minor version / level specified in the next field is provided
 08h	WORD	support level
0001h minimal support
0002h API-level support
0003h switcher compatibility
0004h seamless compatibility


startup info structure:

Size	Description
 00h  2 BYTEs	major, minor version of info structure (03h,00h)
 02h	DWORD	pointer to next startup info structure or 0000h:0000h
 06h	DWORD	0000h:0000h (ignored)
 0Ah	DWORD	ignored
 0Eh	DWORD	pointer to instance data records


one instance data record in array:

Size	Description
 00h	DWORD	address of instance data (end of array if 0000h:0000h)
 04h	WORD	size of instance data


User Parameter Block:

Size	Description
 00h  8 BYTEs	blank-padded TSR name
 08h	WORD	TSR ID number
 0Ah	DWORD	bitmap of supported functions
 0Eh	BYTE	scan code of primary hotkey
    00h = pop up when shift states match
    FFh = no popup (if shift state also FFh)
 0Fh	BYTE	shift state of primary hotkey
    FFh = no popup (if scan code also FFh)
 10h	BYTE	number of secondary hotkeys
 11h	DWORD	pointer to extra hotkeys set by func 05h
 15h	WORD	current TSR status flags
 17h	WORD	PSP segment of TSR
 19h	DWORD	DTA for TSR
 1Dh	WORD	default DS for TSR
 1Fh	DWORD	stack at popup
 23h	DWORD	stack at background invocation


TSR internal data area:

Size	Description
 00h	BYTE	revision level of TesSeRact library
 01h	BYTE	type of popup in effect
 02h	BYTE	INT 08 occurred since last invocation
 03h	BYTE	INT 13 occurred since last invocation
 04h	BYTE	active interrupts
 05h	BYTE	active soft interrupts
 06h	BYTE	DOS major version
 07h	BYTE	how long to wait before popping up
 08h	DWORD	pointer to INDOS flag
 0CH	DWORD	pointer to DOS critical error flag
 10h	WORD	PSP segment of interrupted program
 12h	WORD	PSP segment of prog interrupted by INT 28
 14h	DWORD	DTA of interrupted program
 18h	DWORD	DTA of program interrupted by INT 28
 1Ch	WORD	SS of interrupted program
 1Eh	WORD	SP of interrupted program
 20h	WORD	SS of program interrupted by INT 28
 22h	WORD	SP of program interrupted by INT 28
 24h	DWORD	INT 24 of interrupted program
 28h  3 WORDs	DOS 3+ extended error info
 2Eh	BYTE	old BREAK setting
 2Fh	BYTE	old VERIFY setting
 30h	BYTE	were running MS WORD 4.0 before popup
 31h	BYTE	MS WORD 4.0 special popup flag
 32h	BYTE	enhanced keyboard call in use
 33h	BYTE	delay for MS WORD 4.0
11 times (for INTs 08h,09h,13h,16h,1Ch,21h,28h,2Fh,1Bh,23h, and 24h):
DWORD	old interrupt vector
BYTE	interrupt number
WORD	offset in TesSeRact code segment of new interrupt handler


SLSREQUEST structure:

Size	Description
 00h	DWORD	(return) status code
 04h	DWORD	(return) handle identifying context
 08h	DWORD	(call) address of Publisher string
 0Ch	DWORD	(call) address of Product string
 10h	DWORD	(call) address of Version string
 14h	DWORD	units required
 18h	DWORD	address of comment string
 1Ch	DWORD	address of SLSCHALLENGE structure (see below)


SLSCHALLENGE structure:

Size	Description
 00h	DWORD	algorithm (currently always 1)
 04h	DWORD	secret to be challenged (1-255)
 08h	DWORD	size of challenge in bytes (1-255)
 0Ch  N BYTEs	challenge data


SLSRELEASE structure:

Size	Description
 00h	DWORD	handle indentifying license context
 04h	DWORD	total units consumed
 08h	DWORD	address of comment string


SLSUPDATE structure:

Size	Description
 00h	DWORD	(return) status code
 04h	DWORD	(call) handle identifying license context
 08h	DWORD	(call) total units consumed
 0Ch	DWORD	additional units required
 10h	DWORD	address of comment string
 14h	DWORD	address of SLSCHALLENGE structure (see AX=7001h)


SLSGETERROR structure:

Size	Description
 00h	DWORD	(return) status code
 04h	DWORD	handle identifying license context
 08h	DWORD	error code
 0Ch	DWORD	buffer size in bytes
 10h  N BYTEs	data buffer


SLSQUERY structure:

Size	Description
 00h	DWORD	(return) status code
 04h	DWORD	handle identifying license context
 08h	DWORD	information index
 0Ch	DWORD	buffer size in bytes
 10h  N BYTEs	data buffer


device driver header:

Size	Description
 00h 10 BYTEs	same as standard device driver header (see INT 21/AH=52h)
 0Ah	BYTE	number of subunits (drives) supported by driver
 0Bh  3 BYTEs	signature "SRD"
 0Eh  4 BYTEs	memory type string (currently only "XMS ")
 12h  4 BYTEs	ASCII driver version string "N.NN"
 16h	BYTE	00h
 17h	BYTE	configuration format version (currently 00h)
 18h	WORD	offset of drive configuration data


SYS_LOGIN command buffer:

Size	Description
 00h	WORD	structure size
 02h	WORD	function number
 04h	WORD	return code
 06h	WORD	client ID
 08h	WORD	API Major Version
 0Ah	WORD	API Minor Version
 0Ch	DWORD	reserved for manufacturer's use
 10h 22 BYTEs	manufacturer's ID
 26h	WORD	highest possible device number
 28h	WORD	maximum destinations per envelope
 2Ah	WORD	maximum files per envelope
 2Ch	WORD	FaxBIOS capabilities bitmap
bit 0: transmit supported
bit 1: receive supported
bit 2: IOCTL supported
bit 3: IOCTL_DIAL supported
bit 4: IOCTL_ANSWER_FAX supported
bit 5: manual transmit supported
bit 6: optional phone services supported
bit 7: canonical phone objects
bit 8: seam with next supported
 2Eh	DWORD	T.30 capabilities bitmap
bit 0:	low vertical resolution (minimum)
bit 1:	high vertical resolution
bit 2:	page width 107mm (4.21 in)
bit 3:	page width 151mm (5.91 in)
bit 4:	page width 215mm (8.46 in) (minimum)
bit 5:	page width 255mm (10.04 in)
bit 6:	page width 303mm (11.93 in)
bit 7:	unused
bit 8:	page length 297mm (11.69 in) (minimum)
bit 9:	page length 364mm (14.33 in)
bit 10: page length 279mm (11 in)
bit 11: page length unlimited
bit 12: Group 4 resolution 300x300
bit 13: Group 4 resolution 400x400
bit 14: able to respond to poll from remote
bit 15: able to poll remote
bit 16: binary file transfer supported
 32h	WORD	IPC handle
 34h	DWORD	amount of memory needed to load
 38h	WORD	scope (00h for public, nonzero for private)
 3Ah  6 BYTEs	future expansion
 40h	WORD	structure size


SYS_LOGOUT command buffer:

Size	Description
 00h	WORD	structure size
 02h	WORD	function number
 04h	WORD	return code
 06h	WORD	client ID
 08h	DWORD	client tag (for client's internal use)
 0Ch  6 BYTEs	future expansion
 12h	WORD	structure size


SYS_GET_FAXAPP_INFO command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch 80 BYTEs	FaxBIOS data
 5Ch 80 BYTEs	default cover
 ACh 80 BYTEs	default logo
 FCh 80 BYTEs	default signature
14Ch 80 BYTEs	default font 10
19Ch 80 BYTEs	default font 165
1ECh 80 BYTEs	default user font
23Ch 80 BYTEs	default Pdir
28Ch 80 BYTEs	default sort
2DCh 10 BYTEs	default bill
2E6h 10 BYTEs	default route
2F0h 40 BYTEs	default cover sheet form
318h 34 BYTEs	valid dial characters
33Ah  6 BYTEs	local country code
340h  6 BYTEs	local city or area code
346h  6 BYTEs	future expansion
34Ch	WORD	structure size


STAT_IO_GET command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	device number
 0Eh	WORD	current activity
 10h	WORD	number of rings (if ringing)
 12h	WORD	number of fascimiles transmitted
 14h	WORD	number of fascimiles received
 16h	WORD	status of last transmission
 18h	WORD	envelope number of last transmission
 1Ah	WORD	index of last destination in envelope
 1Ch	WORD	status of last reception
 1Eh	WORD	current page (if session in progress)
 20h 80 BYTEs	current file
 70h104 BYTEs	remote number
 D8h 20 BYTEs	last name
 ECh 20 BYTEs	first name
100h 32 BYTEs	company name
120h 32 BYTEs	notes
140h	WORD	current envelope ID (if sending)
142h	WORD	total pages in transmission (if sending)
144h  6 BYTEs	future expansion
14h	WORD	structure size


STAT_FAXBIOS_GET command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	status ID
 0Eh	WORD	currenty FaxBIOS function number
 10h	WORD	current Client ID being serviced
 12h	WORD	number of things to do
 14h	WORD	number of them done
 16h	WORD	number of pages to do (if any)
 18h	WORD	number of them done
 1Ah	WORD	number of files to do
 1Ch	WORD	number of them done
 1Eh 80 BYTEs	current File
 6Eh	WORD	0 if all devices are idle
 70h	WORD	number of fascimiles transmitted
 72h	WORD	number of fascimiles received
 74h	WORD	status of last transmission in system
 76h	WORD	envelope ID of last transmission
 78h	WORD	index of last destination in envelope
 7Ah	WORD	status of last reception in system
 7Ch	DWORD	time of next transmission
 80h  6 BYTEs	future expansion
 86h	WORD	structure size


PDIR_OPEN command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch 80 BYTEs	Phone Directory token
 5Ch 80 BYTEs	sort order token
 ACh	WORD	open Mode (0 = read, 1 = write)
 AEh	WORD	Phone Directory handle
 B0h	WORD	number of people
 B2h	WORD	number of groups
 B4h	WORD	bitmap of fields supported by partial read
 B6h  6 BYTEs	future expansion
 BCh	WORD	structure size


PDIR_CLOSE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	Phone Directory handle
 0Eh  6 BYTEs	future expansion
 14h	WORD	structure size


PDIR_READ_PERSON command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	Phone Directory handle
 0Eh	WORD	retrieve by index
 10h	WORD	person ID or index
 12h	WORD	how many groups person is in
 14h	WORD	person ID
 16h 20 BYTEs	last name
 2Ah 20 BYTEs	first name
 3Eh 32 BYTEs	company
 5Eh 32 BYTEs	notes
 7Eh  6 BYTEs	FAX country code
 84h  6 BYTEs	FAX city/area code
 8Ah 14 BYTEs	FAX local number
 98h 14 BYTEs	FAX extension
 A6h 24 BYTEs	reserved
 BEh  6 BYTEs	voice country code
 C4h  6 BYTEs	voice city/area code
 CAh 14 BYTEs	voice local number
 D8h 14 BYTEs	voice extension
 E6h 24 BYTEs	reserved
 FEh 10 BYTEs	outbound routing information
108h 10 BYTEs	billing information, credit card etc
112h	DWORD	remote FAX capabilities
116h 21 BYTEs	T.30 poll code of FAX number
12Bh 15 BYTEs	reserved
13Ah  6 BYTEs	future expansion
140h	WORD	structure size


SCHED_OPEN, SCHED_CANCEL command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	scheduler handle
 0Eh  6 BYTEs	future expansion
 14h	WORD	structure size


SCHED_ADD_DEST command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	schedule handle
 0Eh	WORD	device number if manual send wanted
 10h	WORD	non-zero if poll desired
 12h	WORD	person ID
 14h 20 BYTEs	last name
 28h 20 BYTEs	first name
 3Ch 32 BYTEs	company
 5Ch 32 BYTEs	notes
 7Ch  6 BYTEs	FAX country code
 82h  6 BYTEs	FAX city/area code
 88h 14 BYTEs	FAX local number
 96h 14 BYTEs	FAX extension
 A4h 24 BYTEs	reserved
 BCh  6 BYTEs	voice country code
 C2h  6 BYTEs	voice city/area code
 C8h 14 BYTEs	voice local number
 D6h 14 BYTEs	voice extension
 E4h 24 BYTEs	reserved
 FCh 10 BYTEs	outbound routing information
106h 10 BYTEs	billing information, credit card etc
110h	DWORD	remote FAX capabilities
114h 21 BYTEs	T.30 poll code of FAX number
129h 15 BYTEs	reserved
138h  6 BYTEs	future expansion
13Eh	WORD	structure size


SCHED_ADD_FILE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	schedule handle
 0Eh	WORD	file type
0000h unidentified
0001h native file format
0002h ASCII
0003h FaxBIOS Tiff Class F
 10h 80 BYTEs	file name
 60h 80 BYTEs	font token
 B0h	WORD	conversion options bitmap
 B2h	WORD	resolution
0000h standard 98 lines per inch, 204 dpi
0001h fine 196 lines per inch, 204 dpi
0002h Group4 300 dpi
0003h Group4 400 dpi
 B4h	WORD	page length
0000h 279 mm (11 in)
0001h 297 mm (11.69 in)
0002h 364 mm (14.33 in)
0003h unlimited
 B6h	WORD	page width
0000h 215 mm (8.46 in)
0001h 255 mm (10.04 in)
0002h 303 mm (11.93 in)
0003h 151 mm (5.91 in)
0004h 107 mm (4.21 in)
 B8h	WORD	binary file transfer specification
0000h only as FAX
0001h only as file (for non-faxable files)
0002h as file when possible else FAX
 BAh	WORD	seam flag (nonzero for seam with next)
 BCh	WORD	delete flag (nonzero to delete when done)
 BEh  6 BYTEs	future expansion
 C4h	WORD	structure size


SCHED_SET_PARAMS command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	scheduler handle
 0Eh	DWORD	time to send
 10h 10 BYTEs	priority token
 1Ch 80 BYTEs	logo file token
 6Ch 80 BYTEs	signature file token
 BCh 80 BYTEs	cover page token
10Ch 40 BYTEs	Subject text
134h 40 BYTEs	From text
15Ch	WORD	user ID
15Eh  6 BYTEs	future expansion
164h	WORD	structure size


SCHED_CLOSE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	scheduler handle
 0Eh	WORD	envelope ID generated
 10h  6 BYTEs	future expansion
 16h	WORD	structure size


SLOG_OPEN, SLOG_CLOSE, RLOG_OPEN, RLOG_CLOSE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	log handle
 0Eh	WORD	number of entries
 10h  6 BYTEs	future expansion
 16h	WORD	structure size


GRAPH_GET_FILE_TYPE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch 80 BYTEs	filename
 5Ch	WORD	file type
0000h unidentified
0001h native file format
0002h ASCII
0003h FaxBIOS Tiff Class F
 5Eh	WORD	bitmap of supported capabilities
 60h  6 BYTEs	future expansion
 66h	WORD	structure size


GRAPH_CREATE_FILE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch 80 BYTEs	filename
 5Ch	WORD	graph handle
 5Eh  6 BYTEs	future expansion
 64h	WORD	structure size


GRAPH_CLOSE_FILE, GRAPH_END_PAGE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	graph handle
 0Eh  6 BYTEs	future expansion
 14h	WORD	structure size


GRAPH_CREATE_PAGE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	graph handle
 0Eh	WORD	resolution
 10h	WORD	page width
 12h  6 BYTEs	future expansion
 18h	WORD	structure size


GRAPH_WRITE_PAGE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	graph handle
 0Eh	DWORD	pointer to storage for image
 12h	WORD	band height in lines
 14h	WORD	width of page image in bytes
 16h	WORD	facsimile page width constant
 18h	WORD	width of page image in bits
 1Ah	WORD	number of bytes actually processed
 1Ch  6 BYTEs	future expansion
 22h	WORD	structure size


GRAPH_OPEN_FILE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch 80 BYTEs	filename
 5Ch	WORD	file type
 5Eh	WORD	graph handle
 60h	WORD	number of pages
 62h  6 BYTEs	future expansion
 68h	WORD	structure size


GRAPH_GOTO_PAGE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	graph handle
 0Eh	WORD	page number
 10h	WORD	vertical resolution
 12h	WORD	page width
 14h	DWORD	page length
 18h  6 BYTEs	future expansion
 1Eh	WORD	structure size


GRAPH_READ_PAGE command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	graph handle
 0Eh	DWORD	pointer to storage for image
 12h	WORD	band height in lines
 14h	WORD	width of page image in bytes
 16h	WORD	facsimile page width constant
 18h	WORD	width of page image in bits
 1Ah	WORD	number of bytes actually processed
 1Ch  6 BYTEs	future expansion
 22h	WORD	structure size


IOCTL_ANSWER_FAX command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	device number
 0Eh  6 BYTEs	future expansion
 14h	WORD	structure size


IOCTL_DIAL command buffer:

Size	Description
 00h 12 BYTEs	common data (see SYS_LOGOUT above)
 0Ch	WORD	device number
 0Eh  6 BYTEs	country code
 14h  6 BYTEs	city or area code
 1Ah 14 BYTEs	local number
 28h 14 BYTEs	extension
 36h 14 BYTEs	reserved
 4Eh  6 BYTEs	future expansion
 54h	WORD	structure size


DOS 5.0 code page information:

Size	Description
 00h	WORD	number of software code pages
 02h	WORD	??? (0003h)
 04h	WORD	number of hardware code pages
 06h  N WORDs	hardware code page numbers
      N WORDs	software (prepared) code pages (FFFFh if not yet prepared)


KEYB internal data:

Size	Description
 00h	DWORD	original INT 09
 04h	DWORD	original INT 2F
 08h  6 BYTEs	???
 0Eh	WORD	flags
 10h	BYTE	???
 11h	BYTE	???
 12h  4 BYTEs	???
 16h  2 BYTEs	country ID letters
 18h	WORD	current code page
---DOS 3.3---
 1Ah	WORD	pointer to first item in list of code page tables???
 1Ch	WORD	pointer to ??? item in list of code page tables
 1Eh  2 BYTEs	???
 20h	WORD	pointer to key translation data
 22h	WORD	pointer to last item in code page table list (see below)
 24h  9 BYTEs	???
---DOS 4.01---
 1Ah  2 BYTEs	???
 1Ch	WORD	pointer to first item in list of code page tables???
 1Eh	WORD	pointer to ??? item in list of code page tables
 20h  2 BYTEs	???
 22h	WORD	pointer to key translation data
 24h	WORD	pointer to last item in code page table list (see below)
 26h  9 BYTEs	???


code page table list entries:

Size	Description
 00h	WORD	pointer to next item, FFFFh = last
 02h	WORD	code page
 04h  2 BYTEs	???


translation data:

Size	Description
 00h	WORD	size of data in bytes, including this word
 02h N-2 BYTEs	???


command line buffer:

Size	Description
 00h	BYTE	max length of command line, as in INT 21/AH=0Ah
 01h	BYTE	count of bytes to follow, excluding terminating 0Dh
      N BYTEs	command line text, terminated by 0Dh


command name buffer:

Size	Description
 00h	BYTE	length of command name
 01h  N BYTEs	uppercased command name (blank-padded to 11 chars by 4DOS v4)


text header:

Size	Description
 00h	WORD	length of text (maximum 512 bytes)
 02h  N BYTEs	text of message
Note:	all CRLF sequences in message text are replaced by 14h


return data buffer:

Size	Description
 00h	BYTE	major version
 01h	BYTE	minor version
 02h	WORD	configuration flags given when the network was started
bit 0  /NVS != 0
bit 1  /NMS != 0
bit 2  /API
bit 3  /HIM
bit 4  /LIM
bit 5  /ENC
bit 6  /POP
bit 7  /EMS
bit 8  /RPL
bits 9-12 Reserved
bit 13	RDR started
bit 14	RCV started
bit 15	User is currently logged on
 04h 15 BYTEs	NET START machine name (space padded)
 13h	BYTE	00h
 14h 9	BYTEs	NET START domain name (NULL padded)
 1Dh	BYTE	00h
 1Eh 32 BYTEs	/WRK heuristics string (space padded, not terminated)
 3Eh	WORD	/SRV value
 40h	WORD	/ASG value
 42h	WORD	/NBC value
 44h	WORD	/NBS value
 46h	WORD	/BBC value
 48h	WORD	/BBS value
 4Ah	WORD	/PBC value
 4Ch	WORD	/PBS value
 4Eh	WORD	/PFS value
 50h	WORD	/PFT value
 52h	WORD	/PWT value
 54h	WORD	/KUC value
 56h	WORD	/KST value
 58h	WORD	/NVS value
 5Ah	WORD	/NMS value
 5Ch	WORD	/NDB value
 5Eh	WORD	/MBI value
 60h	BYTE	NetBIOS name number for machine name
 61h	BYTE	NetBIOS name number for domain name
 62h	WORD	NetBIOS sessions required for configuration
 64h	WORD	NetBIOS commands required for configuration
 66h	WORD	NetBIOS names required for configuration
 68h 128 BYTEs	NET START path (LANROOT)
 E8h	BYTE	00h


entry point record:

Size	Description
 00h	DWORD	pointer to ??? entry point in LSL
 04h	DWORD	pointer to ??? entry point in LSL


external data block:

Size	Description
 00h	BYTE	CAS major version
 01h	BYTE	CAS minor version
 02h 68 BYTEs	ASCIZ path to directory containing CAS software, ends in slash
 46h 13 BYTEs	ASCIZ name of current phonebook (in CAS directory)
 53h 13 BYTEs	ASCIZ name of current logo file (in CAS directory)
 60h 32 BYTEs	ASCIZ default sender name
 80h 21 BYTEs	ASCIZ CCITT identification of fax device
 95h 107 BYTEs	reserved


status area:

Size	Description
 00h	BYTE	event type
00h send
01h receive
02h polled send
03h polled receive
04h to 7Fh reserved
FFh serious hardware error
 01h	BYTE	transfer type
00h 200x200 dpi, FAX mode
01h 100x200 dpi, FAX mode
02h file transfer mode
03h to 7Fh reserved
 02h	WORD	event status
0000h completed successfully
0001h waiting
0002h number dialed
0003h connected, sending
0004h connected, receiving
0005h aborted
0006h to 007Fh reserved
0080h to 7FFFh application-specific events
8000h to FFFFh error codes
 04h	WORD	event time (packed DOS time format, see INT 21/AX=5700h)
 06h	WORD	event date (packed DOS date format, see INT 21/AX=5700h)
 08h	WORD	number of files to transfer, max 7FFFh
 0Ah	WORD	offset of file transfer record
 0Ch 47 BYTEs	ASCIZ phone number to call
 3Bh 64 BYTEs	ASCIZ application-specific tag string
 7Bh	BYTE	reserved (00h)
 7Ch	BYTE	connect time, seconds
 7Dh	BYTE	connect time, minutes
 7Eh	BYTE	connect time, hours
 7Fh	DWORD	total number of pages in all files
 83h	DWORD	pages already transmitted
 87h	WORD	number of files already transmitted
 89h	BYTE	cover page flag
00h don't transmit cover page
01h transmit cover page
02h to 7Fh reserved
 8Ah	WORD	total number of transmission errors
 8Ch 78 BYTEs	reserved (zeros)
 DAh 21 BYTEs	ASCIZ remote FAX's CCITT identification
 EFH 32 BYTEs	ASCIZ destination name
10Fh 32 BYTEs	ASCIZ sender name
12Fh 80 BYTEs	filename of PCX logo file (max 1780x800 pixels)
17Fh 128 BYTEs	file transfer record for current event (see below)


file transfer record:

Size	Description
 00h	BYTE	file type (ignored unless FAX)
00h ASCII
01h PCX
02h DCX
03h to 7Fh reserved
 01h	BYTE	text size for ASCII FAX file
00h = 80 columns by 66 lines (11 inches)
01h = 132 columns by 88 lines (11 inches)
02h to 7Fh reserved
 02h	BYTE	status of file
00h untouched
01h opened
02h moved
03h deleted
04h not yet received
05h to 7Fh reserved
 03h	DWORD	bytes already transmitted
 07h	DWORD	file size in bytes
 0Bh	WORD	pages alread transmitted
 0Dh	WORD	number of pages in file
 0Fh 80 BYTEs	ASCIZ filename
 5Fh	BYTE	1/8 inch page length
if page length below set to 01h through 7Fh, this value
specifies additional 1/8 inch increments to page length
 60h	BYTE	page length
00h = 11 inches
01h to 7Fh = page length is this number of inches plus value of
1/8 inch field above
80h to FEh reserved
FFh = ASCII pages ending with formfeed
 61h 31 BYTEs	reserved (zeros)


status buffer for Intel Connection CoProcessor:

Size	Description
 00h	BYTE	bit flags
bit 7: hardware busy sending or receiving
bit 6: last page of data
bit 5: no data on current page
bit 4: retransmit request for current page being transmitted
bit 3: NSF mode active
bits 2-0: reserved
 01h	BYTE	number of kilobytes of free buffer space
 02h	BYTE	page buffer status
bit 7: Connection CoProcessor has documents to send
bits 6-0: number of pages in buffer
 03h	BYTE	number of retries left for dialing number
 04h	BYTE	page number to retransmit
 05h	BYTE	communications status
bit 7: originating call
bit 6: FAX message to be sent
bit 5: on line
bit 4: ring detected and receive enabled
bit 3: buffer dumped on receive
bits 2-0: hardware sequence state
000 idle
001 dial
010 answer
011 transmit
100 receive
101 pre-message
110 post-message
111 disconnect
 06h	BYTE	baud rate
bit 7: reserved
bits 6-4: baud rate
000 = 300 baud	(V.21 SDLC or HDLC mode)
100 = 2400 baud (V.27 ter)
101 = 4800 baud (V.27 ter)
110 = 7200 baud (V.29)
111 = 9600 baud (V.29)
bits 3-0: reserved, should be 0110
 07h  3 BYTEs	reserved
 0Ah	BYTE	hardware status
bit 7: modem option installed
bit 6: Connection CoProcessor has control of DAA (not latched)
bit 5: on line (not latched)
bit 4: ring detected (not latched)
bit 3: data in command buffer (not latched)
bit 2: set if using DMA channel 1, clear if using DMA channel 3
bit 1: line length compensation bit 1 set (not latched)
bit 0: line length compensation bit 0 set (not latched)
 0Bh	BYTE	switch states
bit 7: reserved
bit 6: unused
bit 5: spare switch open
bit 4: FAX ADR1 switch open
bit 3: FAX ADR0 switch open
bit 2: alternate interrupt switch open
bit 1: COM SEL 1 switch open
bit 0: COM SEL 0 switch open
Note: valid combinations of bits 0-2 are
000  COM2 IRQ3 IObase 2F8h
001  COM1 IRQ4 IObase 3F8h
010  COM4 IRQ3 IObase 2E8h
011  COM3 IRQ4 IObase 3E8h
110  COM4 IRQ2 IObase 2E8h
111  COM3 IRQ5 IObase 3E8h
 0Ch	BYTE	bit flags
bit 7: reserved
bit 6: auxiliary relay forced ON
bit 5: modem select relay forced ON
bit 4: offhook relay forced ON
bit 3: 9600 bps enabled
bit 2: 7200 bps enabled
bit 1: 4800 bps enabled
bit 0: 2400 bps enabled
 0Dh	BYTE	reserved
 0Eh	WORD	error count (only valid while busy, reset when idle)
 10h	DWORD	size of nonstandard format (NSF) file in bytes
 14h	BYTE	'A' if Connection CoProcessor board present
 15h  9 BYTEs	reserved
 1Eh 21 BYTEs	ASCIZ CCITT identification
 33h 77 BYTEs	reserved


status buffer for Intel SatisFAXtion board:

Size	Description
 00h	BYTE	connection status flags
bit 7: busy in T.30 CCITT fax protocol
bit 6: data on current page/file (only used for block xfers)
bit 5: retransmission of last page requested
bit 4: in file transfer mode
bit 3: data in buffer
bit 2: data buffer dumped on receive
bit 1: 200x100 dpi resolution instead of 200x200 dpi
bit 0: data modem in use, FAX image modem not available
 01h	BYTE	board state
bit 7: reserved
bit 6: handset jack active, data and FAX modems not available
bits 5-3: current bit rate
    000	 300 bps (V.21 HDLC)
    100 2400 bps (V.27 ter)
    101 4800 bps (V.27 ter)
    110 7200 bps (V.29)
    111 9600 bps (V.29)
bits 2-0: T.30 CCITT protocol state
    000 idle
    001 dialing
    010 answering
    011 transmitting
    100 receiving
    101 pre-message
    110 post-message
    111 disconnect
 02h	BYTE	number of KB free in buffer
 03h	BYTE	number of pages or files in buffer
 04h	BYTE	number of redials remaining on current number
 05h	BYTE	FAX page number to retransmit
 06h	BYTE	current page/file in block transfer
 07h	BYTE	number of rings received (only if auto-answer enabled)
 08h	WORD	error count
 0Ah	DWORD	length of file being transferred
 0Eh  6 BYTEs	reserved
 14h	BYTE	'B' is SatisFAXtion board present
 15h 13 BYTEs	ASCIZ transfer agent name
 22h  5 BYTEs	ASCIZ transfer agent version number
 27h 13 BYTEs	ASCIZ resident loader name
 34h  5 BYTEs	ASCIZ resident loader version number
 39h 21 BYTEs	ASCIZ remote CSID
 4Eh 13 BYTEs	ASCIZ resident manager name
 5Bh  5 BYTEs	ASCIZ resident manager version number
 60h 32 BYTEs	reserved
Note:	the Intel Connection CoProcessor and SatisFAXtion may be distinguished
  by examining the byte at offset 14h


data area:

Size	Description
 00h	BYTE	transfer type
00h = 200x200 dpi, fax mode
01h = 100x200 dpi, fax mode
02h = file transfer mode
03h to 7Fh reserved
 01h	BYTE	text size
00h = 80 columns
01h = 132 columns
02h to 7Fh reserved
 02h	WORD	time to send (DOS packed time format, see INT 21/AX=5700h)
 04h	WORD	date to send (DOS packed date format, see INT 21/AX=5700h)
 06h 32 BYTEs	ASCIZ destination name
 26h 80 BYTEs	ASCIZ name of file to send
 76h 47 BYTEs	ASCIZ phone number to dial
 A5h 64 BYTEs	ASCIZ application-specific tag string
 E5h	BYTE	reserved (00h)
 E6h	BYTE	cover page
00h don't send cover page
01h send cover page
02h to 7Fh reserved
 E7h 23 BYTEs	reserved (zeros)
 FEh variable	ASCIZ string containing text of cover page (if cover page flag
set to 01h)


structure:

Size	Description
 00h	WORD	image source (0 = conventional memory, 1 = expanded memory)
 02h	DWORD	pointer to image data
 06h	WORD	scan line on which to place
 08h	WORD	bit offset from start of scan line at which to place
 0Ah	WORD	density of bitmap data (300, 600, or 1200 dpi)
 0Ch	WORD	width in bits of data
 0Eh	WORD	source logical page number
 10h	WORD	source handle (only if source in expanded memory)
 12h	WORD	source offset (only if source in expanded memory)


info buffer:

Size	Description
 00h	WORD	20h  (total size of buffer)
 02h	BYTE	suspend-once mode active if nonzero
 03h	BYTE	00h active, 01h suspended
 04h	BYTE	00h quiet, 01h verbose
 05h	BYTE	"Borland support" (allowing INT 21/AX=4B01h) on if nonzero
 06h 26 BYTEs	unused???


structure:

Size	Description
 00h	WORD	image source (0 = conventional memory, 1 = expanded memory)
 02h	DWORD	pointer to image data
 06h	WORD	horizontal position on paper of left edge (in 1200 dpi units)
 08h	WORD	vertical position on paper of top edge (in 1200 dpi units)
 0Ah	WORD	left cropping (currently must be zero)
 0Ch	WORD	top cropping (currently must be zero)
 0Eh	WORD	width (currently must be 8000h)
 10h	WORD	height (currently must be 8000h)
 12h	WORD	horizontal size of image in 1200 dpi units
 14h	WORD	vertical size of image in 1200 dpi units
 16h	WORD	aspect ratio (currently reserved)
 18h	WORD	initialization flag (if 01h, initialization is performed)
 1Ah	WORD	pixels per line of source data
 1Ch	WORD	number of scan lines in source data
 1Eh	WORD	number of scan lines in packet
 20h	WORD	bits per pixel (1,2,4,6, or 8)
 22h	WORD	pixels per byte (1,2,4, or 8)
 24h	WORD	compression type (currently only 00h [uncompressed] supported)
 26h	WORD	source page number (if in expanded memory)
 28h	WORD	source handle (if in expanded memory)
 2Ah	WORD	source offset (if in expanded memory)


structure:

Size	Description
 00h	BYTE	style
44h ('D') diamond style
4Ch ('L') line style
 01h	BYTE	reserved (00h)
 02h	WORD	frequency in lines per inch [sic]
currently, coerced to nearest of 50, 60, 68, 70, 75, 85, or 100
 04h	WORD	screen angle in degrees (-360 to 360)
currently coerced to nearest of -45, 0, 45, or 90


palette structure:

Size	Description
 00h	BYTE	bits per pixel for which palette is to be used (1,2,4,6, or 8)
 01h	2**N	palette translation values, one per possible pixel value


MDEBUG identification table:

Size	Description
 -2	WORD	entry offset
 00h	WORD	CS of MDEBUG
 02h	DWORD	old INT 08h vector
 06h	DWORD	old INT 09h vector
 0Ah	DWORD	address INT 16h routine used by MDEBUG
 0Eh	BYTE	length of version string
 0Fh  N BYTEs	version string


MDEBUG data structure:

Size	Description
 00h	WORD	register SE
 02h	WORD	register OF
 04h	WORD	register FS
 06h	WORD	register FO
 08h	WORD	register AX
 0Ah	WORD	register BX
 0Ch	WORD	register CX
 0Eh	WORD	register DX
 10h	WORD	register SI
 12h	WORD	register DI
 14h	WORD	register DS
 16h	WORD	register ES
 18h	WORD	register BP
 1Ah	WORD	register SS
 1Ch	WORD	register SP
 1Eh	WORD	register FL (flags)
 20h	WORD	register R0
 22h	WORD	register R1
 24h	WORD	register R2
 26h	WORD	register R3
 28h	WORD	register R4
 2Ah	WORD	register R5
 2Ch	WORD	register R6
 2Eh	WORD	register R7
 30h	WORD	register R8
 32h	WORD	register CS, return-address
 34h	WORD	register IP, return-address
 36h	DWORD	saved pointer to data for key <F6> (v1.60)
saved monitor address (v1.70)
 3Ah 12 WORDs	saved register values on last popup entry (for <F8> key)
(original register values at popup entry of MDEBUG)
AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags
 52h 12 WORDs	saved register values on last popup exit (for <SHIFT-F8> key)
AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags
 6Ah	DWORD	address of the DOS-invars-table
 6Eh	DWORD	address of the InDOS flag
 72h	WORD	offset of the register which is used for the segment of the
first monitor window
 74h	WORD	offset of the register which is used for the offset of the
first monitor window
 76h	WORD	name of the register which is used for the segment of the
first monitor segment
 78h	WORD	name of the register which is used for the offset of the first
monitor window
 7Ah	WORD	pseudo register 1
 7Ch	WORD	pseudo register 2


the driver identification table:

Size	Description
 00h  26 BYTEs	 signature "Kommandotreiber für MDEBUG"
     ^- Note: ASCII 129,German U-umlaut
 27h  12 BYTEs	 name of driver, e.g. "MDHISDRV.COM"
 each driver must have a unique name


partial map context (EMS 3.2):

Size	Description
 00h	BYTE	EMS version ID (32h)
 01h	WORD	EMM handle for this entry
 03h	BYTE	number of frames
 04h	BYTE	first page frame
 05h	WORD	offset from ES to previously saved map


partial map context (EMS 4.0):

Size	Description
 00h	BYTE	EMS version ID (40h)
 01h	WORD	mappable segment count
 03h  N WORD	mappable segments
WORD	offset to previously saved map???


EXEC record:

Size	Description
 00h	WORD	offset of ASCIZ program name in same segment as EXEC record
 02h	WORD	offset of DOS commandline in same segment as EXEC record
 04h	WORD	segment of environment for child process (see INT 21/AH=26h)


4DOS v4.0 data area:

Size	Description
 00h  2 BYTEs	???
 06h	WORD	XMS handle for swapping
???


buffer:

Size	Description
 00h  8 WORDs	table of colors/attributes (see notes above)
 10h	BYTE	flags
bit 0: program is in critical section, so flash double
exclamation mark
bit 1: program is in safe code, so flash the heart character
 11h	WORD	position of heartbeat on screen, normally 009Eh (last column
of second line)


TSR info list:

Size	Description
 00h  9 BYTEs	blank-padded ASCIZ program name
 09h	BYTE	program ID
 0Ah	WORD	program's PSP segment
 0Ch	WORD	program version (major in high byte)
 0Eh	DWORD	pointer to next item in info list or 0000h:0000h
 12h	BYTE	number of interrupts hooked
 13h  5 BYTEs	interrupt numbers hooked by program
 18h  8 BYTEs	reserved


information for one process (v1.00):

Size	Description
 00h	BYTE	flags
bit 7: process slot is valid
 01h	WORD	offset into DESQVIEW.DVO of program's record if started from
Open Windows menu, else undefined
 03h	WORD	Switch Windows window number
 05h	WORD	segment of process handle
 07h	WORD	number of tasks owned by process
 09h	WORD	mapping context of process
 0Bh	DWORD	hook for other programs


information for one process (v1.10-v2.00):

Size	Description
 00h	BYTE	flags
bit 7: valid record
    6: (v2.00+) record is allocated; if bit 7 clear, process
is "(starting)" and only offsets 01h and 09h are valid
    5: (v2.00+) this app currently owns the CPU
    4: reserved (0)
    3: DESQview system task
    2: reserved (0)
    1: task has keyboard (currently unused)
    0: task swapped out (currently unused)
 01h	WORD	Open Window keys
 03h	WORD	Switch Windows number
 05h	WORD	segment of process handle
 07h	WORD	number of tasks for process
 09h	WORD	process mapping context
 0Bh	DWORD	time process started (relative to start of DESQview)
 0Fh	DWORD	time process last got CPU (relative to start of DESQview)
 13h	DWORD	time process last gave up CPU (relative to start of DESQview)
 17h	DWORD	total CPU time since process started
 1Bh	DWORD	CPU time at start of current instantaneous interval
 1Fh	DWORD	CPU time in current instantaneous interval
 23h	DWORD	hook for other programs
Note:	all times are in 1/100s for v1.10, in 1/18s for v1.11+


XMS XDI structure:

Size	Description
 00h	DWORD	pointer to 10-byte record???
 04h	DWORD	pointer to next XMS XDI structure
 08h	WORD	mapping context
 0Ah	BYTE	???
 0Bh  5 BYTEs	XMS entry point to return for INT 2F/AX=4310h
(FAR jump to next field)
 10h  6 BYTEs	FAR handler for XMS driver entry point
(consists of a FAR CALL followed by RETF)


returned data structure for ANARKEY v2.0:

Size	Description
 -7   7 BYTEs	signature ('ANARKEY')
 00h	WORD	??? (I see 0001h in v2.0)
 02h	WORD	??? (I see 0001h in v2.0)
 04h	WORD	??? (I see 0 in v2.0)
 06h	WORD	PSP segment of next program loaded


returned data structure for ANARKEY v3+:

Size	Description
 -1	BYTE	multiplex number
 00h	WORD	??? (I see 0001h in v3.0-4.0)
 02h	WORD	??? (I see 0001h in v3.0-4.0)
 04h	BYTE	??? (I see 0 in v3.0-4.0)
 05h	WORD	PSP segment of next program loaded


memory block info:

Size	Description
 00h	WORD	flags
bit 0: set if data segment rather than code segment
bit 1: information valid
bit 2: set if DOS memory block rather than DPMI memory block
bit 4: ???
bit 15: set if no LDT selectors for memory block???
 02h	DWORD	block size in bytes
---DPMI memory block---
 06h	DWORD	DPMI memory block handle
---DOS memory block---
 06h	WORD	real-mode segment of memory block
 08h	WORD	selector of memory block
---
 0Ah	DWORD	linear address of memory
 0Eh	WORD	memory operation error code
0008h no more free LDT descriptors
---if flags bit 0 clear---
 10h	WORD	code segment selector for memory block or 0000h or FFFFh
 12h	WORD	data alias selector for memory block or 0000h or FFFFh
---if flags bit 0 set---
 10h	WORD	data segment selector for memory block or 0000h or FFFFh
 12h	WORD	unused???


DPMILOAD data:

Size	Description
 00h 12 BYTEs	???
 0Ch	WORD	??? bit flags
 0Eh 14 BYTEs	???
 1Ch	WORD	number of memory control records
 1Eh 25 BYTEs	???
 37h	BYTE	??? bit flags
bit 4: data valid???
 38h  4 BYTEs	???
 3Ch	WORD	???
 3Eh 12 BYTEs	???
 46h	BYTE	??? counter
 47h	BYTE	???
 48h	BYTE	???
 49h	BYTE	???
 4Ah	WORD	???
 4Ch  2 BYTEs	???
 4Eh	WORD	offset of array of 64-byte memory control records
 52h	WORD	offset of name list (see below)
 54h  4 BYTEs	???
 58h	WORD	offset of array of 6-byte objects
 5Ah  8 BYTEs	???
 62h  9 BYTEs	ASCIZ name for ???
 6Bh  9 BYTEs	ASCIZ name for ???
???


name list entry [array]:

Size	Description
 00h	BYTE	length of name (00h if end of array)
 01h  N BYTEs	name
 N+1	WORD	1-based index into array of unknown 6-byte objects


6-byte objects:

Size	Description
 00h	BYTE	???
 01h	BYTE	???
 02h	BYTE	???
 03h	BYTE	1-based index of memory control record
 04h	WORD	???


memory control record:

Size	Description
 00h 20 BYTEs	memory block info (see AX=FB42h/BX=0002h)
 14h  6 BYTEs	???
 1Ah	BYTE	???
 1Bh  2 BYTEs	???
 1Dh	BYTE	??? bit flags
 1Eh 14 BYTEs	???
 2Ch	DWORD	pointer to ??? memory control record or 0000h:0000h
 30h	DWORD	pointer to ??? memory control record or 0000h:0000h
 34h	DWORD	pointer to next??? memory control record or 0000h:0000h
 38h	DWORD	pointer to prev??? memory control record or 0000h:0000h
 3Ch  4 BYTEs	???
Note:	the pointers at offsets 2Ch and 30h form a doubly-linked list, as do
  the pointers at offsets 34h and 38h


response buffer:

Size	Description
 00h  4 BYTEs	signature "IABH"
 04h	DWORD	pointer to FAR extender entry point


response buffer:

Size	Description
 00h  4 BYTEs	signature "IABH"
 04h	WORD	success indicator
0001h failed (INT 2F hooked by another program)
unchanged if successful
 06h	WORD	segment of ???
 08h	WORD	segment of ??? memory block to free if nonzero
 0Ah	WORD	segment of ??? memory block to free if nonzero


entry point data structure:

Size	Description
 00h  3 BYTEs	signature "FB "
 03h	BYTE	driver major version number???
 04h	DWORD	speech driver entry point
 08h 24 BYTEs	???
 20h  ? BYTEs	data buffer for calling speech driver


DISKMON.INI file:

Size	Description
-6Ch 108 BYTEs	(in memory copy only)
list of filenames which are always protected:
  IBMBIO.COM/IBMDOS.COM, IO.SYS/MSDOS.SYS, TBIOS.SYS/TDOS.SYS,
  MIO.SYS/IO.BIN, COMMAND.COM
 00h	BYTE	??? always 01h
 01h	BYTE	disk light (00h off, 01h on)
 02h	BYTE	disk protection (00h off, 01h on)
 03h	BYTE	protected areas
01h system area
02h files
03h system area and files
04h entire disk
 04h	BYTE	floppy access (00h not allowed, 01h allowed)
 05h 27 BYTEs	filename extension list (9 entries)
(lowercase, blank padded or = 000000h)
 20h 240 BYTEs	filename list (20 entries)
(lowercase, name and extension blank padded, with '.')
Note:	CX:0508h -> copy in installed TSR (v5)
CX:052Fh -> copy in installed TSR (v6)


FILESAVE.INI / EP.INI file:

Size	Description
 00h 26 BITs	drive list (bit set: file protection on, cleared: off):
 00h	BYTE	drives	A: - H:
 01h	BYTE	drives	I: - P:
 02h	BYTE	drives	Q: - X:
 03h	BYTE	drives	Y: - Z:
 04h	BYTE	which files to protect
00h all files
01h all files with extension in list
02h all files except those with extension in list
 05h 27 BYTEs	filename extension list (9 entries, uppercase, ASCIZ)
 20h	BYTE	include files with archive bit clear (00h no, 01h yes)
 21h	WORD	number of days after which files are purged (0 = never)
 23h	WORD	max kilobytes of erased file space to hold (0 = all)
Note:	CX:03D2h -> copy in installed TSR (v5.0)
CX:03F5h -> copy in installed TSR (v6.0)


descriptor buffer entry (one per descriptor to get):

Size	Description
 00h	WORD	selector (set by client)
 02h	QWORD	descriptor (set by host)


descriptor buffer entry (one per descriptor to set):

Size	Description
 00h	WORD	selector
 02h	QWORD	descriptor


stack frame for 16-bit programs: (offset from SS:SP)

Size	Description
 00h	DWORD	return CS:IP (do not change)
 04h	WORD	error code
 06h	DWORD	CS:IP of exception
 0Ah	WORD	flags
 0Ch	DWORD	SS:SP


stack frame for 32-bit programs: (offset from SS:ESP)

Size	Description
 00h	DWORD	return EIP (do not change)
 04h	WORD	return CS selector (do not change)
 06h	WORD	reserved (do not change)
 08h	DWORD	error code
 0Ch	DWORD	EIP of exception
 10h	WORD	CS selector of exception
 12h	WORD	reserved (do not change)
 14h	DWORD	EFLAGS
 18h	DWORD	ESP
 1Ch	WORD	SS
 1Eh	WORD	reserved (do not change)


real mode call structure:

Size	Description
 00h	DWORD	EDI
 04h	DWORD	ESI
 08h	DWORD	EBP
 0Ch	DWORD	reserved (00h)
 10h	DWORD	EBX
 14h	DWORD	EDX
 18h	DWORD	ECX
 1Ch	DWORD	EAX
 20h	WORD	flags
 22h	WORD	ES
 24h	WORD	DS
 26h	WORD	FS
 28h	WORD	GS
 2Ah	WORD	IP
 2Ch	WORD	CS
 2Eh	WORD	SP
 30h	WORD	SS


buffer:

Size	Description
 00h	BYTE	host major version number
 01h	BYTE	host minor version number
 02h 126 BYTEs	ASCIZ host vendor name


memory information:

Size	Description
 00h	DWORD	largest available block in bytes
 04h	DWORD	maximum unlocked page allocation
 08h	DWORD	maximum locked page allocation
 0Ch	DWORD	total linear address space in pages
 10h	DWORD	total unlocked pages
 14h	DWORD	free pages
 18h	DWORD	total physical pages
 1Ch	DWORD	free linear address space in pages
 20h	DWORD	size of paging file/partition in pages
 24h 12 BYTEs	reserved


page attribute words:

bits 0-2	page type
000 uncommitted
001 committed
010 mapped (see AX=0508h,AX=0509h)
other currently unused
 bit 3	page is read/write rather than read-only
 bit 4	accessed/dirty bits supplied in bits 5 and 6
 bit 5	page has been accessed (only valid if bit 4 set)
 bit 6	page has been written (only valid if bit 4 set)
 bits 7-15	reserved (0)


memory information:

Size	Description
 00h	DWORD	total allocated bytes of physical memory controlled by host
 04h	DWORD	total allocated bytes of virtual memory controlled by host
 08h	DWORD	total available bytes of virtual memory controlled by host
 0Ch	DWORD	total allocated bytes of virtual memory for curr virtual mach
 10h	DWORD	total available bytes of virtual memory for curr virtual mach
 14h	DWORD	total allocated bytes of virtual memory for current client
 18h	DWORD	total available bytes of virtual memory for current client
 1Ch	DWORD	total locked bytes for current client
 20h	DWORD	maximum locked bytes for current client
 24h	DWORD	highest linear address available to current client
 28h	DWORD	largest available memory block in bytes
 2Ch	DWORD	minimum allocation unit in bytes
 30h	DWORD	allocation alignment unit size in bytes
 34h 76 BYTEs	reserved (00h)


resident service provider structure:

Size	Description
 00h	QWORD	descriptor for 16-bit data segment
 08h	QWORD	descriptor for 16-bit code segment (zeros if not supported)
 10h	WORD	offset of 16-bit callback procedure
 12h  2 BYTEs	reserved
 14h	QWORD	descriptor for 32-bit data segment
 1Ch	QWORD	descriptor for 32-bit code segment (zeros if not supported)
 24h	DWORD	offset of 32-bit callback procedure


shared memory allocation request structure:

Size	Description
 00h	DWORD	requested length of shared memory block in bytes
 04h	DWORD	(return) allocated length of block
 08h	DWORD	(return) shared memory handle
 0Ch	DWORD	(return) linear address of memory block
 10h  6 BYTEs	selector:offset32 of ASCIZ name for memory block
(name max 128 bytes)
 16h  2 BYTEs	reserved
 18h  4 BYTEs	reserved (00h)


update region list:

Size	Description
 00h	WORD	left-most column
 02h	WORD	top-most row
 04h	WORD	right-most column
 06h	WORD	bottom-most row


acceleration profile data:

Size	Description
 00h	BYTE	length of acceleration profile 1
 01h	BYTE	length of acceleration profile 2
 02h	BYTE	length of acceleration profile 3
 03h	BYTE	length of acceleration profile 4
 04h 32 BYTEs	threshold speeds for acceleration profile 1
 24h 32 BYTEs	threshold speeds for acceleration profile 2
 44h 32 BYTEs	threshold speeds for acceleration profile 3
 64h 32 BYTEs	threshold speeds for acceleration profile 4
 84h 32 BYTEs	speedup factor for acceleration profile 1
(10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
 A4h 32 BYTEs	speedup factor for acceleration profile 2
(10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
 C4h 32 BYTEs	speedup factor for acceleration profile 3
(10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
 E4h 32 BYTEs	speedup factor for acceleration profile 4
(10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
104h 16 BYTEs	name of acceleration profile 1 (blank-padded)
114h 16 BYTEs	name of acceleration profile 2 (blank-padded)
124h 16 BYTEs	name of acceleration profile 3 (blank-padded)
134h 16 BYTEs	name of acceleration profile 4 (blank-padded)
Note:	unused bytes in the threshold speed fields are filled with 7Fh and
  unused bytes in the speedup factor fields are filled with 10h


data buffer:

Size	Description
 00h	BYTE	mouse type
 01h	BYTE	current language
 02h	BYTE	horizontal sensitivity (00h-64h)
 03h	BYTE	vertical sensitivity (00h-64h)
 04h	BYTE	double-speed threshold (00h-64h)
 05h	BYTE	ballistic curve (01h-04h)
 06h	BYTE	interrupt rate (01h-04h)
 07h	BYTE	cursor override mask
 08h	BYTE	laptop adjustment
 09h	BYTE	memory type (00h-02h)
 0Ah	BYTE	SuperVGA support (00h,01h)
 0Bh	BYTE	rotation angle
 0Ch	BYTE	???
 0Dh	BYTE	primary button (01h-04h)
 0Eh	BYTE	secondary button (01h-04h)
 0Fh	BYTE	click lock enabled (00h,01h)
 10h 324 BYTEs	acceleration profile data (see AX=002Bh)
154h  5 BYTEs	??? (Microsoft driver, but not Logitech)


buffer:

Size	Description
 00h	WORD	I/O port address
 02h	BYTE	???
 03h	BYTE	interrupt number
 04h	BYTE	interrupt mask for interrupt controller
 05h  5 BYTEs	???


Microsoft version number:

Size	Description
 00h	BYTE	major version
 01h	BYTE	minor version (BCD)


data structure:

Size	Description
 00h	WORD	signature ABCDh
 02h	DWORD	pointer to info structure???
 06h  2 BYTEs	???
 08h	WORD	signature ABCDh


info structure:

Size	Description
 00h	WORD	driver version
 02h  8 BYTEs	???
 0Ah	WORD	segment of ???
???


parameter table:

Size	Description
 00h	WORD	baud rate divided by 100  (serial mouse only)
 02h	WORD	emulation	  (serial mouse only)
 04h	WORD	report rate	  (serial mouse only)
 06h	WORD	firmware revision	  (serial mouse only)
 08h	WORD	0	  (serial mouse only)
 0Ah	WORD	port	  (serial mouse only)
 0Ch	WORD	physical buttons
 0Eh	WORD	logical buttons


Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]

Size	Description
 00h	BYTE	vertical size of bitmap (00h - 10h)
 01h	BYTE	horizontal size of bitmap (00h - 10h)
 02h	BYTE	vertical hotspot position (00h - 10h)
 03h	BYTE	horizontal hotspot position (00h - 10h)
 04h 16 WORDs	cursor bitmap data
 14h 16 WORDs	screen bitmap data


Sacrifice Character Map [SMD_SMAP_STRUCT]

Size	Description
 00h	BYTE	bytes are character values (00h-FFh) used in place of the
 01h	BYTE	actual character for the corresponding position on the screen
 02h	BYTE	     +--------------+	  occupied by part or all of the mouse
 03h	BYTE	     | 0h | 1h | 2h |	  cursor
 04h	BYTE	     |----+----+----|
 05h	BYTE	     | 3h | 4h | 5h |
 06h	BYTE	     |----+----+----|
 07h	BYTE	     | 6h | 7h | 8h |
 08h	BYTE	     +--------------+


Program Information [SMD_INFO_STRUCT]

Size	Description
 00h	WORD	segment of old interrupt 33h handler
 02h	WORD	offset of old interrupt 33h handler
 04h	WORD	PSP of SMD
 06h	BYTE	ENABLE/DISABLE manual setting status
 07h	BYTE	ENABLE/DISABLE internal usage status


Task Control Block:

Size	Description
 00h  2 BYTEs	signature "HT"
 02h 23 BYTEs	???
 19h	BYTE	task time slice
 1Ah  7 BYTEs	???
 21h 11 BYTEs	name of currently executing task
 2Ch 79 BYTEs	???
 7Bh  4 BYTEs	user name
 7Fh	BYTE	current output class
 80h  7 BYTEs	protection access rights, 2 bits per class (writeable!)
???


fixed disk parameters:

Size	Description
 00h	WORD	number of cylinders
 02h	BYTE	number of heads
 03h	WORD	starting reduced write current cylinder (XT only, 0 for others)
 05h	WORD	starting write precompensation cylinder number
 07h	BYTE	maximum ECC burst length (XT only)
 08h	BYTE	control byte
   bits 0-2: drive option (XT only, 0 for others)
   bit 3:    set if more than 8 heads (AT and later only)
   bit 4:    always 0
   bit 5:    set if manufacturer's defect map on max cylinder+1
     (AT and later only)
   bit 6:    disable ECC retries
   bit 7:    disable access retries
 09h	BYTE	standard timeout (XT only, 0 for others)
 0Ah	BYTE	formatting timeout (XT only, 0 for others)
 0Bh	BYTE	timeout for checking drive (XT only, 0 for others)
 0Ch	WORD	cylinder number of landing zone (AT and later only)
 0Eh	BYTE	number of sectors per track (AT and later only)
 0Fh	BYTE	reserved


control block:

Size	Description
 00h	BYTE	file handle
 01h	DWORD	pointer to data in either I/O processor or Tube processor
 05h	DWORD	number of bytes to be transferred
 09h	DWORD	transfer address


control block:

Size	Description
 00h	WORD	address of CR-terminated filename
 02h	DWORD	load address of file
 06h	DWORD	execution address of file
 0Ah	DWORD	start address of data to save
 0Eh	DWORD	end address of data to save, or file attributes
file attributes in low byte:
    bit 0: no owner read access
    bit 1: no owner write access
    bit 2: not executable by owner
    bit 3: not deletable by owner
    bit 4: no public read access
    bit 5: no public write access
    bit 6: not executable with public access
    bit 7: not deletable with public access
other three bytes are filing-system specific file attributes


translation table:

Size	Description
 00h	BYTE	number of nonkeyboard scancodes in the table
 01h  N WORDs	high byte 00h (NUL) byte scancode with low order byte
representing the scancode mapped values relative to their
input values within the range of 56h through 7Eh


control block for function FAh:

Size	Description
 00h	BYTE	number of parameters sent to I/O processor (0Dh,0Eh)
 01h	BYTE	number of parameters read from I/O processor (01h)
 02h	DWORD	I/O processor address
 06h	DWORD	80186 segment:offset address
 0Ah	WORD	number of bytes to transfer
 0Ch	BYTE	operation type
00h write to 65C12 at 24 us/byte
01h read from 65C12 at 24 us/byte
02h write to 65C12 at 26 us/word
03h read from 65C12 at 26 us/word
04h write to 65C12 at 10 us/byte using 256-byte blocks
05h read from 65C12 at 10 us/byte using 256-byte blocks
 0Dh	BYTE	65C12 memory access control (only used if offset 00h = 0Eh)
bit 7: unused
bit 6: always use main screen memory if I/O addr 3000h-7FFFh
(overrides bit 5)
bit 5: use shadow screen memory if screen address specified
bit 4: use current ROM rather than ROM selected by bits 3-0
(only if I/O address between 8000h and BFFFh)
bits 3-0: paged ROM number


DMA descriptor structure (DDS):

Size	Description
 00h	DWORD	region size
 04h	DWORD	offset
 08h	WORD	segment/selector
 0Ah	WORD	buffer ID
 0Ch	DWORD	physical address


Extended DMA descriptor structure (EDDS):

Size	Description
 00h	DWORD	region size
 04h	DWORD	offset
 08h	WORD	segment/selector
 0Ah	WORD	reserved
 0Ch	WORD	number available
 0Eh	WORD	number used
 10h	DWORD	region 0 physical address
 14h	DWORD	region 0 size in bytes
 18h	DWORD	region 1 physical address
 1Ch	DWORD	region 1 size in bytes
...


Extended DMA descriptor structure (EDDS) with page table entries:

Size	Description
 00h	DWORD	region size
 04h	DWORD	offset
 08h	WORD	segment/selector
 0Ah	WORD	reserved
 0Ch	WORD	number available
 0Eh	WORD	number used
 10h	DWORD	page table entry 0 (same as 80386 page table entry)
 14h	DWORD	page table entry 1
...
Note:	bits 1-11 of the page table entries should be zero; bit 0 set if page
  is present and locked


CAM Control Block:

Size	Description
 00h	DWORD	physical address of this CCB
 04h	WORD	CAM control block length
 06h	BYTE	function code (see below)
 07h	BYTE	CAM status (see below)
 08h	BYTE	SCSI status
 09h	BYTE	path ID (FFh = XPT)
 0Ah	BYTE	target ID
 0Bh	BYTE	logical unit number
 0Ch	BYTE	CAM flags
bits 7-6: direction
00 reserved
01 in
10 out
11 no data transfer
bit 5: disable autosense
    4: scatter/gather
    3: disable callback on completion
    2: linked CDB
    1: tagged queue action enable
    0: CDB is a pointer
 0Dh	BYTE	CAM flags
bit 7: disable disconnect
    6: initiate synchronous transfers  \ mutually
    5: disable synchronous transfers   / exclusive
    4: SIM queue priority
1 head insertion
0 tail insertion (normal)
bit 3: SIM queue freeze
    2: engine synchronize
bits 1-0: reserved
 0Eh	BYTE	CAM address flags
bit 7: SG list/data (0 = host, 1 = engine)
bit 6: CDB pointer    (bits 6-1: 0=virtual addr, 1=phys addr)
bit 5: SG list/data
bit 4: sense buffer
bit 3: message buffer
bit 2: next CCB
bit 1: callback on completion
bit 0: reserved
 0Fh	BYTE	target-mode flags
bit 7: data buffer valid
bit 6: status valid
bit 5: message buffer valid
bit 4: reserved
bit 3: phase-cognizant mode
bit 2: target CCB available
bit 1: disable autodisconnect
bit 0: disable autosave/restore
---function 02h---
 10h	DWORD	pointer to 36-byte buffer for inquiry data or 0000h:0000h
 14h	BYTE	peripheral device type of target logical unit number
---function 03h---
 10h	BYTE	version number (00h-07h prior to rev 1.7, 08h = rev 1.7,
09h-FFh = rev no, i.e. 23h = rev 2.3)
 11h	BYTE	SCSI capabilities
bit 7: modify data pointers
    6: wide bus (32 bits)
    5: wide bus (16 bits)
    4: synchronous transfers
    3: linked commands
    2: reserved
    1: tagged queueing
    0: soft reset
 12h	BYTE	target mode support
bit 7: processor mode
    6: phase-cognizant mode
    5-0: reserved
 13h	BYTE	miscellaneous flags
bit 7: scanned high to low instead of low to high
    6: removables not included in scan
    5: inquiry data not kept by XPT
    4-0: reserved
 14h	WORD	engine count
 16h 14 BYTEs	vendor-specific data
 24h	DWORD	size of private data area
 28h	DWORD	asynchronous event capabilities
bits 31-24: vendor-specific
     23-8: reserved
7: new devices found during rescan
6: SIM module deregistered
5: SIM module registered
4: sent bus device reset to target
3: SCSI AEN
2: reserved
1: unsolicited reselection
0: unsolicited SCSI bus reset
 2Ch	BYTE	highest path ID assigned
 2Dh	BYTE	SCSI device ID of initiator
 2Eh  2 BYTEs	reserved
 30h 16 BYTEs	SIM vendor ID
 40h 16 BYTEs	HBA (host bus adaptor) vendor ID
 50h  4 BYTEs	operating-system dependant usage
---functions 00h,04h,11h,12h---
 no additional fields
---function 05h---
 10h	DWORD	asynchronous event enables (see function 03h above)
 14h	DWORD	pointer to asynchronous callback routine
 18h	DWORD	pointer to peripheral driver buffer
 1Ch	BYTE	size of peripheral buffer
---function 06h---
 10h	BYTE	peripheral device type of target
---functions 10h,13h---
 10h	DWORD	pointer to CCB to be aborted
---function 20h---
 10h	WORD	engine number
 12h	BYTE	engine type
00h buffer memory
01h lossless compression
02h lossy compression
03h encryption
 13h	BYTE	engine algorithm ID
00h vendor-unique
01h LZ1 variation 1 (STAC)
02h LZ2 variation 1 (HP DCZL)
03h LZ2 variation 2 (Infochip)
 14h	DWORD	engine memory size
---function 21h---
 10h	DWORD	pointer to peripheral driver
 14h  4 BYTEs	reserved
 18h	DWORD	OS-dependent request-mapping info
 1Ch	DWORD	address of completion callback routine
 20h	DWORD	pointer to scatter/gather list or data buffer
 24h	DWORD	length of data transfer
 28h	DWORD	pointer to engine buffer data
 2Ch  2 BYTEs	reserved
 2Eh	WORD	number of scatter/gather entries
 30h	DWORD	maximum destination data length
 34h	DWORD	length of destination data
 38h	DWORD	source residual length
 3Ch 12 BYTEs	reserved
 48h	DWORD	OS-dependent timeout value
 4Ch  4 BYTEs	reserved
 50h	WORD	engine number
 52h	WORD	vendor-unique flags
 54h  4 BYTEs	reserved
 58h  N BYTEs	private data area for SIM
---function 30h---
 10h	WORD	group 6 vendor-unique CDB length
 12h	WORD	group 7 vendor-unique CDB length
 14h	DWORD	pointer to target CCB list
 18h	WORD	number of target CCBs
---other functions---
 10h	DWORD	pointer to peripheral driver
 14h	DWORD	pointer to next CCB
 18h	DWORD	OS-dependent request mapping information
 1Ch	DWORD	address of completion callback routine
 20h	DWORD	pointer to scatter/gather list or data buffer
 24h	DWORD	length of data transfer
 28h	DWORD	pointer to sense info buffer
 2Ch	BYTE	length of sense info buffer
 2Dh	BYTE	CDB length
 2Eh	WORD	number of scatter/gather entries
 30h  4 BYTEs	reserved
 34h	BYTE	SCSI status
 35h  3 BYTEs	reserved
 38h	DWORD	residual length
 40h 12 BYTEs	Command Descriptor Block (CDB)
 44h	DWORD	OS-dependent timeout value
 48h	DWORD	pointer to message buffer
 4Ch	WORD	length of message buffer
 4Eh	WORD	vendor-unique flags
 50h	BYTE	tag queue action
 51h  3 BYTEs	reserved
 54h  N BYTEs	private data area for SIM


Network Control Block

Size	Description
 00h	BYTE	ncb_command (see below)
 01h	BYTE	ncb_retcode
 02h	BYTE	ncb_lsn
 03h	BYTE	ncb_num
 04h	DWORD	-> ncb_buffer
 08h	WORD	ncb_length
 0Ah 16 BYTEs	ncb_callname
 1Ah 16 BYTEs	ncb_name
 2Ah	BYTE	ncb_rto
 2Bh	BYTE	ncb_sto
 2Ch	DWORD	-> ncb_post	/* int (far *ncb_post)(); */
 30h	BYTE	ncb_lana_num
 31h	BYTE	ncb_cmd_cplt
 32h	DWORD	-> ncb_vname
 36h	BYTE	ncb_vnamelen
 37h  9 BYTEs	ncb_reserve
Note: fields 00h-31h are the same as for a standard NetBIOS NCB (see INT 5C)


Transfer Control Block:

Type	Description
 00h	BYTE	command code
B3h Status
F2h Activate
F3h Deactivate
F4h Send Data
 01h	BYTE	command identity
 02h	BYTE	virtual circuit ID
 03h	WORD	buffer length
 05h	DWORD	buffer pointer
 09h	BYTE	expedited data flag
 0Ah	BYTE	cancelable flag
 0Bh 16 BYTEs	local network address
 1Bh 16 BYTEs	remote network address
 2Bh	DWORD	asynchronous notification routine
 30h	DWORD	local network number
 34h	DWORD	remote network number
 38h	BYTE	call timeout
 39h	BYTE	not used
 3Ah  8 BYTEs	reserved
 42h	BYTE	command code extension
 43h	WORD	Blue Book MAC type


Network Control Block:

Size	Description
 00h	BYTE	command code (see below)
 01h	BYTE	return code
 02h	BYTE	local session number (LSN)
 03h	BYTE	"ncb_num" datagram table entry from ADD NAME
 04h	DWORD	-> I/O buffer
 08h	WORD	length of data in buffer
 0Ah 16 BYTEs	remote system to call
 1Ah 16 BYTEs	network name of local machine
 2Ah	BYTE	receive timeout in 1/2 seconds
 2Bh	BYTE	send timeout in 1/2 seconds
 2Ch	DWORD	-> FAR post handler	/* int (far *ncb_post)(); */
 30h	BYTE	network adapter number on which to execute command
00h-03h IBM NetBIOS specs
F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
 31h	BYTE	command completion code (see returned status above)
 32h 14 BYTEs	reserved for network card


structure "name":

Size	Description
 00h 16 BYTEs "nm_name" symbolic name
 10h	BYTE  "nm_num" number associated with name
 11h	BYTE  nm_status


structure "astatus":

Size	Description
 00h  6 BYTEs as_id
 06h	BYTE  as_jumpers
 07h	BYTE  as_post
 08h	BYTE  as_major
 09h	BYTE  as_minor
 0Ah	WORD  as_interval
 0Ch	WORD  as_crcerr
 0Eh	WORD  as_algerr
 10h	WORD  as_colerr
 12h	WORD  as_abterr
 14h	DWORD as_tcount
 18h	DWORD as_rcount
 1Ch	WORD  as_retran
 1Eh	WORD  as_xresrc
 20h  8 BYTEs as_res0
 28h	WORD  as_ncbfree
 2Ah	WORD  as_ncbmax
 2Ch	WORD  as_ncbx
 2Eh  4 BYTEs as_res1
 32h	WORD  as_sespend
 34h	WORD  as_msp
 36h	WORD  as_sesmax
 38h	WORD  as_bufsize
 3Ah	WORD  as_names
 3Ch 16 name structures	 as_name


structure "sstatus":

Size	Description
 00h	BYTE	number of sessions being reported
 01h	BYTE	number of sessions with this name
 02h	BYTE	number of outstanding receive datagrams
 03h	BYTE	number of outstanding ReceiveAnys
 04h	var	session structures (see below)


structure "session":

Size	Description
 00h	BYTE	local session number
 01h	BYTE	state
01h listen pending
02h call pending
03h session established
04h hangup pending
05h hangup done
06h session aborted
 02h 16 BYTEs	local name
 12h 16 BYTEs	remote name
 22h	BYTE	number of outstanding receives
 23h	BYTE	number of outstanding sends/chainsends


AppleTalk control block:

Size	Description
 00h	WORD	command code
01h "AT_INIT"	    initialize the driver
02h "AT_KILL"
03h "AT_GETNETINFO" get current network info incl init status
04h "AT_GETCLOCKTICKS"
05h "AT_STARTTIMER"
06h "AT_RESETTIMER"
07h "AT_CANCELTIMER"
10h "LAP_INSTALL"
11h "LAP_REMOVE"
12h "LAP_WRITE"
13h "LAP_READ"
14h "LAP_CANCEL"
20h "DDP_OPENSOCKET"
21h "DDP_CLOSESOCKET"
22h "DDP_WRITE"
23h "DDP_READ"
24h "DDP_CANCEL"
30h "NBP_REGISTER"
31h "NBP_REMOVE"
32h "NBP_LOOKUP"
33h "NBP_CONFIRM"
34h "NBP_CANCEL"
35h "ZIP_GETZONELIST"
36h "ZIP_GETMYZONE"
37h "ZIP_TAKEDOWN"
38h "ZIP_BRINGUP"
40h "ATP_OPENSOCKET"
41h "ATP_CLOSESOCKET"
42h "ATP_SENDREQUEST"
43h "ATP_GETREQUEST"
44h "ATP_SENDRESPONSE"
45h "ATP_ADDRESPONSE"
46h "ATP_CANCELTRANS"
47h "ATP_CANCELRESPONSE"
48h "ATP_CANCELREQUEST"
50h "ASP_GETPARMS"
51h "ASP_CLOSESESSION"
52h "ASP_CANCEL"
53h "ASP_INIT"
54h "ASP_KILL"
55h "ASP_GETSESSION"
56h "ASP_GETREQUEST"
57h "ASP_CMDREPLY"
58h "ASP_WRTCONTINUE"
59h "ASP_WRTREPLY"
5Ah "ASP_CLOSEREPLY"
5Bh "ASP_NEWSTATUS"
5Ch "ASP_ATTENTION"
5Dh "ASP_GETSTATUS"
5Eh "ASP_OPENSESSION"
5Fh "ASP_COMMAND"
60h "ASP_WRITE"
61h "ASP_GETATTENTION"
70h "PAP_OPEN"
71h "PAP_CLOSE"
72h "PAP_READ"
73h "PAP_WRITE"
74h "PAP_STATUS"
75h "PAP_REGNAME"
76h "PAP_REMNAME"
77h "PAP_INIT"
78h "PAP_NEWSTATUS"
79h "PAP_GETNEXTJOB"
7Ah "PAP_KILL"
7Bh "PAP_CANCEL"

or with the following flags
8000h start command then return
4000h wait for interrupt service to complete
 02h	WORD	returned status
0000h success (already initialized if func 01h)
 04h	DWORD	pointer to completion function
 08h	WORD	network number
 0Ah	BYTE	node ID
---if general func (01h,03h), control block continues:
 0Bh	BYTE	"inf_abridge"
 0Ch	WORD	"inf_config"
 0Eh	DWORD	pointer to buffer
 12h	WORD	buffer size
---if DDP function (20h-24h), control block continues:
 0Bh	BYTE	"ddp_addr_socket"
 0Ch	BYTE	"ddp_socket"
 0Dh	BYTE	"ddp_type"
 0Eh	DWORD	pointer to buffer
 12h	WORD	buffer size
 14h	BYTE	"ddp_chksum"
---if Name Binding Protocol (30h-34h), control block continues:
 0Bh	BYTE	"nbp_addr_socket"
 0Ch	WORD	"nbp_toget"
 0Eh	DWORD	pointer to buffer
 12h	WORD	buffer size
 14h	BYTE	"nbp_interval"
 15h	BYTE	"nbp_retry"
 16h	DWORD	"nbp_entptr"
---if AppleTalk Transaction Protocol (42h), control block continues:
 0Bh	BYTE	"atp_addr_socket"
 0Ch	WORD	"atp_socket"
 0Eh	DWORD	pointer to buffer
 12h	WORD	buffer size
 14h	BYTE	"atp_interval"
 15h	BYTE	"atp_retry"
 16h	BYTE	ATP flags
bit 5: exactly one transaction
 17h	BYTE	"atp_seqbit"
 18h	BYTE	transaction ID
 19h  4 BYTEs	ATP user bytes
 1Dh	BYTE	number of BDS buffers
 1Eh	BYTE	number of BDS responses
 1Fh	DWORD	pointer to BDS buffers (see below)


Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:

Size	Description
 00h	WORD	"tup_address_network"
 02h	BYTE	"tup_address_notid"
 03h	BYTE	"tup_address_socket"
 04h	BYTE	"tup_enum"
 05h 99 BYTEs	name


BDS entries:

Size	Description
 00h	DWORD	pointer to buffer
 04h	WORD	size of buffer
 06h	WORD	BDS data size
 08h  4 BYTEs	"bds_userbytes"


CCB:

Size	Description
 00h	BYTE	adapter
 01h	BYTE	command code
 02h	BYTE	return code
 03h	BYTE	work
 04h	DWORD	pointer to ???
 08h	DWORD	pointer to completion function???
 0Ch	DWORD	pointer to parameters???


graphics info record:

Size	Description
 00h	BYTE	current video mode
 01h	BYTE	default video mode
 02h	WORD	display width in pixels
 04h	WORD	display height in pixels
 06h	WORD	current pen column
 08h	WORD	current pen row
 0Ah	WORD	current line type
 0Ch	WORD	current replacement rule
 0Eh	WORD	current pen color
 10h	WORD	current leftmost column of clip region
 12h	WORD	current rightmost column of clip region
 14h	WORD	current topmost row of clip region
 16h	WORD	current bottommost row of clip region
 18h	WORD	current column of logical origin
 1Ah	WORD	current row of logical origin
 1Ch  8 BYTEs	current fill mask


image buffer:

Size	Description
 00h	WORD	number of planes (always 01h on HP 95LX)
 02h	WORD	number of bits/pixel (always 01h on HP 95LX)
 04h	WORD	image width in pixels
 06h	WORD	image height in pixels
 08h  N BYTEs	image data
requires (WIDTH+7)/8 * HEIGHT bytes


parameter block:

Size	Description
 00h	WORD	caller's ID
 02h	WORD	to ID
 04h	WORD	command code (see below)
 06h	WORD	returned status
bit 0: unused
bit 1: IPC enabled
bit 2: IPC installed
bit 3: error
bit 4: message(s) available
 08h	WORD	returned error code (see below)
 0Ah	WORD	size of data
 0Ch	DWORD	pointer to data buffer


event record:

Size	Description
 00h	WORD	event type
00h no events
01h keystroke available
02h Ctrl-Break
03h reactivation (always follows deactivation event)
04h about to deactivate (sleep)
next get-event call will not return until reactivated
05h forced application termination
06h 1-2-3 bridge service request (only given to	 1-2-3)
07h request to grow
08h request to shrink
09h application's alarm expired
0Ah daily chance to set an alarm
0Bh system date or time has been changed
 02h	WORD	ASCII code page 850 translation of keystroke
or grow/shrink amount in paragraphs or 0000h if error
or alarm expiration data
 04h	BYTE	scan code from BIOS
 05h	BYTE	shift key states at time keystroke is retrieved
 06h	WORD	LICS translation of keystroke
 08h	BYTE	function key number (1-2-3 only)
 09h	DWORD	pointer to 1-2-3 bridge record (see INT 60/DI=0104h)
or pointer to time change structure (see below)
Note:	if the System Manager is waiting the conclusion of a bridge service
  or grow/shrink call and the event type field is set to FFFFh on
  entry, the SysMgr will resume


time change structure:

Size	Description
 00h	WORD	old year
 02h	BYTE	old month
 03h	BYTE	old date
 04h	BYTE	old day
 05h	BYTE	old hour
 06h	BYTE	old minute
 07h	BYTE	old second
 08h	BYTE	old hundredth of a second
 09h  9 BYTEs	new time in same format as old time


bridge record:

Size	Description
 00h	WORD	function code
00h test
01h get range
02h "GETRANGE_ADDR"
03h "SETRANGE_ADDR"
04h "GETRANGE_DATA"
05h "SETRANGE_DATA"
06h recalculate
07h get cursor
08h set cursor
09h redisplay
0Ah cell type
0Bh "CALCTYPE"
 02h	WORD	return code from 1-2-3
 04h 16 BYTEs	ASCII range name
 14h	WORD	start column of range
 16h	WORD	start row of range
 18h	WORD	end column of range
 1Ah	WORD	end row of range
 1Ch	WORD	order in which data is placed in buffer
 1Eh	WORD	buffer size
 20h	WORD	offset within bridge record's segment of buffer for cell data


menu data:

Size	Description
 00h 80 BYTEs	first line of menu text
 50h 80 BYTEs	second line of menu text
 A0h 80 BYTEs	third line of menu text
 F0h	WORD	number of keywords
 F2h	WORD	index of currently highlighted keyword or FFFFh
 F4h	WORD	single prompt on top line if nonzero
 F6h 20 BYTEs	which line each of 20 keywords is located on
10Ah 20 BYTEs	offset of each of 20 keywords within its line
11Eh 20 BYTEs	length of each of 20 keywords
132h 20 BYTEs	first letter of each of 20 keywords
146h 20 WORDs	offsets of long prompts for each of 20 keywords


file menu structure:

Size	Description
 00h	DWORD	pointer to ASCIZ base directory name
 04h	DWORD	pointer to ASCIZ file pattern (wildcard filespec)
 08h	DWORD	pointer to file list workspace, at least 1024 bytes (see below)
 0Ch	WORD	size of file list workspace in bytes
 0Eh	WORD	starting row (-3 is topmost, 0 is first non-"reserved" line)
 10h	WORD	starting column
 12h	WORD	number of lines
 14h	WORD	number of columns
 16h	WORD	number of files displayed on each line
---the remaining fields are initialized by the System Manager---
 18h	WORD	0000h if first edit character, else multiline
 1Ah	WORD	number of files in file list
 1Ch	WORD	max files workspace has room for
 1Eh	WORD	file at top of list
 20h	WORD	index of file to highlight
 22h	WORD	index of file to unhighlight
 24h	WORD	current focus (01h FMENU, 02h EDIT)


file list workspace entry:

Size	Description
 00h	BYTE	file attributes
 01h	WORD	file time (see INT 21/AX=5700h)
 03h	WORD	file date (see INT 21/AX=5700h)
 05h	DWORD	file size
 09h 13 BYTEs	ASCIZ filename


edit record:

Size	Description
 00h	WORD	current length of edit buffer
 02h	BYTE	flag for special processing on first character
 03h	BYTE	flags
bit 0: tab handling
 04h	WORD	editing in prompt window?
 06h	DWORD	pointer to top line of prompt window message
 0Ah	WORD	length of top line of prompt
 0Ch	DWORD	pointer to second line of prompt window message
 10h	WORD	length of second line of prompt
 12h 80 BYTEs	workspace for editing
 62h  2 WORDs	line array needed for multi-line editing
 66h 36 BYTEs	multi-line edit record (see below)
 8Ah	WORD	displayable columns


multi-line edit record:

Size	Description
 00h	DWORD	pointer to user-supplied edit buffer
 04h	WORD	length of edit buffer
 06h	WORD	current cursor position
 08h	WORD	starting row of edit area (-3 is topmost, 0 is first user line)
 0Ah	WORD	starting column of edit area
 0Ch	WORD	height of edit area
 0Eh	WORD	width of edit area
 10h	WORD	current top row (-3 is topmost, 0 is first user line)
 12h	WORD	number of rows displayable
 14h	BYTE	cursor column
 15h	BYTE	01h if buffer has been modified
 16h	BYTE	first displayable column (ticker fields only)
 17h	BYTE	01h if wordwrap enabled, FFh if ticker field
 18h	DWORD	pointer to array of line starts (at least one bigger than edit
  area is high)
 1Ch	BYTE	currently marking?
 1Dh	BYTE	flag
 1Eh	WORD	offset of mark start
 20h	WORD	offset of mark end (inclusive)
 22h	WORD	displayable columns


file state record:

Size	Description
 00h	WORD	DOS file handle
 02h	WORD	flags
bit 0: buffer contents valid
bit 1: buffer is dirty and must be written
bit 2: unbuffered I/O
bit 3: file is a character device
 04h	DWORD	current DOS physical file offset (FFFFFFFFh if unknown)
 08h	DWORD	DOS file offset of start of buffer
 0Ch	DWORD	effective file offset as seen by caller
 10h	WORD	number of bytes in file buffer
---buffered I/O only---
 12h 512 BYTEs	file buffer


pattern match control block:

Size	Description
 00h 43 BYTEs	FindFirst data block (see INT 21/AH=4Eh)
 2Bh 80 BYTEs	full path name
 7Bh	BYTE	offset of last component of filename
 7Ch	BYTE	DOS function number (4Eh or 4Fh)


alarm record:

Size	Description
 00h	BYTE	hour
 01h	BYTE	minute
 02h	BYTE	second
 03h	BYTE	unused padding
 04h	WORD	rescheduling interval, in seconds
 06h	BYTE	are seconds significant?
 07h	BYTE	alarm sound
 08h 40 BYTEs	message displayed when alarm activates
 30h	BYTE	task ID of owner
 31h	BYTE	application's own use for sub-class
 32h  4 BYTEs	application's own use for private data


system settings:

Size	Description
 00h	WORD	country code
 02h	WORD	speaker volume (00h-03h or FFh for off)
 04h	WORD	contrast level (00h-0Fh)
 06h	WORD	week start (00h Sunday, 01h Monday)
 08h	WORD	punctuation format
code	decimal	arg	thousands
00h	.	,	,
01h	,	.	.
02h	.	;	;
03h	,	;	.
04h	.	,	" "
05h	,	.	" "
06h	.	;	" "
07h	,	;	" "
 0Ah	WORD	two-character language code (only 5355h = "US" byte-swapped)
 0Ch	WORD	current date format
00h dd-mmm-yy
01h dd-mmm
02h mmm-yy
03h mm/dd/yy
04h dd/mm/yy
05h dd.mm.yy
06h yy-mm-dd
07h mm/dd
08h dd/mm
09h dd.mm
0Ah mm-dd
 0Eh	WORD	current time format
00h HH:MM:SS am/pm
01h HH:MM am/pm
02h HH:MM:SS
03h HH.MM.SS
04h HH,MM,SS
05h HHhMMmSSs
06h HH:MM
07h HH.MM
08h HH,MM
09h HHhMMm
 10h	WORD	collating sequence
00h numbers first, 01h letters first, 02h ASCII
 12h 80 BYTEs	name of picture file
 62h 30 BYTEs	name
 80h 30 BYTEs	title
 9Eh 28 BYTEs	company name
 BAh	WORD	number of languages
 BCh  6 BYTEs	available languages
 C2h 66 BYTEs	language menu
104h  2 BYTEs	ASCIZ date separator
106h  2 BYTEs	ASCIZ time separator
108h	BYTE	date order
109h	BYTE	use 24 hour time?
10Ah 16 BYTEs	currency string
11Ah	WORD	currency string position (00h prefix, 01h suffix)
11Ch	WORD	keyboard (see below)
11Eh	WORD	printer baud rate
00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
120h	WORD	printer driver code
00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
122h	WORD	printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
124h	WORD	system manager interrupt (60h by default)
126h	WORD	code page (01h CP850, 02h CP437)
128h	WORD	active exit key
12Ah	WORD	active menu key
12Ch	WORD	active CHAR key toggle
12Eh  6 BYTEs	alarm


comm settings:

Size	Description
 00h	BYTE	dial type ('T' tone, 'P' pulse)
 01h	WORD	baud rate divisor (115200/baud_rate)
 03h	BYTE	parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
 04h	BYTE	stop bits (00h one, 04h two)
 05h	BYTE	data bits - 5
 06h	BYTE	software handshake
01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
 07h	BYTE	infrared (01h off, 02h on)
 08h	BYTE	duplex (01h half, 02h full)
 09h	BYTE	echo (01h echo, 02h no echo)


MDEBUG identification table:

Size	Description
 -2	WORD	entry offset
 00h	WORD	CS of MDEBUG
 02h	DWORD	old INT 08h vector
 06h	DWORD	old INT 09h vector
 0Ah	DWORD	address INT 16h routine used by MDEBUG
 0Eh	BYTE	length of version string
 0Fh  N BYTEs	version string


parameter table:

Size	Description
 00h	BYTE	major revision of packet driver spec driver conforms to
 01h	BYTE	minor revision of packet driver spec
 02h	BYTE	length of this structure in bytes
 03h	BYTE	length of a MAC-layer address
 04h	WORD	maximum transfer unit, including MAC headers
 06h	WORD	buffer size for multicast addr
 08h	WORD	number of receive buffers (one less than back-to-back MTU rcvs)
 0Ah	WORD	number of transmit buffers
 0Ch	WORD	interrupt number to hook for post-EOI processing, 00h=none


IOCB:

Size	Description
 00h	DWORD	pointer to buffer
 04h	WORD	length of buffer
 06h	BYTE	flags
bit 0: packet driver is finished with IOCB
bit 1: application requests upcall when driver completes
 07h	DWORD	function address for upcall
 0Bh  4 BYTEs	future gather write
 0Fh	BYTE	???
 10h  8 BYTEs	private driver workspace


statistics:

Size	Description
 00h	DWORD	packets in
 04h	DWORD	packets out
 08h	DWORD	bytes in
 0Ch	DWORD	bytes out
 10h	DWORD	errors in
 14h	DWORD	errors out
 18h	DWORD	packets dropped


network debugging information:

Size	Description
 00h	DWORD	number of interrupts
 04h	DWORD	receive buffer low-water mark
 08h	DWORD	transmit buffer low-water mark
 0Ch	DWORD	number of packets received
 10h	DWORD	number of packets transmitted
 14h	DWORD	total receive errors
 18h	DWORD	total transmit errors
 1Ch  4 BYTEs	???
 20h	DWORD	receive resets
 24h	DWORD	transmit resets
 28h	DWORD	number of "runts" received
 2Ch	DWORD	number of alignment errors on received packets
 30h	DWORD	number of CRC errors on received packets
 34h	DWORD	number of parity errors on received packets
 38h	DWORD	number of receive overflow errors
 3Ch	DWORD	number of oversized packets received
 40h	DWORD	number of packets lost due to lack of buffers
 44h	DWORD	receive timeouts
 48h 32 BYTEs	???
 68h	DWORD	number of transmit collisions
 6Ch	DWORD	number of transmit timeouts
 70h	DWORD	number of transmit underflows
 74h	DWORD	number of lost "crs" on transmit
 78h	DWORD	number of times heartbeat failed on transmit
 7Ch 24 BYTEs	???
 94h	WORD	free packet buffers
 96h	WORD	total packet buffers
 98h	WORD	minimum number of packet buffers free since kernel started
 9Ah 24 BYTEs	???
 B2h	DWORD	pointer to TCP connection list???
 B6h	DWORD	pointer to IP routing table???
 BAh 30 BYTEs	???


control block:

Size	Description
 00h	WORD	0001h
 02h	WORD	pointer to argument block
 04h	WORD	error return code
 06h  4 BYTEs	reserved


argument block:

Size	Description
 00h	WORD	pointer to 2-byte buffer for socket identifier
 02h	WORD	address family
0003h Banyan
 04h	WORD	socket type
in address family 0003h
    0001h IPC socket
    0002h SPP socket
 06h	WORD	protocol number
FFFFh default
 08h	WORD	pointer to 16-byte buffer for socket address
 0Ah	WORD	local port number
0000h if service should assign transient port number
0001h to 01FFh well-known port number (assigned by Banyan)


IPC port:

Size	Description
 00h	WORD	address family (always 0003h for Banyan ports)
 04h  4 BYTEs	network number (server's serial number)
 06h	WORD	subnet number  (0001h = server, 8000h-FFFEh = PC)
 08h	WORD	port ID (0001h-01FFh for "well-known" ports)
 0Ah	BYTE	hop count
 0Bh  5 BYTEs	filler


control block:

Size	Description
 00h	WORD	0002h
 02h	WORD	pointer to argument block (see below)
 04h	WORD	error return code
0000h successful
0097h invalid socket ID
00A2h no more buffer space
00A3h timeout event
00A5h resource not available
00A6h internal communication failure
00B1h resource disconnect
 06h  4 BYTEs	reserved


argument block:

Size	Description
 00h	WORD	routine metric
 02h	WORD	error return code
 04h	WORD	socket identifier
 06h	WORD	pointer to send buffer
 08h	WORD	length of send buffer
 0Ah	WORD	flags
bit 0: async request
    1: reliable message
    3: end of user message received
    4: vectored request (if set, send buffer contains buffer
descriptors)
    5: connection-specific receive
    6: change to connection-specific receive mode
 0Ch 16 BYTEs	socket address (see below)
 1Ch	WORD	timeout value in multiples of 200ms
 1Eh	WORD	connection identifier
 20h	WORD	type of request
0001h send message
0002h establish a virtual connection
0003h terminate a virtual connection


buffer descriptor:

Size	Description
 00h	WORD	data segment
 02h	WORD	buffer pointer
 04h	WORD	buffer length
 06h	WORD	character count


socket address for unreliable datagrams:

Size	Description
 00h	WORD	0003h	  address family
 02h	DWORD	FFFFFFFFh network number
 06h	WORD	FFFFh	  subnet number
 08h	WORD	  local port number
 0Ah	BYTE	00h-0Fh	  hop count
 0Bh  5 BYTEs	0000h	  filler


control block:

Size	Description
 00h	WORD	0003h
 02h	WORD	pointer to argument block (see below)
 04h	WORD	error return code
0000h successful
0097h invalid socket ID
00A2h no more buffer space
00A3h timeout event
00A5h resource not available
00A6h internal communication failure
00B1h resource disconnect
 06h  4 BYTEs	reserved


argument block:

Size	Description
 00h	WORD	character count
 02h	WORD	error return code
 04h	WORD	socket identifier
 06h	WORD	pointer to receive buffer
 08h	WORD	length of receive buffer
 0Ah	WORD	flags
bit 0: async request
    2: flush receive buffer on overflow
    3: end of user message received
    4: vectored request (if set, receive buffer contains buffer
descriptors)
    5: connection-specific receive
    6: change to connection-specific receive mode
 0Ch 16 BYTEs	socket address
 1Ch	WORD	timeout value in multiples of 200ms
 1Eh	WORD	connection identifier
 20h	WORD	type of response
0001h message received
0002h virtual connection established
0003h virtual connection terminated


buffer descriptor:

Size	Description
 00h	WORD	data segment
 02h	WORD	buffer pointer
 04h	WORD	buffer length
 06h	WORD	character count


control block:

Size	Description
 00h	WORD	0004h
 02h	WORD	pointer to argument block (see below)
 04h	WORD	error return code
 06h  4 BYTEs	reserved


argument block:

Size	Description
 00h	WORD	socket identifier


control block:

Size	Description
 00h	WORD	0005h
 02h	WORD	pointer to argument block (see below)
 04h	WORD	error return code
 06h  4 BYTEs	reserved


argument block:

Size	Description
 00h	WORD	pointer to WORD event pointer
 02h	WORD	timeout in multiples of 200ms, FFFFh = infinite


control block:

Size	Description
 00h	WORD	0008h
 02h	WORD	process type
0001h transient process
0002h resident process
 04h	WORD	error return code
 06h  4 BYTEs	reserved


control block:

Size	Description
 00h	WORD	000Bh
 02h	WORD	pointer to argument block (see below)
 04h	WORD	error return code
 06h  2 BYTEs	reserved
 08h	WORD	user CS register


argument block:

Size	Description
 00h	WORD	pointer to user interrupt function
 02h	WORD	pointer to user stack
 04h	WORD	initial timeout value in multiples of 200ms, FFFFh = infinite


argument block for BH=03h,04h:

Size	Description
 00h	WORD	size of data area (max 256)
 02h  N BYTEs	data area


argument block for BH=05h:

Size	Description
 00h	WORD	logical unit/device number
 02h	WORD	pointer to WORD buffer for cursor index
 04h	WORD	pointer to BYTE buffer for current field attribute


argument block for BH=07h:

Size	Description
 00h	WORD	logical unit/device number
 02h	WORD	ASCII data byte
 04h	WORD	pointer to WORD count of characters which will need updating


argument block for BH=08h:

Size	Description
 00h	WORD	logical unit/device number
 02h	WORD	keystroke
0000h Enter
0001h Clear
0002h PA1
0003h PA2
0004h PA3
0005h PF1
...
001Ch PF24
001Dh CSELECT (cursor select)
001Eh Insert
001Fh Delete
0020h EOField
0021h EINPUT (erase input)
0022h Reset
0023h Attention
0024h SysReq
0025h Duplicate
0026h Fieldmark
0027h Home
0028h NextLine
0029h Tab
002Ah BackTab
002Bh cursor up
002Ch cursor down
002Dh cursor right
002Eh cursor left
002Fh double cursor right
0030h double cursor left
0031h PRINT
0032h CANCEL
0033h Backspace


argument block for BH=0Ah:

Size	Description
 00h	WORD	logical unit/device number
 02h	WORD	screen index
 04h	WORD	pointer to WORD buffer for field length
 06h	WORD	pointer to WORD buffer for offset in screen of field start


argument block for BH=0Fh:

Size	Description
 00h	WORD	logical unit/device number
 02h	WORD	clear mask (clear these bits of status after returning status)
 04h	WORD	pointer to WORD buffer for status
bit 10: status modified
bit  9: buffer modified
bit  8: set cursor
bit  5: sound alarm
bits 0,1: size of print line for printer logical units
00 unformatted line
01 40-character line
10 64-character line
11 80-character line


argument block for BH=12h:

Size	Description
 00h	WORD	pointer to WORD buffer for number of logical units or devices
 02h	WORD	pointer to WORD buffer for version number
 04h	WORD	pointer to 64-byte buffer for logical unit/device list


argument block for BH=13h:

Size	Description
 00h 16 BYTEs	communications port address (see AX=0001h#"Sosock")


argument block for BH=14h:

Size	Description
 00h	WORD	logical unit/device number
0000h attach any free device of the specified type
 02h	WORD	logical unit/device type
(3270/SNA) 01h, 02h, or 03h
(3270/BSC) 02h display
(3270/BSC) 03h printer
 04h	WORD	pointer to WORD buffer for attached logical unit/device number


argument block for BH=16h:

Size	Description
 00h	WORD	pointer to 18-byte buffer for device block (see below)
first WORD must be set to desired logical unit/device number


argument block for BH=17h:

Size	Description
 00h	WORD	logical unit/device number
 02h	WORD	pointer to information block in caller's DS (see below)


argument block for BH=18h:

Size	Description
 00h	WORD	pointer to WORD buffer for major error code
 02h	WORD	pointer to WORD buffer for minor error code


argument block for BH=19h:

Size	Description
 00h	WORD	logical unit/device number


argument block for BH=1Ch,1Dh:

Size	Description
 00h	WORD	pointer to profile block in caller's DS (see below)


device block, argument block for BH=15h:

Size	Description
 00h	WORD	logical unit/device number
 02h	WORD	logical unit/device type
 04h	WORD	display model number
 06h	WORD	numeric checking
 08h	WORD	status line
 0Ah	BYTE	unprotected normal field attribute
 0Bh	BYTE	unprotected intensified field attribute
 0Ch	BYTE	protected normal field attribute
 0Dh	BYTE	protected intensified field attribute
 0Eh	WORD	reserved
 10h	WORD	printer port number


information block:

Size	Description
 00h	WORD	device model number
 02h	DWORD	screen buffer pointer
 06h	DWORD	status line pointer (see below)
 0Ah	DWORD	reserved


status line:

Size	Description
 00h	BYTE	comm line status
00h inactive
01h active
 01h	BYTE	activation level
01h physical unit activated
02h logical unit also activated
03h session is bound
 02h	BYTE	data traffic state
00h inactive
01h active
 03h	BYTE	screen ownership
00h SLU->PLU sessoin owns screen
01h SLU->SSCP session owns screen
 04h	BYTE	keyboard status
00h UNLOCK - ready to accept data
01h TIME - aid was struck
02h SYSTEM - received response no restore
03h FUNCTION - unavailable keyboard function
04h INPUT - not currently used
05h ENDFIELD - field filled in insert mode
06h PROTECTED - attempt to enter in protected field
07h NUMERIC - attempt to enter in numeric field
08h PROGRAM - error in outbound data stream
 05h	BYTE	insert mode
01h if in insert mode
 06h	BYTE	numeric
01h if current screen buffer is numeric only
 07h	BYTE	printer status
00h printer not assigned
01h printer is inactive
02h printer error
03h currently printing
04h printer is busy
05h printer is very busy
 08h	BYTE	printer assignment
 09h	BYTE	maximum size of network name
 0Ah  N BYTEs	ASCIZ network name
BYTE	maximum size of message window
      M BYTEs	null-terminated message window
BYTE	code set
00h EBCDIC
01h ASCII
      M BYTEs	extended attributes
01h extended attributes are in effect (stored at screen+1920)
each extended attribute specifies
bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
bits 2-4: 000=default,001=blue,010=red,011=pink,
  100=green,101=turquoise,110=yellow,111=white
BYTE	extended color
01h other than base color is in effect


profile block:

Size	Description
 00h 64 BYTEs	gateway service name
 40h 16 BYTEs	gateway comm port address
 50h	WORD	primary logical unit number
 52h	WORD	secondary logical unit type
 54h	WORD	secondary logical unit number
 56h	WORD	printer assignment
 58h 50 BYTEs	keyboard definitions filename


argument block:

Size	Description
 00h	BYTE	session ID (00h)
 01h	BYTE	asynchronous interface request number
00h initialize user buffer pointer information area
01h send to host
02h "control monitor"
03h "flow control data": freeze/unfreeze display, ring buffer
04h end active session
05h set session parameter
06h get session parameter
07h set tab settings
08h get tab settings
09h refresh emulation screen
0Ah suspend session temporarily
0Bh restore previously suspended session
0Ch set state of scroll lock checking
0Dh exit emulation
0Eh interrupt on character from host
0Fh start a session
10h start/stop printing of data received from host
11h get file transfer parameters
12h get connection information
13h start/stop tracing data traffic in session
14h interrupt on message from host
15h reset error
---request=00h---
 02h	WORD	pointer to info area in caller's current DS
Offset	Size	Description
 00h	WORD	flags
0000h don't read interface's data buffer
0001h read data buffer
 02h	DWORD	pointer to ring buffer
 06h	WORD	length of ring buffer
 08h	WORD	ring buffer offset to last byte read by caller
 0Ah	DWORD	pointer to WORD containing offset of last byte
  in ring buffer filled
 0Eh	DWORD	pointer to screen buffer
 12h	DWORD	pointer to field containing cursor position
 16h	DWORD	pointer to terminal status area (see below)
---request=01h---
 02h	BYTE	type
00h ASCII byte
01h ASCII string
02h terminal function code
03h up arrow
04h down arrow
05h left arrow
06h right arrow
07h break
 03h  N BYTEs	type-specific info
Offset	Size	Description
---ASCII byte---
 03h	BYTE	byte to send to host
---ASCII string---
 03h	WORD	length of string
 05h	WORD	pointer to string
---terminal function code (VT52/VT100)---
 03h	BYTE	function code
00h keypad 0
01h keypad 1
...
09h keypad 9
0Ah keypad -
0Bh keypad ,
0Ch keypad .
0Dh keypad ENTER
0Eh PF1
0Fh PF2
10h PF3
11h PF4
---terminal function code (IBM3101)---
 03h	BYTE	function code
00h PF1
...
07h PF8
08h Home
---request=02h---
 02h	BYTE	display flag
00h don't display data received from host
01h display data
---request=03h---
 02h	BYTE	flow control flag
00h allow characters to be put into display or ring buffer
01h don't place any more characters into display or ring buffer
---request=05h,06h---
 02h	BYTE	parameter number
00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
05h=300,06h=600,07h=1200,08h=2400,09h=4800, 0Ah=9600)
01h parity (00h=none, 01h=odd, 02h=even)
02h duplex (00h=full, 01h=half)
03h character size (00h=7 bits, 01h=8 bits)
04h stop bits (00h=1, 01h=2)
05h XON/XOFF flow control (00h=no, 01h=yes)
07h intercharacter delay in tenths of a second
08h interline delay in tenths of a second
09h auto linefeed (00h=no, 01h=yes)
0Ah filter control characters (00h=no, 01h=yes)
0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
0Ch auto wrap (00h=no, 01h=yes)
0Dh cursor shape (00h=underscore, 01h=block)
0Eh character set (00h=UK, 01h=US ASCII)
0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
 03h	BYTE	parameter value (returned for 06h)
---request=07h,08h---
 02h	WORD	pointer to 80-byte buffer in caller's current DS
  each byte = 00h if no tab, 01h if tab at that position
---request=0Ah---
 02h	WORD	size of session information to be saved
 04h	WORD	pointer to buffer in caller's DS
---request=0Bh---
 02h	WORD	size of buffer into which session info is restored
 04h	WORD	pointer to buffer in caller's DS
---request=0Ch---
 02h	BYTE	check_scroll_lock flag
00h off
01h on (display of host data stopped while ScrollLock on)
---request=0Eh,14h---
 02h	DWORD	pointer to routine to be called (0000h:0000h = don't call)
 06h	DWORD	stack pointer to use when call is made
---request=0Fh---
 02h	WORD	pointer to information area in caller's current DS
Offset	Size	Description
 00h	WORD	length of service name
 02h	WORD	pointer to service name in caller's DS
 04h	BYTE	type of connection
(00h=connection name, 01h=dialout)
 05h	WORD	length of connection name/telephone number
 07h	WORD	pointer to connection name/telephone number
---request=10h---
 02h	WORD	print capture flag (00h=off, 01h=on)
---request=11h---
 02h	WORD	pointer to info area in caller's current DS
Offset	Size	Description
 00h	BYTE	protocol flag (00h none, 01h Kermit)
 01h	BYTE	direction flag (00h send, 01h receive)
 02h	BYTE	length of null-terminated PC filename
 03h	DWORD	pointer to null-terminated PC filename
 07h	BYTE	length of null-terminated host filename
 08h	DWORD	pointer to null-terminated host filename
---request=12h---
 02h	WORD	pointer to info area in caller's current DS (see below)
Offset	Size	Description
 00h	WORD	length of service name (returned)
 02h	WORD	pointer to 64-byte buffer for service name
 04h	BYTE	type of connection
00h connection name
01h dialout
 05h	WORD	length of connection name/telephone number
 07h	WORD	pointer to 64-byte buffer for name/telno
 09h	BYTE	server line number being used (returned)
---request=13h---
 02h	BYTE	trace flag (00h=off, 01h=on)


terminal status area:

Size	Description
 00h	BYTE	status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
 01h	BYTE	terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
 02h	BYTE	current keypad mode (VT100,VT52 only)
4Eh ("N") numeric mode
41h ("A") application mode
 03h  4 BYTEs	current state of LEDs (VT100 only)
00h off
01h on
 07h	WORD	line error count
 09h	WORD	primary error code
0000h no error
0001h unable to make connection
0002h communications error, restart session
0003h async terminal emulation service unavailable
0004h lost carrier
0005h all matching lines busy
0006h no lines defined for connection name
0007h no dial lines available on server
0008h no matching dial lines available
0009h out of heap space
000Ah service error encountered
000Bh timed out waiting to connect
000Ch communications error
000Dh communications error
000Eh host wants file transferred to/from PC
000Fh host software changed session parameter
0010h host software changed tap settings
0011h host software changed LED indicator
0012h host software changed display background (secondary error
code 00h for white on black, 01h for black on white)
0013h host software changed display option (secondary error
code 00h for off, 01h for on)
0014h communications error
0015h communications error
0016h unable to make connection
0017h unable to make connection
 0Bh	WORD	secondary error code


request block:

Size	Description
 00h	WORD	0008h
 02h	WORD	drive number (0=default, 1=A, ...)
 04h  6 BYTEs	buffer for server ID


request block:

Size	Description
 00h	WORD	function
0201h "endspool" all data for a print job has been sent
0205h "getactive" get currently active printer port
 02h	WORD	number of active port (1-3)
 04h	WORD	??? (0 for func 0201h, 3 for func 0205h)
 06h	WORD	0000h


window parameters:

Size	Description
 00h	WORD	X start of zoom window
 02h	WORD	Y start of zoom window
 04h	WORD	X end of zoom window
 06h	WORD	Y end of zoom window
 08h	WORD	current zoom factor
 0Ah	WORD	zoom offset start X
 0Ch	WORD	zoom offset start Y


zoom window description:

Size	Description
 00h	WORD	X start of zoom window
 02h	WORD	Y start of zoom window
 04h	WORD	X end of zoom window
 06h	WORD	Y end of zoom window


port record block:

Size	Description
 00h	WORD	number of 17-byte elements
 02h 17 BYTEs	element (byte 00h = input port type, bytes 01h-10h = port)
(see AX=0001h#"Sosock" for port format)


port record block:

Size	Description
 00h	WORD	number of 17-byte elements
 02h 17 BYTEs	element: byte 00h = input port type, 01h-10h = port
(see AX=0001h#"Sosock" for port format)


NiceName block:

Size	Description
 00h	WORD	type of name
0064h organization
00C8h group
012Ch item
 02h	WORD	pointer to ASCIZ input name
 04h	WORD	pointer to 64-byte buffer for output name


enumerate block:

Size	Description
 00h	WORD	return code
 02h	WORD	pointer to pattern string
 04h	WORD	enumerate type
0064h organization
00C8h group
012Ch item
 06h	WORD	enumerate class
0000h unspecified (return all matching items)
0001h user names
0002h service names
0003h list names
0004h nicknames
 08h	WORD	pointer to category criteria block (see below) or 0
 0Ah	WORD	pointer to array of 64-byte returned names
 0Ch	WORD	number of names returned
 0Eh  6 BYTEs	reserved for subsequent enumerated calls (set to zeros on first
  call)


category criteria block:

Size	Description
 00h	WORD	exclude flag
0000h return only items with the specified categories
0001h return all items except those with the given categories
 02h	WORD	number of categories
 04h	WORD	category 1 value
 06h	WORD	category 2 value
...


request block:

Size	Description
 00h	DWORD	pointer to user-written message handler
 04h	DWORD	pointer to next request block (filled in by VINES)
 08h	DWORD	pointer to previous request block (filled in by VINES)
 0Ch	DWORD	pointer to message storage area (filled by VINES) (see below)


message storage area:

Size	Description
 00h 16 BYTEs	IPC port of message sender (see AX=0001h#"Sosock")
 10h	BYTE	message flags
 11h	WORD	reserved
 13h	BYTE	length of message
 14h 80 BYTEs	message text


buffer:

Size	Description
 00h	WORD	???
 02h	WORD	???
 04h	WORD	???
 06h	DWORD	IP address of interface (big-endian)
 0Ah	DWORD	subnet mask
 0Eh	WORD	??? (apparently always 0001h)
 10h	DWORD	total packets received
 14h	DWORD	total packets sent
 18h	DWORD	receive errors
 1Ch	DWORD	send errors
 20h	WORD	??? (apparently always 0006h)
 22h	DWORD	pointer to ???


handle statistics:

Size	Description
 00h  4 BYTEs	unused
 04h	DWORD	???
 08h  8 BYTEs	unused
 10h	DWORD	???
 14h	DWORD	???
 18h 12 BYTEs	unused
 24h	DWORD	???
 28h 24 BYTEs	unused


kernel TCP statistics:

Size	Description
 00h 16 BYTEs	unused
 10h	DWORD	bytes sent
 14h	DWORD	bytes received
 18h  8 BYTEs	unused
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad checksums
 2Ch	DWORD	protocol errors
 30h	DWORD	timeouts
 34h	DWORD	resets
 38h	DWORD	duplicate packets
 3Ch	DWORD	retransmits


kernel IP statistics:

Size	Description
 00h  8 BYTEs	unused
 08h	DWORD	??? errors
 0Ch	DWORD	??? errors
 10h	DWORD	???
 14h	DWORD	??? errors
 18h	DWORD	security errors
 1Ch	DWORD	??? errors
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad checksums
 2Ch	DWORD	protocol errors
 30h	DWORD	timeouts
 34h	DWORD	errors
 38h	DWORD	fragments
 3Ch


kernel UDP statistics:

Size	Description
 00h 32 BYTEs	unused
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad checksums
 2Ch	DWORD	port not listening errors
 30h  4 BYTEs	unused
 34h	DWORD	truncated receives
 38h  8 BYTEs	unused


kernel ICMP statistics:

Size	Description
 00h	DWORD	"TimeEx" sent
 04h	DWORD	"TimeEx" received
 08h	DWORD	"ParamProb" sent
 0Ch	DWORD	"ParamProb" received
 10h	DWORD	redirects received
 14h	DWORD	source quenches received
 18h	DWORD	???
 1Ch	DWORD	???
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad packets received
 2Ch	DWORD	"DestUn" received
 30h	DWORD	packet send errors
 34h	DWORD	"DestUn" sent
 38h	DWORD	???
 3Ch	DWORD	???


configuration information:

Size	Description
 00h	BYTE	maximum TCP connections available
 01h	BYTE	maximum UDP connections available
 02h	BYTE	maximum IP connections available
 03h	BYTE	???
 04h	BYTE	number of TCP connections currently in use
 05h	BYTE	number of UDP connections currently in use
 06h	BYTE	number of IP connections currently in use
 07h	BYTE	???
 08h	WORD	number of local network descriptors active
 0Ah	WORD	number of global network descriptors active
 0Ch	BYTE	???
 0Dh	BYTE	???
 0Eh	WORD	???
 10h	WORD	???
 12h	DWORD	???
 16h	DWORD	IP broadcast address


variable pointer record:

Size	Description
 00h	WORD	segment of WORD buffer for red component of DAC register
 02h	WORD	offset of WORD buffer for red component
 04h	WORD	segment of WORD buffer for green component of DAC register
 06h	WORD	offset of WORD buffer for green component
 08h	WORD	segment of WORD buffer for blue component of DAC register
 0Ah	WORD	offset of WORD buffer for blue component


variable pointer record:

Size	Description
 00h	WORD	segment of WORD array containing vertex columns
 02h	WORD	offset of WORD array containing vertex columns
 04h	WORD	segment of WORD array containing vertex rows
 06h	WORD	offset of WORD array containing vertex rows


variable pointers:

Size	Description
 00h	WORD	segment of WORD buffer for cursor row
 02h	WORD	offset of WORD buffer for cursor row
 04h	WORD	segment WORD buffer for cursor column
 06h	WORD	offset WORD buffer for cursor column


masking map:

Size	Description
 00h	BYTE	length of first "protect" run (pixels remain unchanged)
 01h	BYTE	length of first "zero" run (pixels set to background color)
 02h	BYTE	length of second "protect" run
 03h	BYTE	length of second "zero" run
...


copy record:

Size	Description
 00h	WORD	left edge column of source region
 02h	WORD	right edge column of source region
 04h	WORD	top edge row of source region
 06h	WORD	bottom edge row of source region
 08h	WORD	left edge of destination
 0Ah	WORD	bottom edge of destination


variable pointer record:

Size	Description
 00h	WORD	segment of BYTE buffer for ASCII keycode
 02h	WORD	offset of BYTE buffer for ASCII keycode
 04h	WORD	segment of BYTE buffer for extended keycode
 06h	WORD	offset of BYTE buffer for extended keycode


variable pointer record:

Size	Description
 00h	WORD	segment of BYTE buffer for ASCII keycode
 02h	WORD	offset of BYTE buffer for ASCII keycode
 04h	WORD	segment of BYTE buffer for extended keycode
 06h	WORD	offset of BYTE buffer for extended keycode


variable pointer record:

Size	Description
 00h	WORD	segment of BYTE buffer for button code
 02h	WORD	offset of BYTE buffer for button code
 04h	WORD	segment of BYTE buffer for joystick position
 06h	WORD	offset of BYTE buffer for joystick position


variable pointer record:

Size	Description
 00h	WORD	segment of WORD buffer for press/release count
 02h	WORD	offset of WORD buffer for press/release count
 04h	WORD	segment of WORD buffer for screen space col of last press/rls
 06h	WORD	offset of WORD buffer for screen space col of last press/rels
 08h	WORD	segment of WORD buffer for screen space row of last press/rls
 0Ah	WORD	offset of WORD buffer for screen space row of last press/rls


variable pointer record:

Size	Description
 00h	WORD	segment of WORD buffer for mouse column
 02h	WORD	offset of WORD buffer for mouse column
 04h	WORD	segment of WORD buffer for mouse row
 06h	WORD	offset of WORD buffer for mouse row
 08h	WORD	segment of WORD buffer for button status
 0Ah	WORD	offset of WORD buffer for button status
Note:	button status: bit 0 = left button, bit 1 = right, bit 2 = middle


sounds array element:

Size	Description
 00h	WORD	frequency of sound in Hertz (0000h ends array)
 02h	WORD	duration of sound in clock ticks


tone array element:

Size	Description
 00h	WORD	channel number (0000h terminates array)
 02h	WORD	frequency
 04h	WORD	volume
 06h	WORD	duration in 1/72.8 seconds


interrupt handler entry:

Size	Description
 00h  3 BYTEs	near jump or short jump + NOP to actual interrupt handler
 03h	WORD	offset from following pointer for initial top of local stack
 05h	DWORD	pointer to argument/stack block (see INT 15/AX=DE2Eh)
 09h  7 BYTEs	signature "dvxunix"


signature block:

Size	Description
 00h	WORD	version number
 02h 19 BYTEs	"SOUND-DRIVER-AD-LIB"
 15h	BYTE	01h
 16h	BYTE	01h
 17h	BYTE	00h


command block:

Size	Description
 00h 18 BYTEs	configuration bytes???
 12h	BYTEs	ASCIZ temporary file name to place converted fax
 52h	BYTEs	ASCIZ directory containing BitFax executables
 92h	BYTEs	ASCIZ telephone number
 C2h	BYTE	00h don't send cover page
01h send cover page
 C3h 15 BYTEs	configuration bytes???
 E2h	BYTEs	ASCIZ path of BITFAX.TRA file (containing additional
configuration information???)
122h	BYTEs	configuration bytes???
12Ch	BYTE	00h don't send cover page
01h send cover page
12Dh  7 BYTEs	configuration bytes???
134h	BYTEs	ASCIZ path of file to send
174h	BYTEs	more configuration bytes???
???


QEMM 6.0 memory statistics:

Size	Description
 00h	BYTE	01h if Shadow RAM found, 00h otherwise
 01h	DWORD	initial conventional memory in bytes
 05h	DWORD	initial extended memory in bytes
 09h	DWORD	initial expanded memory in bytes
 0Dh	DWORD	initial "top" or "shadow" memory in bytes
 11h	DWORD	Unavailable conventional memory in bytes
 15h	DWORD	Unavailable extended memory in bytes
 19h	DWORD	Unavailable expanded memory in bytes
 1Dh	DWORD	Unavailable "top" or "shadow" memory in bytes
Add to offset 49h for Total unavailable top/shadow.
 21h	DWORD	QEMM code size in bytes
 25h	DWORD	QEMM data size in bytes
 29h	DWORD	bytes used for TASKS=
 2Dh	DWORD	DMA buffer size
 31h	DWORD	bytes used for MAPS=
 35h	DWORD	bytes of high RAM
 39h	DWORD	bytes used by mapped ROMs
 3Dh	DWORD	bytes of conventional memory provided by QEMM
 41h	DWORD	bytes of extended memory NOT converted by QEMM (EXT=xxx)
 45h	DWORD	bytes of EMS/XMS pool memory provided by QEMM
 49h	DWORD	Unavailable "top" or "shadow" memory in bytes
Add to offset 1Dh for Total unavailable top/shadow.
 4Dh	DWORD	conventional memory overhead in bytes
(set to 0 by QEMM.COM prior to call)


Stealth ROM info [array]:

Size	Description
 00h	WORD	starting segment of ROM
 02h	WORD	length of ROM in paragraphs


mapping array entry:

Size	Description
 00h	WORD	logical page number or FFFFh to unmap physical page
 02h	WORD	physical page number or segment address


handle directory entry:

Size	Description
 00h	WORD	handle
 02h  8 BYTEs	handle's name


EMS copy data:

Size	Description
 00h	DWORD	region length in bytes
 04h	BYTE	source memory type
00h conventional
01h expanded
 05h	WORD	source handle (0000h if conventional memory)
 07h	WORD	source initial offset (within page if EMS, segment if convent)
 09h	WORD	source initial segment (conv mem) or logical page (EMS)
 0Bh	BYTE	destination memory type
00h conventional
01h expanded
 0Ch	WORD	destination handle
 0Eh	WORD	destination initial offset
 10h	WORD	destination initial segment or page


mappable physical address entry:

Size	Description
 00h	WORD	physical page segment
 02h	WORD	physical page number


hardware configuration array:

Size	Description
 00h	WORD	size of raw EMM pages in paragraphs
 02h	WORD	number of alternate register sets
 04h	WORD	size of mapping-context save area in bytes
 06h	WORD	number of register sets assignable to DMA
 08h	WORD	DMA operation type
0000h DMA with alternate register sets
0001h only one DMA register set


system register values for switch to protected mode:

Size	Description
 00h	DWORD	value for CR3
 04h	DWORD	linear address in first megabyte of value for GDTR
 08h	DWORD	linear address in first megabyte of value for IDTR
 0Ch	WORD	value for LDTR
 0Eh	WORD	value for TR
 10h	PWORD	CS:EIP of protected mode entry-point


control block:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	verb (action)
 0Eh  6 BYTEs	00h
 14h	DWORD	big-endian return code (see below)
---if verb = 1B00h (DISPLAY)---
 18h	WORD	00h
 1Ah  8 BYTEs	logical unit ID (big-endian)
 22h  8 BYTEs	partner logical unit name (big-endian)
 2Ah  8 BYTEs	mode name (big-endian)
 32h	BYTE	logical unit session limit
 33h	BYTE	partner logical unit session limit
 34h	BYTE	node maximum negotiable session limit
 35h	BYTE	current session limit
 36h	BYTE	minimum negotiated winner limit
 37h	BYTE	maximum negotiated loser limit
 38h	BYTE	active session count
 39h	BYTE	active CONWINNER session count
 3Ah	BYTE	active CONLOSER session count
 3Bh	BYTE	session termination count
 3Ch	BYTE	bit 7: SESSION_TERMINATION_TARGET_DRAIN
bit 6: SESSION_TERMINATION_SOURCE_DRAIN
---if verb=2000h (Attach Physical Unit)---
 18h	WORD	00h
 1Ah	BYTE	version
 1Bh	BYTE	release
 1Ch  8 BYTEs	net name (big-endian)
 24h  8 BYTEs	physical unit name (big-endian)
 2Ch  8 BYTEs	00h
 34h	DWORD	pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
 38h	DWORD	00h
 3Ch	BYTE	00h RETURN_CONTROL: COMPLETE
01h RETURN_CONTROL: INCOMPLETE
---if verb=2100h (Attach Logical Unit)---
 18h	WORD	70  offset to partner logical unit record
 1Ah  8 BYTEs	logical unit name (big-endian)
 22h  8 BYTEs	logical unit ID (big-endian)
 2Ah	BYTE	logical unit local address
 2Bh	BYTE	logical unit session limit
 2Ch	DWORD	pointer to CREATE_TP_EXIT routine,
FFFFFFFFh = reject incoming ALLOCATEs
00000000h = queue ALLOCATEs
 30h	DWORD	00h
 34h	DWORD	pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
 38h	DWORD	00h
 3Ch	BYTE	maximum TPs
 3Dh	BYTE	queue depth
 3Eh	DWORD	pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
 42h	DWORD	00h
 46h	WORD	total length of partner records
    for each partner logical unit:
WORD	length of this partner logical unit record
WORD	42  offset to mode records
      8 BYTEs	partner logical unit name (big-endian)
BYTE	partner logical unit security capabilities
bit 7: already verified
bit 6: conversation level security
bit 5: session level security
BYTE	partner logical unit session limit
WORD	partner logical unit maximum MC_SEND_LL
      8 BYTEs	partner logical unit DLC name (big-endian)
BYTE	partner logical unit adapter number
     17 BYTEs	(counted string) partner logical unit adapter address
WORD	total length of mode records
   for each mode:
WORD	16  length of this mode record
      8 BYTEs	mode name (big-endian)
WORD	RU_SIZE high bound
WORD	RU_SIZE low bound
BYTE	mode maximum negotiable session limit
BYTE	pacing size for receive
---if verb=2200h (Detach Logical Unit)---
 18h  8 BYTEs	logical unit ID (big-endian)
 20h	BYTE	00h
---if verb=2700h (Detach Physical Unit)---
 18h	BYTE	00h  type: hard
01h  type: soft
---if verb=2B00h (Activate DLC)---
 18h  8 BYTEs	DLC name (big-endian)
 20h	BYTE	adapter number


ACCESS_LU_LU_PW verb:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	1900h
 0Eh  8 BYTEs	logical unit ID (big-endian)
 16h  8 BYTEs	logical unit name (big-endian)
 1Eh  8 BYTEs	partner logical unit name (big-endian)
 26h 17 BYTEs	(counted string) partner fully qualified logical unit name
 37h	BYTE	password available (0=no, 1=yes)
 38h  8 BYTEs	password


CREATE_TP verb:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	2300h
 0Eh  6 BYTEs	00h
 14h	DWORD	sense code (big-endian)
00000000h	Ok
080F6051h	SECURITY_NOT_VALID
084B6031h	TP_NOT_AVAIL_RETRY
084C0000h	TP_NOT_AVAIL_NO_RETRY
10086021h	TP_NAME_NOT_RECOGNIZED
10086034h	CONVERSATION_TYPE_MISMATCH
10086041h	SYNC_LEVEL_NOT_SUPPORTED
 18h  8 BYTEs	TP ID (big-endian)
 20h  8 BYTEs	logical unit ID (big-endian)
 28h	DWORD	conversation ID (big-endian)
 2Ch	BYTE	0 basic conversation, 1 mapped conversation
 2Dh	BYTE	0 no sync level, 1 confirm
 2Eh	BYTE	reserved
 2Fh 65 BYTEs	(counted string) transaction program name
 70h  6 BYTEs	00h
 76h	WORD	length of ERROR_LOG_DATA to return
 78h	DWORD	pointer to ERROR_LOG_DATA buffer
 7Ch  8 BYTEs	partner logical unit name (big-endian)
 84h 18 BYTEs	(counted string) partner fully qualified logical unit name
 96h  8 BYTEs	mode name (big-endian)
 9Eh 12 BYTEs	00h
 AAh 11 BYTEs	(counted string) password
 B5h 11 BYTEs	(counted string) user ID
 C0h	BYTE	0 verification should be performed
1 already verified


SYSLOG verb:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	2600h
 0Eh 10 BYTEs	00h
 18h	WORD	type (big-endian)
 1Ah	DWORD	subtype (big-endian)
 1Eh	DWORD	pointer to ADDITIONAL_INFO
 22h	DWORD	conversation ID (big-endian)
 26h  8 BYTEs	TP ID (big-endian)
 2Eh  8 BYTEs	physical unit or logical unit name (big-endian)
 36h	WORD	length of data
 38h	DWORD	pointer to data
 3Ch	BYTE	00h


control block:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	verb (action)
 0Eh	BYTE	1 if MC_ (mapped conversation) form of verb
0 if basic verb
 0Fh  5 BYTEs	reserved (0)
 14h	WORD	(high byte first) primary return code (see below)
 16h	DWORD	(high byte first) error code (see below)
 1Ah  8 BYTEs	(high byte first) TP_ID
 22h	DWORD	(high byte first) conversation ID
---if verb=0100h (Allocate or MC_Allocate)---
 26h	BYTE	(MC_Allocate only) 0 basic conversation
   1 mapped conversation
 27h	BYTE	00h SYNC_LEVEL = none
01h SYNC_LEVEL = confirm
 28h	WORD	0000h
 2Ah	BYTE	00h RETURN_CONTROL: when session allocated
01h RETURN_CONTROL: immediate
02h RETURN_CONTROL: when session free
 2Bh  8 BYTEs	00h
 33h  8 BYTEs	(high byte first) partner logical unit name
 3Bh  8 BYTEs	(high byte first) mode name
 43h 65 BYTEs	(counted string) TP name
 84h	BYTE	00h security: none
01h security: same
02h security: pgm
 85h 11 BYTEs	00h
 90h 11 BYTEs	(counted string) password
 9Bh 11 BYTEs	(counted string) user ID
 A6h	WORD	PIP_DATA length
 A8h	DWORD	pointer to PIP_DATA
---if verb=0300h (Confirm or MC_Confirm)---
 26h	BYTE  request to send received (0=no, 1=yes)
---if verb=0400h (Confirmed or MC_Confirmed), no additional fields---
---if verb=0500h (Deallocate or MC_Deallocate)---
 26h	BYTE	00h
 27h	BYTE	type 0 SYNC_LEVEL
     1 FLUSH
     2 ABEND_PROC
     3 ABEND_SVC
     4 ABEND_TIMER
     5 ABEND
 28h	WORD	(MC_Deallocate only) length of error log data
 2Ah	DWORD	(MC_Deallocate only) pointer to error log data
---if verb=0600h (Flush or MC_Flush), no additional fields---
---if verb=0700h (Get_Attributes or MC_Get_Attributes)---
 26h  8 BYTEs	(high byte first) logical unit ID
 2Eh	BYTE	00h
 2Fh	BYTE	SYNC_LEVEL (0=none, 1=confirm)
 30h  8 BYTEs	(high byte first) mode name
 38h  8 BYTEs	(high byte first) own net name
 40h  8 BYTEs	(high byte first) own logical unit name
 48h  8 BYTEs	(high byte first) partner logical unit name
 50h 18 BYTEs	(counted string) partner's fully qualified logical unit name
 62h	BYTE	00h
 63h 11 BYTEs	(counted string) user ID
---if verb=0800h (Get_Type)---
 26h	BYTE	type (0=basic conversation, 1=mapped conversation)
---if verb=0900h (Post_on_Receipt)---
 26h	WORD	maximum length
 28h	BYTE	fill (0=buffer, 1=LL)
---if verb=0A00h (Prepare_to_Receive or MC_Prepare_to_Receive)---
 26h	BYTE	type (0=SYNC_LEVEL, 1=FLUSH)
 27h	BYTE	locks (0=short, 1=long)
---if verb=0B00h (Receive_and_Wait or MC_Receive_and_Wait)---
 26h	BYTE	what received
00h data
01h data complete
02h data incomplete
03h confirm
04h confirm send
05h confirm deallocate
06h send
 27h	BYTE	(MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
 28h	BYTE	Request_to_Send_Received (0=no, 1=yes)
 29h	WORD	maximum length
 2Bh	WORD	data length
 2Dh	DWORD	pointer to data
---if verb=0C00h (Receive_Immediate or MC_Receive_Immediate)---
 26h	BYTE	what received
00h data
01h data complete
02h data incomplete
03h confirm
04h confirm send
05h confirm deallocate
06h send
 27h	BYTE	(MC_Receive_Immediate only) fill (0=buffer, 1=LL)
 28h	BYTE	Request_to_Send_Received (0=no, 1=yes)
 29h	WORD	maximum length
 2Bh	WORD	data length
 2Dh	DWORD	pointer to data
---if verb=0E00h (Request_to_Send or MC_Request_to_Send), no other fields---
---if verb=0F00h (Send_Data or MC_Send_Data)---
 26h	BYTE	request to send received (0=no, 1=yes)
 27h	BYTE	00h
 28h	WORD	data length
 2Ah	DWORD	pointer to data
---if verb=1000h (Send_Error or MC_Send_Error)---
 26h	BYTE	request to send received (0=no, 1=yes)
 27h	BYTE	type (0=program, 1=SVC)
 28h	DWORD	00h
 2Ch	WORD	(MC_Send_Error only) LOG_DATA length
 2Eh	DWORD	(MC_Send_Error only) pointer to LOG_DATA
---if verb=1200h (Test or MC_Test)---
 26h	BYTE	(MC_Test only) test (0=posted, 1=request_to_send received)
Note: error code has different interpretations for:
0 posted data
1 posted not data (primary return code = 0)
1 bad TP_ID (primary return code = 1)
---if verb=1300h (Wait)---
 26h	BYTE	number of conversations to wait on
Note: error codes have interpretations as for 1200h above


control block:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	verb (action)
 0Eh  6 BYTEs	0
 14h	DWORD	(high byte first) return code (see AH=01h)
 18h	WORD	0
 1Ah  8 BYTEs	(high byte first) logical unit ID
---if verb=2400h (TP Started), control block continues---
 22h  8 BYTEs	(high byte first) TP ID
---if verb=2800h (Get ALLOCATE), control block continues---
 22h	BYTE	type
00h dequeue
01h test
 23h	DWORD	pointer to CREATE_TP record
---if verb=2A00h (Change Logical Unit). control block continues---
 22h	DWORD	pointer to CREATE_TP_EXIT routine
FFFFFFFFh reject incoming ALLOCATEs
00000000h queue ALLOCATEs
 26h	DWORD	00000000h
 2Ah	DWORD	pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
 2Eh	DWORD	00000000h
 32h	BYTE	maximum TPs
 33h	BYTE	00h stop QUEUE_ALLOCATEs
01h resume QUEUE_ALLOCATEs
 34h	DWORD	pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
 38h	DWORD	00000000h


control block:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	verb (action)
2500h TP_ENDED
2900h TP_VALID
 0Eh  6 BYTEs	0
 14h	DWORD	(high byte first) return code (see AH=01h)
 18h	WORD	0
 1Ah  8 BYTEs	(high byte first) TP_ID
 22h	DWORD -> CREATE_TP record (only if verb = 2900h)


control block:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	1C00h
 0Eh	BYTE	00h user defined
01h NMVT
02h alert subvectors
03h PDSTATS subvectors
 0Fh  5 BYTEs	0
 14h	DWORD	(high byte first) return code (see AH=01h)
 18h 12 BYTEs	0
 24h	BYTE	if bit 0 clear, add correlation subvector
if bit 1 clear, add product set ID subvector
if bit 2 clear, do SYSLOG
if bit 3 clear, send SSCP_PU_SESSION
 25h	BYTE	0
 26h	WORD	length of data
 28h  N BYTEs	data


control block:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	1500h
 0Eh  6 BYTEs	0
 14h	WORD	(high byte first) primary return code (see AH=02h)
 16h	DWORD	(high byte first) secondary return code (see below, AH=01h)
 1Ah  8 BYTEs	(high byte first) logical unit ID
 22h  8 BYTEs	blanks
 2Ah  8 BYTEs	(high byte first) partner logical unit name
 32h  8 BYTEs	(high byte first) mode name
 3Ah	BYTE	bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
bit 6: set negotiable values
 3Bh	BYTE	partner logical unit mode session limit
 3Ch	BYTE	minimum CONWINNERS_SOURCE
 3Dh	BYTE	maximum CONWINNERS_TARGET
 3Eh	BYTE	automatic activation
 3Fh	BYTE	0
 40h	BYTE	bit 7: drain target
bit 6: drain source
bit 5: target responsible, not source


control block:

Size	Description
 00h 12 BYTEs	reserved
 0Ch	WORD	1A00h
 0Eh  6 BYTEs	0
 14h	DWORD	(high byte first) return code
 18h	BYTE	conversion
   00h ASCII to EBCDIC
   01h EBCDIC to ASCII
 19h	BYTE	character set
   00h AE
   01h A
   02h G
 1Ah	WORD	length of string to convert
 1Ch	DWORD	pointer to source
 20h	DWORD	pointer to target


Trace Statistics Record:

Size	Description
 00h	DWORD	pointer to storage trace buffer
 04h	WORD	max number of 80-byte records in trace
 06h	WORD	(high-order byte first!) current record number (must init to 0)
 08h	DWORD	(high-order byte first!) number of records written (init to 0)
 0Ch	DWORD	reserved
Note:	do not move record while trace is active


Datalink Communication Block

Type	Description
 00h	WORD	portal ID
 02h  6 BYTEs	source address
 08h  6 BYTEs	destination address
 0Eh	DWORD	buffer pointer
 12h	WORD	buffer length
 14h	WORD	operation
 16h	BYTE	pad flag (used on open)
    00h no pad
    01h pad
 17h	BYTE	mode flag (used on open)
    00h 802.3
    01h Ethernet
    02h promiscuous
 18h	DWORD	line status change function
 1Ch	DWORD	received data function
 20h	DWORD	transmitted data function
 24h	BYTE	maximum outstanding transmits/receives
 25h  2 BYTEs	protocol type
 27h	WORD	buffers lost


signature area:

Size	Description
 -5	BYTE	major version number
 -4	BYTE	minor version number
 -3   3 BYTEs	signature (ASCII "LAT")


LAT Session Control Block:

Size	Description
 00h 18 BYTEs	service name
 12h 18 BYTEs	node name (future use)
 24h 18 BYTEs	port name (future use)
 36h	DWORD	-> session stopped post routine
 3Ah	DWORD	-> service table overflow post routine
 3Eh	DWORD	-> transmit post routine
 42h	DWORD	-> receive post routine
 46h	WORD	session status
04h circuit failure
08h stop slot received
 48h	WORD	slot state (LAT driver use)
 4Ah	WORD	local credits (LAT driver use)
 4Ch	DWORD	-> VCB (LAT driver use)
 50h	WORD	backward slot (LAT driver use)
 52h	WORD	forward slot (LAT driver use)
 54h	WORD	remote slot ID (LAT driver use)
 56h	WORD	local slot ID (LAT driver use)
 58h	WORD	slot byte count (LAT driver use)
 5Ah	BYTE	remote credits (LAT driver use)
 5Bh 255 BYTEs	transmitted data slot
15Ah	BYTE	number of receive data slots (4 recommended)
15Bh	BYTE	number of occupied slots
15Ch	BYTE	index of next receive slot to use
15Dh	BYTE	index of current receive slot
15Eh	WORD	pointer to first received character
160h  N WORDs	pointers to receive slots (buffers); each is 259 bytes
Note:	set post routines to 0000h:0000h if polled operation will be used


signature area:

Size	Description
 -5	BYTE	major version number
 -4	BYTE	minor version number
 -3   3 BYTEs	signature (ASCII "PDV")


signature area:

Size	Description
 -5	BYTE	major version number
 -4	BYTE	minor version number
 -3   3 BYTEs	signature (ASCII "SCH")


signature area:

Size	Description
 -5	BYTE	major version number
 -4	BYTE	minor version number
 -3   3 BYTEs	signature (ASCII "SCH")


signature area:

Size	Description
 -5	BYTE	major version number
 -4	BYTE	minor version number
 -3   3 BYTEs	signature (ASCII "DNP")


login record:

Size	Description
 00h  8 BYTEs	user name
 08h  8 BYTEs	password
 10h 12 BYTEs	name of SuperStation


node status record:

Size	Description
 00h  8 BYTEs	user name (0 if none)
 08h	BYTE	station type
   00h workstation
   01h superstation
   02h gateway station
   03h gateway active
   04h logged into multiple superstations
   05h reserved
 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 flag
bit 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
 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


configuration table:

Size	Description
-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
bit 5: PRINT permit
bit 4: KB initiated
bit 3: CHAT called FOXPTRM
bit 2: SUBMIT active
bit 1: SUBMIT received
bit 0: SUBMIT permit
 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
    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


receive buffer:

Size	Description
 00h 12 BYTEs	sending node's ID
 0Ch	WORD	length of message
 0Eh  N BYTEs	message (maximum 1024 bytes)


submit record:

Size	Description
 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


control parameters:

Size	Description
 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


chat message:

Size	Description
 00h	WORD	length+2 of following text
 02h  N BYTEs	text, max 101 bytes


station record:

Size	Description
 00h 12 BYTEs	node ID
 0Ch	BYTE	flags
bit 1 = workstation
    2 = superstation
    3 = xgate
    4 = active gate
---if AL = 01h---
 0Dh	BYTE	version number
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


Spool/Print record:

Size	Description
 00h	WORD	operation code
   00h initiate spool
   01h abort print
   02h close spool
   03h delete spool
   04h print
   05h get report info
   06h set chat template
   07h queue
   08h return queue
   09h queue non-spooled file for printing
 02h 11 BYTEs	file name in FCB format
---if operation code = 00h or 06h---
 0Dh	BYTE	notification
bit 7: queue to top
bit 6: do ID page
bit 5: no form feed
bit 4: reserved
bit 3: explicity queuing only
bit 2: notify at print completion
bit 1: notify server operator/reply
bit 0: notify at print start
 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
---if operation code = 09h---
 0Dh  3 BYTEs	unused
 10h  N BYTEs	path to non-spooled file to be queued for printing


$SCNTL record:

Size	Description
 00h  8 BYTEs	user ID
 08h 11 BYTEs	filename in FCB format
 13h  6 BYTEs	node ID
 19h  3 BYTEs	creation date
 1Ch	BYTE	flags
bit 7: queue to top
    6: do ID page
    5: no form feed at end
    4: reserved
    3: explicit queueing only
    2: notify at completion
    1: notify server operator/reply
    0: notify at start
 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


shared device table entry:

Size	Description
 00h  8 BYTEs	device
 08h  8 BYTEs	alias
 10h 64 BYTEs	path
 50h  8 BYTEs	password
 58h	BYTE	access
 59h  4 BYTEs	mask


SCSI Command:

Size	Description
 00h	BYTE	length of command
 01h	???	command bytes


SCSI Command:

Size	Description
 00h	BYTE	length of command
 01h	???	command bytes


SCSI Command:

Size	Description
 00h	BYTE	length of command
 01h	???	command bytes


SCSI Command:

Size	Description
 00h	BYTE	length of command
 01h	???	command bytes


SCSI Command:

Size	Description
 00h	BYTE	length of command
 01h	???	command bytes


Event Control Block:

Size	Description
 00h	DWORD	Link
 04h	DWORD	-> Event Service Routine (00000000h if none)
 08h	BYTE	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
 09h	BYTE	completion code (see below)
 0Ah	WORD	socket (big-endian)
0452h Service Advertising Socket
0456h diagnostics
other
 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
all fragments are concatenated and sent in one piece
node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes


IPX header:

Size	Description
 00h	WORD	checksum (high byte first [big-endian])
 02h	WORD	length in bytes (high byte first) of total packet
 04h	BYTE	transport control
 05h	BYTE	packet type
00h unknown packet type
01h routing information packet
02h echo packet
03h error packet
04h packet exchange packet (always use this one)
05h SPX packet
11h-1Eh experimental protocols
 06h 10 BYTES	destination internetwork address
 10h	WORD	destination socket (high byte first)
 12h 10 BYTES	source internetwork address
 1Ch	WORD	source socket (high byte first)


Service Advertising Protocol Service Query Packet:

Size	Description
 00h 30 BYTEs	IPX header
 1Eh	WORD	query type (big-endian)
 20h	WORD	server type (big-endian) (see INT 21/AH=E3h"NetWare")


Service Advertising Protocol Server Identification Packet:

Size	Description
 00h 30 BYTEs	IPX header
 1Eh	WORD	response type (big-endian)
0002h general service
0004h nearest service
 20h	WORD	server type (big-endian) (see INT 21/AH=E3h"NetWare")
 22h 48 BYTEs	ASCIZ server name
 52h  2 WORDs	network number (big-endian)
 54h  3 WORDs	node number (big-endian)
 5Ch	WORD	socket number (big-endian)
 5Eh	WORD	number of hops between caller and server (big-endian)


internetwork address:

Size	Description
 00h  4 BYTEs	network number (big-endian)
 04h  6 BYTEs	node number within network (big-endian)


internetwork address:

Size	Description
 00h  4 BYTEs	destination network (big-endian)
 04h  6 BYTEs	destination node (big-endian)
 0Ah  2 BYTEs	destination socket (big-endian)


SPX header:

Size	Description
 00h	WORD	checksum (big-endian)
 02h	WORD	length in bytes of total packet (big-endian)
 04h	BYTE	transport control
 05h	BYTE	packet type (see INT 7A/BX=0003h)
 06h 10 BYTEs	destination internet address
 10h	WORD	destination socket (big-endian)
 12h 10 BYTEs	source internet address
 1Ch	WORD	source socket (big-endian)
 1Eh	BYTE	connection control
 1Fh	BYTE	datastream type
 20h	WORD	source connection ID (big-endian)
 22h	WORD	destination connection ID (big-endian)
 24h	WORD	sequence number (big-endian)
 26h	WORD	acknowledge number (big-endian)
 28h	WORD	allocation number (big-endian)


status buffer:

Size	Description
 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	source connection ID (big-endian)
 04h	WORD	destination connection ID (big-endian)
 06h	WORD	sequence number of next packet sent (big-endian)
 08h	WORD	acknowledge number, expected sequence number of next received
packet (big-endian)
 0Ah	WORD	maximum sequence number remote SPX may send without ACK from
local SPX (big-endian)
 0Ch	WORD	remote acknowledge number, next sequence number remote SPX
expects to receive (big-endian)
 0Eh	WORD	remote allocation number, maximum sequence number local SPX
may send (big-endian)
 10h	WORD	connection socket (big-endian)
 12h  6 BYTEs	immediate node address--bridge on local network to destination
 18h 10 BYTEs	destination internetwork address (see INT 7A/BX=000Bh)
 22h	WORD	retransmit count (big-endian)
 24h	WORD	estimated roundtrip delay (big-endian)
 26h	WORD	retransmitted packets (big-endian)
 28h	WORD	suppressed packets (big-endian)
 2Ah 12 BYTEs	??? (v2.15)


diagnostic element:

Size	Description
 00h	DWORD	pointer to next diagnostic element
 04h	DWORD	pointer to function for ???
 08h	DWORD	pointer to function for ???


signature block:

Size	Description
 04h	WORD	PCS/3270 signature (5741h)
 06h	WORD	version (0501h = PCS/3270 v1.0)


Btrieve parameter record:

Size	Description
 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 below)
 10h	DWORD	pointer to file name/key buffer
 14h	BYTE	key length
 15h	BYTE	key number
 16h	DWORD	pointer to status code (see below)
 1Ah	WORD	interface code (version specific)
6176h version 5.10


HyperPAD data area:

Size	Description
 -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


Telebit ACS parameter block:

Size	Description
 00h	BYTE	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
 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 below)


parameter control block:

Size	Description
 00h  3 BYTEs	signature = 'PCB'
 03h	BYTE	function number (see below)
 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
 0Dh	WORD	maximum length of control string (IBM)
unused (Rabbit)


user information record:

Size	Description
 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 MSDOS 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


drive info record:

Size	Description
 00h	WORD	segment of drive IO-REQUEST structure (MSDOS 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)


shared drive list:

Size	Description
 00h	BYTE	string length
 01h	BYTE	number of shared drives
 02h  N BYTEs	one byte per shared drive


system flags:

Size	Description
 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


request block:

Size	Description
 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


busy structure:

Size	Description
 00h	DWORD	pointer to busy flag byte
 04h	WORD	fixed port address (FF00h)


status structure:

Size	Description
 00h	BYTE	channel status
bit 0: channel open
    1: channel buffer contains received data
    7: channel locked
 01h	BYTE	sender ID


full-channel structure:

Size	Description
 00h	BYTE	number of channel with oldest datagram
 01h	BYTE	sender ID


status structure:

Size	Description
 00h	BYTE	sender ID
 01h	BYTE	channel number
 02h  4 BYTEs	receiver status (see AH=12h)


transfer structure:

Size	Description
 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


control packet:

Size	Description
 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


parameter block for function 00h:

Size	Description
 00h	WORD	0000h (function number)
Note:	this function should be called before any other device driver functions


results buffer for function 00h:

Size	Description
 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


reset packet:

Size	Description
 00h	DWORD	reset code (60606060h)
 04h 16 BYTEs	ASCIZ supervisor password padded with nulls


shape model:

Size	Description
 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	WORD/DWORD first dimension of shape
 N	WORD/DWORD second dimension of shape
...


parameter block:

Size	Description
 00h	WORD	segment of ???
 02h	WORD	offset of ???
 04h	WORD	high part of long ???
 06h	WORD	low part of long ???
 08h	WORD	high part of long ???
 0Ah	WORD	low part of long ???
 0Ch	WORD	high part of long ???
 0Eh	WORD	low part of long ???
 10h	WORD	high part of long ???
 12h	WORD	low part of long ???


parameter block:

Size	Description
 00h	WORD	segment of node address buffer
 02h	WORD	offset of node address buffer
 04h	WORD	segment of uppercase username
 06h	WORD	offset of uppercase username
 08h	WORD	segment of "DVSEMAIL"
 0Ah	WORD	offset of "DVSEMAIL"


parameter block:

Size	Description
 00h	WORD	operation (1 = read, 2 = write)
 02h	WORD	segment of uppercase To: username
 04h	WORD	offset of uppercase To: username
 06h	WORD	segment of "DVSEMAIL"
 08h	WORD	offset of "DVSEMAIL"
 0Ah	WORD	segment of node address
 0Ch	WORD	offset of node address


parameter block:

Size	Description
 00h	WORD	buffer count
 02h	WORD	segment of command buffer
 04h	WORD	offset of command buffer
 06h	WORD	handle from NetOpen


command buffer:

Size	Description
 00h	BYTE	command
21h '!' Protocol commands for remote control
41h 'A' Authorization protocol element
42h 'B' Return(back) routing information
    Associated data is the From: username
43h 'C' Carbon Copy list
    Associated data is a comma delimitted list of usernames
44h 'D' Distribution list
    Associated data is a comma delimitted list of usernames
45h 'E' Mail end marker
    No associated data
48h 'H' Mail message header
    Associated data is a message header buffer
4Dh 'M' Mail message
    Associated data is the body of the message
4Fh 'O' Object
50h 'P' Paperclip attachment
52h 'R' Routing information
    Associated data is the To: username
53h 'S' Subject
    Associated data is the subject of the message
54h 'T' Trail of Reply/Forwards
 01h	BYTE	subcommand
 02h	DWORD	length of associated data


message header buffer:

Size	Description
 00h 30 BYTEs	subject line
 1Eh 24 BYTEs	To
 36h 24 BYTEs	From
 4Eh	DWORD	Time
BYTE	0
BYTE	hour
BYTE	minute
BYTE	second
 52h	DWORD	Date
BYTE	0
BYTE	year
BYTE	month
BYTE	day
 56h	DWORD	serial number (0L)
 5Ah	WORD	mail types
bit 7	blind carbon copy
bit 6	carbon copy
bit 5	priority
bit 4	confidential
bit 3	certified
bit 2	bulk
bits 1-0 class (first, second, third, bulk)
 5Ch	WORD	special types (0)


parameter block:

Size	Description
 00h	WORD	handle from NetOpen


parameter block:

Size	Description
 00h	WORD	segment of 24 byte username buffer
 02h	WORD	offset of 24 byte username buffer
 04h	WORD	segment of 24 byte protocol buffer
 06h	WORD	offset of 24 byte protocol buffer


parameter block:

Size	Description
 00h	WORD	Segment of 128 byte node address buffer
 02h	WORD	Offset of 128 byte node address buffer


parameter block:

Size	Description
 00h	WORD	segment of uppercase password string
 02h	WORD	offset of uppercase password string
 04h	WORD	segment of uppercase username string
 06h	WORD	offset of uppercase username string
 08h	WORD	segment of "DVSEMAIL"
 0Ah	WORD	offset of "DVSEMAIL"


parameter block:

Type	Description
 00h	WORD	segment of uppercase username
 02h	WORD	offset of uppercase username
 04h	WORD	segment of "DVSEMAIL"
 06h	WORD	offset of "DVSEMAIL"


queue descriptor:

Size	Description
 00h  2 WORDs	internal use, initialize to zeros
 04h	WORD	flags
 06h  8 BYTEs	queue name
 0Eh	WORD	length of message
 10h	WORD	number of messages
 12h  4 WORDs	internal use, initialize to zeros
 1Ah	WORD	offset in system area of buffer for messages


queue parameter block:

Size	Description
 00h	WORD	internal use, initialize to zero
 02h	WORD	queue ID (set by INT E0/CL=87h)
 04h	WORD	internal use, initialize to zero
 06h	WORD	offset of queue message buffer
 08h  8 BYTEs	queue name


character control block (CHCB):

Size	Description
 00h	DWORD	pointer to character buffer
 04h	WORD	length of character buffer


AUX device parameter block:

Size	Description
 00h	BYTE	function (00h get, 01h set)
 01h	BYTE	baud rate (see below) FFh = don't change/unknown
 02h	BYTE	parity
00h none
01h odd
02h none
03h even
04h stick parity bit
FFh don't change/unknown
 03h	BYTE	stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
 04h	BYTE	data bits (05h-08h or FFh unknown/don't change)
 05h	BYTE	handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
FFh unknown/don't change)
 06h	BYTE	XON character, FFh unknown/don't change
 07h	BYTE	XOFF character, FFh unknown/don't change


AUX device control block:

Size	Description
 00h	BYTE	function (00h get, 01h set)
 01h	BYTE	DTR state (00h low, 01h high, FFh unknown/don't change)
 02h	BYTE	RTS state (00h low, 01h high, FFh unknown/don't change)
 03h	BYTE	DSR state (00h low, 01h high, FFh unknown/don't change)
 04h	BYTE	CTS state (00h low, 01h high, FFh unknown/don't change)
 05h	BYTE	DCD state (00h low, 01h high, FFh unknown/don't change)
 06h	BYTE	RI state (00h inactive, 01h active, FFh unknown/don't change)