Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-61-fd [2023/01/05 04:01] – supprimée - modification externe (Unknown date) 127.0.0.1 | back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-61-fd [2023/01/05 04:01] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== MSDOS - Interrupt List 61h-FDh ====== | ||
+ | |||
+ | ===== INT 61 - reserved for user interrupt ===== | ||
+ | |||
+ | ==== INT 61 - Atari Portfolio - EXTENDED BIOS ==== | ||
+ | |||
+ | provides subfunctions such as turning off the machine, accessing internal variables, and mapping memory cards | ||
+ | |||
+ | SeeAlso: INT 60" | ||
+ | |||
+ | ==== INT 61 - HP 95LX System Manager - LOAD DS ==== | ||
+ | |||
+ | SeeAlso: INT 0F"HP 95LX", | ||
+ | |||
+ | ==== INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP ==== | ||
+ | |||
+ | SeeAlso: INT 61" | ||
+ | |||
+ | ==== INT 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 60" | ||
+ | ----------61--------------------------------- | ||
+ | INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE | ||
+ | BX:DX -> control block | ||
+ | SeeAlso: INT 67" | ||
+ | ----------61--------------------------------- | ||
+ | INT 61 - VIRUS - " | ||
+ | Note: the virus copies the original INT 21h vector into INT 61h | ||
+ | SeeAlso: INT 21h,INT 60" | ||
+ | ----------61--------------------------------- | ||
+ | INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface | ||
+ | AH = system call number (see separate entries below) | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AL = basic error | ||
+ | 04h invalid handle??? | ||
+ | 12h invalid subfunction | ||
+ | 18h invalid system call | ||
+ | 1Bh kernel busy, try again later | ||
+ | AH = suberror number | ||
+ | Notes: the installation check consists of testing for the signature " | ||
+ | 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. | ||
+ | this bug as well. | ||
+ | SeeAlso: INT 61/ | ||
+ | ----------6100------------------------------- | ||
+ | INT 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 61" | ||
+ | |||
+ | Format of network debugging information: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 48h 32 BYTEs ??? | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 7Ch 24 BYTEs ??? | ||
+ | | ||
+ | | ||
+ | | ||
+ | 9Ah 24 BYTEs ??? | ||
+ | | ||
+ | | ||
+ | BAh 30 BYTEs ??? | ||
+ | ----------610000----------------------------- | ||
+ | INT 61 - OPTIMA 1024 VGA-Sync - ZOOM DISPLAY | ||
+ | AX = 0000h | ||
+ | BX = zoom factor (0-7) | ||
+ | Notes: | ||
+ | INT 61h is the default interrupt; the actual interrupt number can be | ||
+ | obtained by calling INT 16/AH=FFh | ||
+ | SeeAlso: INT 16/ | ||
+ | SeeAlso: INT 61/ | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - Banyan VINES - " | ||
+ | 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: | ||
+ | interrupt handler is identified by the string " | ||
+ | bytes immediately preceding the interrupt handler | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 0003h Banyan | ||
+ | | ||
+ | in address family 0003h | ||
+ | 0001h IPC socket | ||
+ | 0002h SPP socket | ||
+ | | ||
+ | FFFFh default | ||
+ | | ||
+ | | ||
+ | 0000h if service should assign transient port number | ||
+ | 0001h to 01FFh well-known port number (assigned by Banyan) | ||
+ | |||
+ | Format of IPC port: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - Banyan VINES - " | ||
+ | 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: | ||
+ | interrupt handler is identified by the string " | ||
+ | bytes immediately preceding the interrupt handler | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | |||
+ | Format of argument block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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) | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0001h send message | ||
+ | 0002h establish a virtual connection | ||
+ | 0003h terminate a virtual connection | ||
+ | |||
+ | Format of buffer descriptor: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of socket address for unreliable datagrams: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - Banyan VINES - " | ||
+ | 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: | ||
+ | interrupt handler is identified by the string " | ||
+ | bytes immediately preceding the interrupt handler | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | |||
+ | Format of argument block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0001h message received | ||
+ | 0002h virtual connection established | ||
+ | 0003h virtual connection terminated | ||
+ | |||
+ | Format of buffer descriptor: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - Banyan VINES - " | ||
+ | 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: | ||
+ | interrupt handler is identified by the string " | ||
+ | bytes immediately preceding the interrupt handler | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - Banyan VINES - " | ||
+ | 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: | ||
+ | interrupt handler is identified by the string " | ||
+ | bytes immediately preceding the interrupt handler | ||
+ | returns results for all asynchronous operations invoked from the | ||
+ | data segment used for this call | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - Banyan VINES - " | ||
+ | AX = 0001h | ||
+ | DS:DX -> communications control block (function 0008h) | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | 00A2h no more buffer space available | ||
+ | Note: | ||
+ | Banyan interrupt handler is identified by the string " | ||
+ | four bytes immediately preceding the interrupt handler | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 0001h transient process | ||
+ | 0002h resident process | ||
+ | | ||
+ | | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - Banyan VINES - " | ||
+ | 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: | ||
+ | interrupt handler is identified by the string " | ||
+ | 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 | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610001----------------------------- | ||
+ | INT 61 - OPTIMA 1024 VGA-Sync - CENTER ZOOM WINDOW | ||
+ | AX = 0001h | ||
+ | BX = X coordinate to center | ||
+ | CX = Y coordinate to center | ||
+ | Notes: | ||
+ | coordinates appear as close as possible to the center of the | ||
+ | display. | ||
+ | INT 61h is the default interrupt; the actual interrupt number can be | ||
+ | obtained by calling INT 16/AH=FFh | ||
+ | SeeAlso: INT 16/ | ||
+ | SeeAlso: INT 61/ | ||
+ | ----------610002----------------------------- | ||
+ | INT 61 - Banyan VINES - 3270 INTERFACE | ||
+ | AX = 0002h | ||
+ | BH = function | ||
+ | 00h " | ||
+ | 02h " | ||
+ | 03h " | ||
+ | 04h " | ||
+ | 05h " | ||
+ | 07h " | ||
+ | 08h " | ||
+ | 0Ah " | ||
+ | 0Fh " | ||
+ | 12h " | ||
+ | 13h " | ||
+ | 14h " | ||
+ | 15h " | ||
+ | (not supported in >3.0) | ||
+ | 16h " | ||
+ | 17h " | ||
+ | 18h " | ||
+ | 19h " | ||
+ | 1Ah " | ||
+ | 1Ch " | ||
+ | 1Dh " | ||
+ | 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 " | ||
+ | 0034h encountered " | ||
+ | 0035h attach request refused. | ||
+ | 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 " | ||
+ | 0072h encountered unrecognizable error | ||
+ | 0073h encountered " | ||
+ | 0074h encountered invalid type-of-request on " | ||
+ | 0075h encountered " | ||
+ | 0076h encountered " | ||
+ | 0077h encountered connection request | ||
+ | 0078h encountered unrecognizable data | ||
+ | 0079h encountered unknown connection ID (ext info via " | ||
+ | Notes: | ||
+ | which is loaded first. | ||
+ | Status codes greater than 63h indicate an inconsistency in the 3270/SNA | ||
+ | or 3270/BSC resident driver, which must be reloaded by the user | ||
+ | |||
+ | Format of argument block for BH=03h,04h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=05h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=07h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=08h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | |||
+ | Format of argument block for BH=0Ah: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=0Fh: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | |||
+ | Format of argument block for BH=12h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=13h: | ||
+ | Offset Size Description | ||
+ | 00h 16 BYTEs communications port address (see AX=0001h#" | ||
+ | |||
+ | Format of argument block for BH=14h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 0000h attach any free device of the specified type | ||
+ | | ||
+ | (3270/ | ||
+ | (3270/ | ||
+ | (3270/ | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=16h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | first WORD must be set to desired logical unit/device number | ||
+ | |||
+ | Format of argument block for BH=17h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=18h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=19h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | |||
+ | Format of argument block for BH=1Ch,1Dh: | ||
+ | Offset Size Description | ||
+ | | ||
+ | |||
+ | Format of device block, argument block for BH=15h: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of information block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of status line: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 00h inactive | ||
+ | 01h active | ||
+ | | ||
+ | 01h physical unit activated | ||
+ | 02h logical unit also activated | ||
+ | 03h session is bound | ||
+ | | ||
+ | 00h inactive | ||
+ | 01h active | ||
+ | | ||
+ | 00h SLU->PLU sessoin owns screen | ||
+ | 01h SLU-> | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | 01h if in insert mode | ||
+ | | ||
+ | 01h if current screen buffer is numeric only | ||
+ | | ||
+ | 00h printer not assigned | ||
+ | 01h printer is inactive | ||
+ | 02h printer error | ||
+ | 03h currently printing | ||
+ | 04h printer is busy | ||
+ | 05h printer is very busy | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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, | ||
+ | 100=green, | ||
+ | BYTE extended color | ||
+ | 01h other than base color is in effect | ||
+ | |||
+ | Format of profile block: | ||
+ | Offset Size Description | ||
+ | 00h 64 BYTEs gateway service name | ||
+ | 40h 16 BYTEs gateway comm port address | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 58h 50 BYTEs keyboard definitions filename | ||
+ | ----------610002----------------------------- | ||
+ | INT 61 - OPTIMA 1024 VGA-Sync - END ZOOM | ||
+ | AX = 0002h | ||
+ | Note: | ||
+ | INT 61h is the default interrupt; the actual interrupt number can be | ||
+ | obtained by calling INT 16/AH=FFh | ||
+ | SeeAlso: INT 16/ | ||
+ | ----------610003----------------------------- | ||
+ | INT 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/ | ||
+ | this user | ||
+ | 0021h service not responding | ||
+ | 0022h missing telephone number | ||
+ | |||
+ | Format of argument block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 00h initialize user buffer pointer information area | ||
+ | 01h send to host | ||
+ | 02h " | ||
+ | 03h "flow control data": freeze/ | ||
+ | 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--- | ||
+ | | ||
+ | Offset Size Description | ||
+ | 00h WORD flags | ||
+ | 0000h don't read interface' | ||
+ | 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--- | ||
+ | | ||
+ | 00h ASCII byte | ||
+ | 01h ASCII string | ||
+ | 02h terminal function code | ||
+ | 03h up arrow | ||
+ | 04h down arrow | ||
+ | 05h left arrow | ||
+ | 06h right arrow | ||
+ | 07h break | ||
+ | | ||
+ | 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/ | ||
+ | 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--- | ||
+ | | ||
+ | 00h don't display data received from host | ||
+ | 01h display data | ||
+ | ---request=03h--- | ||
+ | | ||
+ | 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, | ||
+ | | ||
+ | 00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150, | ||
+ | 05h=300, | ||
+ | 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, | ||
+ | 0Ch auto wrap (00h=no, 01h=yes) | ||
+ | 0Dh cursor shape (00h=underscore, | ||
+ | 0Eh character set (00h=UK, 01h=US ASCII) | ||
+ | 0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3) | ||
+ | | ||
+ | ---request=07h, | ||
+ | | ||
+ | each byte = 00h if no tab, 01h if tab at that position | ||
+ | ---request=0Ah--- | ||
+ | | ||
+ | | ||
+ | ---request=0Bh--- | ||
+ | | ||
+ | | ||
+ | ---request=0Ch--- | ||
+ | | ||
+ | 00h off | ||
+ | 01h on (display of host data stopped while ScrollLock on) | ||
+ | ---request=0Eh, | ||
+ | | ||
+ | | ||
+ | ---request=0Fh--- | ||
+ | | ||
+ | Offset Size Description | ||
+ | 00h WORD length of service name | ||
+ | 02h WORD pointer to service name in caller' | ||
+ | 04h BYTE type of connection | ||
+ | (00h=connection name, 01h=dialout) | ||
+ | 05h WORD length of connection name/ | ||
+ | 07h WORD pointer to connection name/ | ||
+ | ---request=10h--- | ||
+ | | ||
+ | ---request=11h--- | ||
+ | | ||
+ | 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--- | ||
+ | | ||
+ | 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/ | ||
+ | 07h WORD pointer to 64-byte buffer for name/telno | ||
+ | 09h BYTE server line number being used (returned) | ||
+ | ---request=13h--- | ||
+ | | ||
+ | |||
+ | Format of terminal status area: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 4Eh (" | ||
+ | 41h (" | ||
+ | | ||
+ | 00h off | ||
+ | 01h on | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | ----------610003----------------------------- | ||
+ | INT 61 - OPTIMA 1024 VGA-Sync - REPORT ZOOM FACTOR | ||
+ | AX = 0003h | ||
+ | Return: AX = zoom factor | ||
+ | Note: | ||
+ | INT 61h is the default interrupt; the actual interrupt number can be | ||
+ | obtained by calling INT 16/AH=FFh | ||
+ | SeeAlso: INT 16/ | ||
+ | ----------610004----------------------------- | ||
+ | INT 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 | ||
+ | |||
+ | Format of request block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610004----------------------------- | ||
+ | INT 61 - OPTIMA 1024 VGA-Sync - ENTER SPECIFY MODE | ||
+ | AX = 0004h | ||
+ | Note: | ||
+ | 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/ | ||
+ | ----------610005----------------------------- | ||
+ | INT 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=D702h | ||
+ | |||
+ | Format of request block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 0201h " | ||
+ | 0205h " | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610005----------------------------- | ||
+ | INT 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/ | ||
+ | SeeAlso: INT 61/ | ||
+ | |||
+ | Format of window parameters: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610006----------------------------- | ||
+ | INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM WINDOW | ||
+ | AX = 0006h | ||
+ | BX:CX -> zoom window description (see below) | ||
+ | Notes: | ||
+ | factor | ||
+ | INT 61h is the default interrupt; the actual interrupt number can be | ||
+ | obtained by calling INT 16/AH=FFh | ||
+ | SeeAlso: INT 16/ | ||
+ | SeeAlso: INT 61/ | ||
+ | |||
+ | Format of zoom window description: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610007----------------------------- | ||
+ | INT 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/ | ||
+ | SeeAlso: INT 61/ | ||
+ | ----------610007BX0002----------------------- | ||
+ | INT 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 | ||
+ | |||
+ | Format of port record block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 02h 17 BYTEs element (byte 00h = input port type, bytes 01h-10h = port) | ||
+ | (see AX=0001h#" | ||
+ | ----------610007BX0004----------------------- | ||
+ | INT 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 | ||
+ | |||
+ | Format of port record block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 02h 17 BYTEs element: | ||
+ | (see AX=0001h#" | ||
+ | ----------610007BX0005----------------------- | ||
+ | INT 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 | ||
+ | ----------610007BX0006----------------------- | ||
+ | INT 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 | ||
+ | ----------610007BX0007----------------------- | ||
+ | INT 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: AX=0007h/ | ||
+ | |||
+ | Format of NiceName block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 0064h organization | ||
+ | 00C8h group | ||
+ | 012Ch item | ||
+ | | ||
+ | | ||
+ | ----------610007BX0008----------------------- | ||
+ | INT 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, | ||
+ | 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: AX=0007h/ | ||
+ | |||
+ | Format of enumerate block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0064h organization | ||
+ | 00C8h group | ||
+ | 012Ch item | ||
+ | | ||
+ | 0000h unspecified (return all matching items) | ||
+ | 0001h user names | ||
+ | 0002h service names | ||
+ | 0003h list names | ||
+ | 0004h nicknames | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | call) | ||
+ | |||
+ | Format of category criteria block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 0000h return only items with the specified categories | ||
+ | 0001h return all items except those with the given categories | ||
+ | | ||
+ | | ||
+ | | ||
+ | ... | ||
+ | |||
+ | 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 | ||
+ | ----------610008----------------------------- | ||
+ | INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM OFFSET | ||
+ | AX = 0008h | ||
+ | BX = X start of zoom offset | ||
+ | CX = Y start of zoom offset | ||
+ | Notes: | ||
+ | INT 61h is the default interrupt; the actual interrupt number can be | ||
+ | obtained by calling INT 16/AH=FFh | ||
+ | SeeAlso: INT 16/ | ||
+ | ----------610008BX0002----------------------- | ||
+ | INT 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: | ||
+ | ----------610008BX0003----------------------- | ||
+ | INT 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: | ||
+ | either call next handler or simply return | ||
+ | to stop intercepting messages, set prev and next request blocks to | ||
+ | point at each other | ||
+ | |||
+ | Format of request block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of message storage area: | ||
+ | Offset Size Description | ||
+ | 00h 16 BYTEs IPC port of message sender (see AX=0001h#" | ||
+ | | ||
+ | | ||
+ | | ||
+ | 14h 80 BYTEs message text | ||
+ | ----------61000A----------------------------- | ||
+ | INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE | ||
+ | AX = 000Ah | ||
+ | Notes: | ||
+ | which is loaded second. | ||
+ | SeeAlso: INT 61/AX=0002h | ||
+ | ----------6101------------------------------- | ||
+ | INT 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 | ||
+ | ----------6102------------------------------- | ||
+ | INT 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 | ||
+ | ----------6105------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 05h | ||
+ | BX = connection handle??? | ||
+ | Return: CF clear if successful | ||
+ | DX:AX = ??? | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | Notes: the installation check consists of testing for the signature " | ||
+ | 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 61" | ||
+ | ----------6106------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - 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" | ||
+ | SeeAlso: INT 61" | ||
+ | |||
+ | Format of buffer: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6107------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 07h | ||
+ | BX = connection handle??? | ||
+ | Return: CF clear if successful | ||
+ | AX = ??? | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6108------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 08h | ||
+ | BX = connection handle??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6109------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? ALL | ||
+ | AH = 09h | ||
+ | Return: CF clear | ||
+ | Notes: | ||
+ | the installation check consists of testing for the signature " | ||
+ | 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 61" | ||
+ | ----------610C------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - GET CONNECTION??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | |||
+ | Format of handle statistics: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 18h 12 BYTEs unused | ||
+ | | ||
+ | 28h 24 BYTEs unused | ||
+ | |||
+ | Format of kernel TCP statistics: | ||
+ | Offset Size Description | ||
+ | 00h 16 BYTEs unused | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of kernel IP statistics: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 3Ch | ||
+ | |||
+ | Format of kernel UDP statistics: | ||
+ | Offset Size Description | ||
+ | 00h 32 BYTEs unused | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of kernel ICMP statistics: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------610D------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------610E------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 0Eh | ||
+ | BX = ??? | ||
+ | DS:DX -> ??? | ||
+ | ES:DI -> ??? | ||
+ | Return: CF clear | ||
+ | ??? | ||
+ | Notes: the installation check consists of testing for the signature " | ||
+ | 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 61" | ||
+ | ----------610F------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - GET VERSION | ||
+ | AH = 0Fh | ||
+ | Return: CF clear | ||
+ | AX = version (AH = major, AL = minor) | ||
+ | BX = patch level | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6110------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - UNINSTALL | ||
+ | AH = 10h | ||
+ | Return: CF clear if successful | ||
+ | CF set on error??? | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6111------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 11h | ||
+ | Return: CF clear | ||
+ | AX = ??? | ||
+ | Note: | ||
+ | it is not already zero | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6112------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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 61" | ||
+ | ----------6113------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 13h | ||
+ | BX = connection handle??? or FFFFh | ||
+ | DX = subfunction | ||
+ | 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" | ||
+ | Note: | ||
+ | cases | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6114------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - NO LONGER SUPPORTED | ||
+ | AH = 14h | ||
+ | BX = connection handle??? | ||
+ | Return: CF set | ||
+ | AX = 0018h (see INT 61" | ||
+ | Note: | ||
+ | PCserver software" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6116------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - GET ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6117------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 17h | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6118------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 18h | ||
+ | BX = connection handle??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6119------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 19h | ||
+ | BX = connection handle??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------611A------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | Notes: the installation check consists of testing for the signature " | ||
+ | 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 61" | ||
+ | ----------611B------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------611C------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------611D------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------611E------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 1Eh | ||
+ | BX = connection handle??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------611F------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6120------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6121------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6122------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 22h | ||
+ | BX = connection handle??? | ||
+ | Return: CF clear if successful | ||
+ | AX = ??? | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6123------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6124------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 24h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6125------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 25h | ||
+ | BX = ??? | ||
+ | CX = ??? | ||
+ | DX = ??? | ||
+ | DS:SI -> ??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6126------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 26h | ||
+ | BX = ??? | ||
+ | CX = ??? | ||
+ | DX = ??? | ||
+ | DS:SI -> ??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6127------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 27h | ||
+ | BX = ??? | ||
+ | CX = ??? | ||
+ | DX = ??? | ||
+ | DS:SI -> ??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6128------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 28h | ||
+ | BX = connection handle??? | ||
+ | CX = ??? | ||
+ | Return: CF clear if successful | ||
+ | ??? | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6129------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 29h | ||
+ | Return: CF clear if successful | ||
+ | AX = ??? | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------612A------------------------------- | ||
+ | INT 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 61" | ||
+ | |||
+ | Format of configuration information: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------612B------------------------------- | ||
+ | INT 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6130------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 30h | ||
+ | BX = ??? | ||
+ | CX = ??? | ||
+ | DX = ??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | AX = error code (see INT 61" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------61--------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - NOP for SLIP kernel | ||
+ | AH = function (31h-33h) | ||
+ | ----------6150------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6151------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6152------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6153------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | 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" | ||
+ | SeeAlso: INT 61" | ||
+ | ----------6154------------------------------- | ||
+ | INT 61 U - PC/TCP kernel v2.05 - ??? | ||
+ | AH = 54h | ||
+ | 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" | ||
+ | BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values | ||
+ | greater than 54h in AH may crash the system. | ||
+ | this bug as well. | ||
+ | SeeAlso: INT 61" | ||
+ | ----------62--------------------------------- | ||
+ | INT 62 - reserved for user interrupt | ||
+ | ----------62--------------------------------- | ||
+ | INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA | ||
+ | Notes: this vector stores the third four bytes of the parameter table for | ||
+ | hard disk 0 | ||
+ | SeeAlso: INT 60" | ||
+ | ----------62--------------------------------- | ||
+ | INT 62 - HP 95LX - USED BY CALCULATOR | ||
+ | SeeAlso: INT 60"HP 95LX" | ||
+ | ----------62--------------------------------- | ||
+ | INT 62 - MS SQL Server/ | ||
+ | AH = function (00h to 07h) | ||
+ | CX = FFFEh | ||
+ | DX = FFFFh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | Note: the installation check consists of testing for the string " | ||
+ | 2 bytes past the interrupt handler | ||
+ | SeeAlso: AH=08h" | ||
+ | ----------620000----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0000h | ||
+ | ES:BX -> ??? | ||
+ | Return: AX = current video mode number | ||
+ | Notes: | ||
+ | Fastgraph/ | ||
+ | the installation check consists of testing for the signature " | ||
+ | bytes beyond the start of the interrupt handler | ||
+ | SeeAlso: AX=0001h, | ||
+ | ----------620001----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0001h | ||
+ | BX = new video mode or FFFFh for current mode | ||
+ | ES:DX -> ??? | ||
+ | Notes: | ||
+ | 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: AX=0000h, | ||
+ | ----------620002----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0001h, | ||
+ | ----------620003----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0002h, | ||
+ | ----------620004----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0004h | ||
+ | Return: AX = proposed video mode number | ||
+ | Note: | ||
+ | Fastgraph/ | ||
+ | SeeAlso: AX=0002h, | ||
+ | ----------620005----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0005h | ||
+ | Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA | ||
+ | without an Enhanced Color Display | ||
+ | SeeAlso: AX=0002h, | ||
+ | ----------620006----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0006h | ||
+ | Notes: this call is ignored in graphics modes | ||
+ | the screen attributes are only restored if ANSI.SYS is loaded | ||
+ | SeeAlso: AX=0000h | ||
+ | ----------620007----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0007h | ||
+ | BX = new state (0000h invisible, 0001h visible) | ||
+ | Note: this call is ignored in text modes | ||
+ | ----------620008----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0008h to 0009h | ||
+ | Return: AX = 0000h | ||
+ | ----------62000A----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 000Ah | ||
+ | Return: AX = maximum X coordinate in screen space | ||
+ | (or character space if in text mode) | ||
+ | SeeAlso: AX=000Bh, | ||
+ | ----------62000B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 000Bh | ||
+ | Return: AX = maximum Y coordinate in screen space | ||
+ | (or character space if in text mode) | ||
+ | SeeAlso: AX=000Ah, | ||
+ | ----------62000C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 000Ch | ||
+ | BX = screen space column | ||
+ | Return: AX = character space column containing specified coordinate | ||
+ | SeeAlso: AX=000Dh, | ||
+ | ----------62000D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 000Dh | ||
+ | BX = screen space row | ||
+ | Return: AX = character space row containing specified coordinate | ||
+ | SeeAlso: AX=000Ch, | ||
+ | ----------62000E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 000Eh | ||
+ | BX = character space column | ||
+ | Return: AX = screen space column of leftmost pixel in specified character col | ||
+ | SeeAlso: AX=000Ch, | ||
+ | ----------62000F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 000Fh | ||
+ | BX = character space row | ||
+ | Return: AX = screen space row of topmost pixel in specified character row | ||
+ | SeeAlso: AX=000Dh, | ||
+ | ----------620010----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0010h | ||
+ | Return: AX = number of text rows on screen in current video mode | ||
+ | SeeAlso: AX=0011h | ||
+ | ----------620011----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0011h | ||
+ | BX = new screen size (25, 43, 50) | ||
+ | SeeAlso: AX=0010h | ||
+ | ----------620012----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0012h to 0013h | ||
+ | Return: AX = 0000h | ||
+ | ----------620014----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0015h, | ||
+ | ----------620015----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0015h | ||
+ | Return: AX = current text attribute or color index (graphics modes) | ||
+ | Note: | ||
+ | Fastgraph/ | ||
+ | SeeAlso: AX=0019h, | ||
+ | ----------620016----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0014h, | ||
+ | ----------620017----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: | ||
+ | few EGA/VGA adapters correctly set the foreground color in CGA mode 6 | ||
+ | SeeAlso: AX=0018h, | ||
+ | ----------620018----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0018h | ||
+ | ES:BX -> array of 16 WORDs containing values for palette registers | ||
+ | (or first 16 DAC registers in 256-color modes) | ||
+ | Note: | ||
+ | SeeAlso: AX=0017h | ||
+ | ----------620019----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0019h | ||
+ | BX = foreground | ||
+ | CX = background | ||
+ | DX = blink (0000h nonblinking, | ||
+ | Note: this call is ignored in graphics modes | ||
+ | SeeAlso: AX=0015h, | ||
+ | ----------62001A----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 001Ah | ||
+ | BX = new color index (or text attribute in text modes) | ||
+ | SeeAlso: AX=0015h, | ||
+ | ----------62001B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=001Ch, | ||
+ | ----------62001C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=001Bh, | ||
+ | |||
+ | Format of variable pointer record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------62001D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0015h, | ||
+ | ----------62001E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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 | ||
+ | ----------62001F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 001Fh | ||
+ | BX = column | ||
+ | CX = row | ||
+ | Note: this call is ignored in text modes | ||
+ | SeeAlso: AX=0020h | ||
+ | ----------620020----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=001Fh | ||
+ | ----------620021----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0021h | ||
+ | Return: AX = screen space X coordinate of graphics cursor position | ||
+ | SeeAlso: AX=0022h, | ||
+ | ----------620022----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0022h | ||
+ | Return: AX = screen space Y coordinate of graphics cursor position | ||
+ | SeeAlso: AX=0021h, | ||
+ | ----------620023----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0023h | ||
+ | BX = new column | ||
+ | CX = new row | ||
+ | Note: this call is ignored in text modes | ||
+ | SeeAlso: AX=0021h, | ||
+ | ----------620024----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0024h | ||
+ | BX = column offset | ||
+ | CX = row offset | ||
+ | Note: this call is ignored in text modes | ||
+ | SeeAlso: AX=0021h, | ||
+ | ----------620025----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0026h, | ||
+ | ----------620026----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0025h, | ||
+ | ----------620027----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0025h, | ||
+ | ----------620028----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0026h, | ||
+ | ----------620029----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=004Ah, | ||
+ | ----------62002A----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 002Ah | ||
+ | BX = left edge column | ||
+ | CX = right edge column | ||
+ | DX = top edge row | ||
+ | SI = bottom edge row | ||
+ | SeeAlso: AX=002Bh, | ||
+ | ----------62002B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=002Ah, | ||
+ | ----------62002C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=002Bh, | ||
+ | ----------62002D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=002Ah, | ||
+ | ----------62002E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 002Eh | ||
+ | CX = number of vertices in polygon | ||
+ | ES:BX -> variable pointer record (see below) | ||
+ | SeeAlso: AX=002Dh, | ||
+ | |||
+ | Format of variable pointer record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------62002F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 002Fh | ||
+ | BX = column | ||
+ | CX = row | ||
+ | Notes: | ||
+ | current color; the screen edges are not considered region boundaries | ||
+ | ignored in text modes | ||
+ | ----------620030----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=00A2h | ||
+ | ----------620031----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0031h | ||
+ | Return: AX = 0000h | ||
+ | ----------620032----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=001Ah, | ||
+ | ----------620033----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0034h | ||
+ | ----------620034----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0034h | ||
+ | ES:BX -> variable pointers (see below) | ||
+ | Return: indicated variables filled with cursor row and column for active | ||
+ | display | ||
+ | Note: | ||
+ | Fastgraph/ | ||
+ | SeeAlso: AX=0033h | ||
+ | |||
+ | Format of variable pointers: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------620035----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0036h | ||
+ | ----------620036----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0032h, | ||
+ | ----------620037----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0019h, | ||
+ | ----------620038----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0037h | ||
+ | ----------620039----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0039h to 003Bh | ||
+ | Return: AX = 0000h | ||
+ | ----------62003C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 003Ch | ||
+ | Return: AX = active video page (0000h-003Fh) | ||
+ | SeeAlso: AX=003Dh, | ||
+ | ----------62003D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 003Dh | ||
+ | BX = new video page (0000h to 003Fh) | ||
+ | Note: the specified page must be a physical or virtual page | ||
+ | SeeAlso: AX=0001h, | ||
+ | ----------62003E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 003Eh | ||
+ | Return: AX = visible video page (0000h-003Fh) | ||
+ | SeeAlso: AX=003Ch, | ||
+ | ----------62003F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 003Fh | ||
+ | BX = new video page (0000h to 003Fh) | ||
+ | Note: the specified page must be a physical or virtual page | ||
+ | SeeAlso: AX=0001h, | ||
+ | ----------620040----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0040h | ||
+ | Return: AX = current hidden video page number (0000h-003Fh) | ||
+ | SeeAlso: AX=003Ch, | ||
+ | ----------620041----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0041h | ||
+ | BX = new hidden page (0000h to 003Fh) | ||
+ | Note: | ||
+ | SeeAlso: AX=003Dh, | ||
+ | ----------620042----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: | ||
+ | Fastgraph/ | ||
+ | the amount of memory required by the virtual video page depends on the | ||
+ | current video mode | ||
+ | SeeAlso: AX=0043h, | ||
+ | ----------620043----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0042h, | ||
+ | ----------620044----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0044h | ||
+ | Return: AX = segment of active video page | ||
+ | ----------620045----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=000Ah, | ||
+ | ----------620046----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0047h, | ||
+ | ----------620047----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0046h, | ||
+ | ----------620048----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0048h | ||
+ | ES:BX -> buffer for video mode-specific bitmap | ||
+ | CX = width of bitmap in bytes | ||
+ | DX = height of bitmap in pixel rows | ||
+ | SeeAlso: AX=0046h, | ||
+ | ----------620049----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0048h, | ||
+ | ----------62004A----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0029h, | ||
+ | ----------62004B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=004Ah, | ||
+ | ----------62004C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0029h, | ||
+ | ----------62004D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0047h, | ||
+ | ----------62004E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=004Dh, | ||
+ | ----------62004F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=004Dh, | ||
+ | ----------620050----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=004Dh, | ||
+ | ----------620051----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0052h | ||
+ | |||
+ | Format of masking map: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ... | ||
+ | ----------620052----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0029h, | ||
+ | ----------620053----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0052h, | ||
+ | ----------620054----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0029h, | ||
+ | ----------620055----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0055h to 0059h | ||
+ | Return: AX = 0000h | ||
+ | ----------62005A----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=005Bh | ||
+ | ----------62005B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=005Ah, | ||
+ | ----------62005C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 005Ch | ||
+ | CX = source video page | ||
+ | DX = destination video page | ||
+ | ES:BX -> copy record (see below) | ||
+ | Note: | ||
+ | SeeAlso: AX=005Dh, | ||
+ | |||
+ | Format of copy record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------62005D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 005Dh | ||
+ | CX = source video page | ||
+ | DX = destination video page | ||
+ | ES:BX -> copy record (see AX=005Ch) | ||
+ | Notes: | ||
+ | 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: AX=005Ch, | ||
+ | ----------62005E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=005Dh | ||
+ | ----------62005F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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, | ||
+ | SeeAlso: AX=005Ch, | ||
+ | ----------620060----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=004Dh, | ||
+ | ----------620061----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0060h | ||
+ | ----------620062----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0048h | ||
+ | ----------620063----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0063h | ||
+ | Return: AX = 0000h | ||
+ | ----------620064----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=005Bh, | ||
+ | ----------620065----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0064h | ||
+ | ----------620066----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0066h | ||
+ | BX = new column for screen origin | ||
+ | CX = new row for screen origin | ||
+ | SeeAlso: AX=0067h | ||
+ | ----------620067----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0066h | ||
+ | ----------620068----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0068h to 006Ch | ||
+ | Return: AX = 0000h | ||
+ | ----------62006D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 006Dh | ||
+ | Return: after next key pressed | ||
+ | SeeAlso: AX=006Eh, | ||
+ | ----------62006E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 006Eh | ||
+ | ES:BX -> variable pointer record (see below) | ||
+ | Return: (after next keystroke if no typeahead) variables updated | ||
+ | SeeAlso: AX=006Dh, | ||
+ | |||
+ | Format of variable pointer record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------62006F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=006Dh, | ||
+ | |||
+ | Format of variable pointer record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------620070----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0070h | ||
+ | Return: AX = CapsLock state (0000h off, 0001h on) | ||
+ | SeeAlso: AX=006Eh, | ||
+ | ----------620071----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0071h | ||
+ | BX = new state (0000h off, 0001h on) | ||
+ | SeeAlso: AX=0070h, | ||
+ | ----------620072----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0072h | ||
+ | Return: AX = NumLock state (0000h off, 0001h on) | ||
+ | SeeAlso: AX=0070h, | ||
+ | ----------620073----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0073h | ||
+ | BX = new state (0000h off, 0001h on) | ||
+ | SeeAlso: AX=0071h, | ||
+ | ----------620074----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0074h | ||
+ | Return: AX = ScrollLock state (0000h off, 0001h on) | ||
+ | SeeAlso: AX=0070h, | ||
+ | ----------620075----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0075h | ||
+ | BX = joystick number (0001h or 0002h) | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | FFFFh joystick not connected or no game port | ||
+ | Note: | ||
+ | this function is called | ||
+ | SeeAlso: AX=0076h, | ||
+ | ----------620076----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0075h, | ||
+ | ----------620077----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0075h, | ||
+ | ----------620078----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0078h | ||
+ | BX = joystick number (0001h or 0002h) | ||
+ | Return: AX = button states | ||
+ | bit 0: top button pressed | ||
+ | bit 1: bottom button pressed | ||
+ | SeeAlso: AX=0075h, | ||
+ | ----------620079----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=006Fh, | ||
+ | |||
+ | Format of variable pointer record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------62007A----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=007Bh, | ||
+ | ----------62007B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 007Bh | ||
+ | BX = new state (0000h invisible, 0001h visible) | ||
+ | SeeAlso: AX=007Ah, | ||
+ | ----------62007C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: | ||
+ | function; if the count is zero, row and col will also be zero | ||
+ | SeeAlso: AX=007Ah, | ||
+ | |||
+ | Format of variable pointer record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------62007D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 007Dh | ||
+ | ES:BX -> variable pointer record (see below) | ||
+ | SeeAlso: AX=007Ah, | ||
+ | |||
+ | Format of variable pointer record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Note: | ||
+ | ----------62007E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 007Eh | ||
+ | BX = screen mask | ||
+ | CX = cursor mask | ||
+ | Note: this call is ignored in graphics modes | ||
+ | SeeAlso: AX=007Ah, | ||
+ | ----------62007F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=007Ah, | ||
+ | ----------620080----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=007Ah, | ||
+ | ----------620081----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0081h | ||
+ | BX = new column | ||
+ | CX = new row | ||
+ | Note: will not move the mouse cursor outside the bounding box specified with | ||
+ | AX=0080h | ||
+ | SeeAlso: AX=007Ah, | ||
+ | ----------620082----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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/ | ||
+ | ----------620083----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0083h to 0087h | ||
+ | Return: AX = 0000h | ||
+ | ----------620088----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0088h | ||
+ | BX = frequency in Hertz (18-32767) | ||
+ | CX = duration in clock ticks (0000h or negative for continuous sound) | ||
+ | Note: | ||
+ | progress | ||
+ | SeeAlso: AX=0089h, | ||
+ | ----------620089----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0089h | ||
+ | CX = number of times to cycle through sound list | ||
+ | ES:BX -> sounds array (see below) | ||
+ | Note: | ||
+ | progress | ||
+ | SeeAlso: AX=0088h, | ||
+ | |||
+ | Format of sounds array element: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------62008A----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: | ||
+ | Fastgraph/ | ||
+ | only available on PCjr and Tandy 1000 | ||
+ | SeeAlso: AX=0088h, | ||
+ | ----------62008B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 008Bh | ||
+ | ES:BX -> tone array (see below) | ||
+ | CX = number of times to repeat tone array | ||
+ | Notes: | ||
+ | Fastgraph/ | ||
+ | only available on PCjr and Tandy 1000 | ||
+ | SeeAlso: AX=008Ah, | ||
+ | |||
+ | Format of tone array element: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------62008C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 008Ch | ||
+ | ES:BX -> ' | ||
+ | Return: after music completed | ||
+ | Note: | ||
+ | progress | ||
+ | SeeAlso: AX=008Ah, | ||
+ | ----------62008D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 008Dh | ||
+ | CX = number of repetitions (negative = continuous play) | ||
+ | ES:BX -> ' | ||
+ | Note: | ||
+ | progress | ||
+ | SeeAlso: AX=008Bh, | ||
+ | ----------62008E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 008Eh | ||
+ | Note: | ||
+ | or AX=008Bh; ignored if no asynchronous sound is playing | ||
+ | SeeAlso: AX=0088h, | ||
+ | ----------62008F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 008Fh | ||
+ | Note: stops any sounds started with " | ||
+ | after the current repetition completes; ignored unless asynchronous | ||
+ | sound is continuous | ||
+ | SeeAlso: AX=008Bh, | ||
+ | ----------620090----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0090h | ||
+ | Note: this call has no effect if there is no continuous sound playing | ||
+ | SeeAlso: AX=008Eh, | ||
+ | ----------620091----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0091h | ||
+ | Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing) | ||
+ | SeeAlso: AX=008Bh, | ||
+ | ----------620092----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0092h | ||
+ | SeeAlso: AX=008Eh, | ||
+ | ----------620093----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0092h | ||
+ | ----------620094----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 0094h to 0095h | ||
+ | Return: AX = 0000h | ||
+ | ----------620096----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0096h | ||
+ | BX = duration in clock ticks | ||
+ | Return: after delay elapses | ||
+ | SeeAlso: AX=006Dh, | ||
+ | ----------620097----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0097h | ||
+ | BX = duration in processor-dependent delay units (see AX=0098h) | ||
+ | Return: after delay elapses | ||
+ | SeeAlso: AX=0096h, | ||
+ | ----------620098----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0098h | ||
+ | Return: AX = delay units per clock tick (processor-dependent) | ||
+ | Note: delay units are used by " | ||
+ | SeeAlso: AX=0097h | ||
+ | ----------620099----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 0099h | ||
+ | Return: DX:AX = number of clock ticks since midnight | ||
+ | Note: | ||
+ | Fastgraph/ | ||
+ | ----------62009A----------------------------- | ||
+ | INT 62 - FGDRIVER v1.10 - UNUSED | ||
+ | AX = 009Ah | ||
+ | Return: AX = 0000h | ||
+ | ----------62009B----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 009Bh | ||
+ | Return: DX:AX = number of bytes of conventional memory available | ||
+ | SeeAlso: AX=009Dh | ||
+ | ----------62009C----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 009Ch | ||
+ | BX = operation | ||
+ | 0000h replacement | ||
+ | 0001h AND | ||
+ | 0002h OR | ||
+ | 0003h XOR | ||
+ | Note: only available in native EGA/VGA graphics mode (0Dh to 12h) | ||
+ | ----------62009D----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0043h, | ||
+ | ----------62009E----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0043h, | ||
+ | ----------62009F----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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: AX=0043h, | ||
+ | ----------6200A0----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 00A0h | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | FFFFh expanded memory manager inaccessible or not installed | ||
+ | SeeAlso: AX=009Eh, | ||
+ | ----------6200A1----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 00A1h | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | FFFFh extended memory manager inaccessible or not installed | ||
+ | SeeAlso: AX=009Fh, | ||
+ | ----------6200A2----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 00A2h | ||
+ | BX = left column | ||
+ | CX = right column | ||
+ | DX = top row | ||
+ | SI = bottom row | ||
+ | Notes: | ||
+ | Fastgraph/ | ||
+ | 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 " | ||
+ | this function has no effect in text modes | ||
+ | SeeAlso: AX=002Bh, | ||
+ | ----------6200A3----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | AX = 00A3h | ||
+ | BX = width of left and right edges in pixels (> 0) | ||
+ | CX = width of top and bottom edges in pixels (> 0) | ||
+ | SeeAlso: AX=00A2h | ||
+ | ----------6200A4----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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/ | ||
+ | Note: the register number wraps back to zero after FFh | ||
+ | SeeAlso: AX=001Ch, | ||
+ | ----------6200A5----------------------------- | ||
+ | INT 62 u - FGDRIVER v1.10 - " | ||
+ | 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/ | ||
+ | Notes: the register number wraps back to zero after FFh | ||
+ | this call has no effect in text modes or graphics modes below 11h | ||
+ | SeeAlso: AX=001Bh, | ||
+ | ----------6201------------------------------- | ||
+ | INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE | ||
+ | AH = 01h | ||
+ | Note: | ||
+ | SeeAlso: AH=05h, | ||
+ | ----------6202------------------------------- | ||
+ | INT 62 - Cswitch - WAIT FOR SEMAPHORE | ||
+ | AH = 02h | ||
+ | DX = semaphore number (0-63) | ||
+ | Return: AX = FFFFh bad semaphore number | ||
+ | | ||
+ | SeeAlso: AH=03h, | ||
+ | ----------6203------------------------------- | ||
+ | INT 62 - Cswitch - CHECK SEMAPHORE | ||
+ | AH = 03h | ||
+ | DX = semaphore number (0-63) | ||
+ | Return: AX = FFFFh not owned | ||
+ | | ||
+ | SeeAlso: AH=02h, | ||
+ | ----------6204------------------------------- | ||
+ | INT 62 - Cswitch - TRIGGER SEMAPHORE | ||
+ | AH = 04h | ||
+ | DX = semaphore number (0-63) | ||
+ | Return: AX = FFFFh bad semaphore number | ||
+ | | ||
+ | SeeAlso: AH=02h, | ||
+ | ----------6205------------------------------- | ||
+ | INT 62 - Cswitch - SLEEP | ||
+ | AH = 05h | ||
+ | BX = seconds to sleep | ||
+ | SeeAlso: AH=01h, | ||
+ | ----------6206------------------------------- | ||
+ | INT 62 - Cswitch - SUSPEND | ||
+ | AH = 06h | ||
+ | SeeAlso: AH=05h, | ||
+ | ----------6207------------------------------- | ||
+ | INT 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 | ||
+ | = > | ||
+ | SeeAlso: AH=0Fh, | ||
+ | ----------6208------------------------------- | ||
+ | INT 62 - Cswitch - WAKE UP TASK | ||
+ | AH = 08h | ||
+ | BX = tcb identifier | ||
+ | SeeAlso: AH=05h, | ||
+ | ----------6208--CXFFFE----------------------- | ||
+ | INT 62 - MS SQL Server/ | ||
+ | AH = 08h | ||
+ | CX = FFFEh | ||
+ | DX = FFFFh | ||
+ | Return: AX = PSP address of resident DBLIBRARY | ||
+ | Note: this call does not free the memory allocated to the TSR; the calling | ||
+ | code must do the deallocation. | ||
+ | SeeAlso: INT 62" | ||
+ | ----------6209------------------------------- | ||
+ | INT 62 - Cswitch - SET PRIORITY | ||
+ | AH = 09h | ||
+ | BX = new base priority (1-10) | ||
+ | Note: the lower the priority is numerically, | ||
+ | ----------620A------------------------------- | ||
+ | INT 62 - Cswitch - TEST MESSAGE QUEUE | ||
+ | AH = 0Ah | ||
+ | DX = queue number (0-63) | ||
+ | Return: AX = FFFFh bad queue number | ||
+ | = 0000h nothing on queue | ||
+ | | ||
+ | SeeAlso: AH=0Bh, | ||
+ | ----------620B------------------------------- | ||
+ | INT 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 | ||
+ | | ||
+ | SeeAlso: AH=0Ah, | ||
+ | ----------620C------------------------------- | ||
+ | INT 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 | ||
+ | | ||
+ | SeeAlso: AH=0Ah, | ||
+ | ----------620D------------------------------- | ||
+ | INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT | ||
+ | AH = 0Dh | ||
+ | SeeAlso: AH=0Eh | ||
+ | ----------620E------------------------------- | ||
+ | INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT | ||
+ | AH = 0Eh | ||
+ | SeeAlso: AH=0Dh | ||
+ | ----------620F------------------------------- | ||
+ | INT 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: AH=07h, | ||
+ | ----------6210------------------------------- | ||
+ | INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM | ||
+ | AH = 10h | ||
+ | SeeAlso: AH=07h, | ||
+ | ----------6211------------------------------- | ||
+ | INT 62 - Cswitch - GET TCB INFORMATION | ||
+ | AH = 11h | ||
+ | ES:BX -> a pointer which will be set to the tcb address | ||
+ | Return: AX = tcb indentifier | ||
+ | SeeAlso: AH=12h | ||
+ | ----------6212------------------------------- | ||
+ | INT 62 - Cswitch - GET TCB ADDRESS | ||
+ | AH = 12h | ||
+ | ES:BX -> a pointer which will be set to the tcb table address | ||
+ | Return: AX = tcb indentifier | ||
+ | SeeAlso: AH=11h | ||
+ | ----------6213------------------------------- | ||
+ | INT 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) | ||
+ | | ||
+ | SeeAlso: AH=0Fh | ||
+ | ----------6247------------------------------- | ||
+ | INT 62 - PC Tools 7 COMMUTE - ??? | ||
+ | AH = 47h | ||
+ | AL = subfunction (00h-31h) | ||
+ | ??? | ||
+ | CF set | ||
+ | Return: ??? | ||
+ | ----------6248------------------------------- | ||
+ | INT 62 - PC Tools 7 COMMUTE - ??? | ||
+ | AH = 48h | ||
+ | AL = ??? | ||
+ | ??? | ||
+ | CF set | ||
+ | Return: ??? | ||
+ | ----------6249------------------------------- | ||
+ | INT 62 - PC Tools 7 COMMUTE - ??? | ||
+ | AH = 49h | ||
+ | ??? | ||
+ | CF set | ||
+ | Return: ??? | ||
+ | Note: may be the same as AH=4Ch | ||
+ | ----------624A------------------------------- | ||
+ | INT 62 - PC Tools 7 COMMUTE - ??? | ||
+ | AH = 4Ah | ||
+ | AL = subfunction (00h-46h) | ||
+ | ??? | ||
+ | CF set | ||
+ | Return: ??? | ||
+ | ----------624B--BX1234----------------------- | ||
+ | INT 62 - PC Tools 7 COMMUTE - ??? | ||
+ | AH = 4Bh | ||
+ | BX = 1234h | ||
+ | CX = 1234h | ||
+ | ES = ??? | ||
+ | CF set | ||
+ | Return: ??? | ||
+ | ----------624C------------------------------- | ||
+ | INT 62 - PC Tools 7 COMMUTE - ??? | ||
+ | AH = 4Ch | ||
+ | BL = subfunction | ||
+ | 00h ??? | ||
+ | 02h ??? | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | ----------626262----------------------------- | ||
+ | INT 62 - PC Tools 7 COMMUTE - INSTALLATION CHECK | ||
+ | AX = 6262h | ||
+ | CF set | ||
+ | Return: AX = 0000h | ||
+ | BX = segment of resident code's PSP | ||
+ | ----------63--------------------------------- | ||
+ | INT 63 - reserved for user interrupt | ||
+ | ----------63--------------------------------- | ||
+ | INT 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 60" | ||
+ | ----------63--------------------------------- | ||
+ | INT 63 - Oracle SQL Protected Mode Executive - ??? | ||
+ | ----------63--------------------------------- | ||
+ | INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40 | ||
+ | the " | ||
+ | has been moved there) and places the old value here | ||
+ | ----------63--------------------------------- | ||
+ | INT 63 - Kofax KF9X00 image manipulation card interface | ||
+ | ----------63--------------------------------- | ||
+ | INT 63 - DESQview/X - ??? | ||
+ | Notes: | ||
+ | the entry point, as detailed below | ||
+ | the installation check consists of testing for the string " | ||
+ | (yes, lowercase) at offset 9 from the interrupt handler start | ||
+ | SeeAlso: INT BE" | ||
+ | |||
+ | Format of interrupt handler entry: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of argument/ | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------64--------------------------------- | ||
+ | INT 64 - reserved for user interrupt | ||
+ | ----------64--------------------------------- | ||
+ | INT 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 60" | ||
+ | ----------64--------------------------------- | ||
+ | INT 64 - Oracle SQL Protected Mode Executive - ??? | ||
+ | ----------64--------------------------------- | ||
+ | INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API | ||
+ | Note: | ||
+ | versions do not use this interrupt for IPX/SPX access, instead | ||
+ | getting an entry point from INT 2F/AX=7A00h | ||
+ | SeeAlso: INT 2F/ | ||
+ | ----------64--------------------------------- | ||
+ | INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE | ||
+ | SeeAlso: INT 65" | ||
+ | ----------64--------------------------------- | ||
+ | INT 64 - Extended Batch Language v3.14+ | ||
+ | AH = function | ||
+ | 00h to 5Fh chained to previous handler | ||
+ | 60h to 6Ch reserved, return immediately | ||
+ | 80h to FFh chained to previous handler | ||
+ | 6Dh (v4.01+) insert tone in queue | ||
+ | AL = ??? | ||
+ | CX = frequency in Hertz | ||
+ | DL = duration in clock ticks | ||
+ | Return: AL = 00h if note stored | ||
+ | = 01h if no room to store | ||
+ | 6Eh clear ??? counter/ | ||
+ | 6Fh return counter/ | ||
+ | 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 " | ||
+ | AL = ' | ||
+ | ' | ||
+ | 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' | ||
+ | Notes: | ||
+ | the chaining does not check whether the interrupt had been hooked | ||
+ | before, so if you try to chain when the previous vector was | ||
+ | 0000h: | ||
+ | functions 72h and 7Ah-7Dh appear to be interfaces to the optional | ||
+ | floating-point and extended function packages | ||
+ | ----------64--------------------------------- | ||
+ | INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information | ||
+ | Note: This vector is overwritten by Pdisk to install custom harddrive types. | ||
+ | It can either destroy 4 vectors and take no memory or TSR and take | ||
+ | up some memory. | ||
+ | SeeAlso: INT 65" | ||
+ | ----------65--------------------------------- | ||
+ | INT 65 - reserved for user interrupt | ||
+ | ----------65--------------------------------- | ||
+ | INT 65 - Adaptec controllers - DRIVE 1 DATA | ||
+ | Note: this vector stores the second four bytes of the parameter table for | ||
+ | hard disk 1 | ||
+ | SeeAlso: INT 64" | ||
+ | ----------65--------------------------------- | ||
+ | INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE | ||
+ | SeeAlso: INT 64" | ||
+ | ----------65--------------------------------- | ||
+ | INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT | ||
+ | ----------65--------------------------------- | ||
+ | INT 65 - SD.COM v6.2 | ||
+ | The unregistered version of SD62.COM uses the low byte of this vector to | ||
+ | count the number of invocations, | ||
+ | time after the 20th use. | ||
+ | ----------65--------------------------------- | ||
+ | INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information | ||
+ | SeeAlso: INT 64" | ||
+ | ----------65--------------------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - INTERFACE | ||
+ | SI = function number (see separate entries for details on several) | ||
+ | = 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) | ||
+ | |||
+ | Format of signature block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 02h 19 BYTEs " | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------65----SI0000----------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET) | ||
+ | SI = 0000h | ||
+ | ----------65----SI0003----------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - SET STATE | ||
+ | SI = 0003h | ||
+ | ES:BX -> WORD state = 0000h disabled | ||
+ | = 0001h enabled | ||
+ | SeeAlso: SI=0004h | ||
+ | ----------65----SI0004----------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - GET STATE | ||
+ | SI = 0004h | ||
+ | Return: AX = 0000h all done playing sounds | ||
+ | = else still playing sounds | ||
+ | SeeAlso: SI=0003h | ||
+ | ----------65----SI0006----------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - SET MODE | ||
+ | SI = 0006h | ||
+ | ES:BX -> WORD mode = 0000h melodic | ||
+ | = 0001h percussive | ||
+ | SeeAlso: SI=0007h | ||
+ | ----------65----SI0007----------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - GET MODE | ||
+ | SI = 0007h | ||
+ | Return: AX = 0000h melodic | ||
+ | = 0001h percussive | ||
+ | SeeAlso: SI=0006h | ||
+ | ----------65----SI000C----------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE | ||
+ | SI = 000Ch | ||
+ | ES:BX -> WORD voice = 0000h to 0008h | ||
+ | SeeAlso: SI=000Dh | ||
+ | ----------65----SI000D----------------------- | ||
+ | INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE | ||
+ | SI = 000Dh | ||
+ | Return: AX = voice (0000h to 0008h) | ||
+ | SeeAlso: SI=000Ch | ||
+ | ----------66--------------------------------- | ||
+ | INT 66 - reserved for user interrupt | ||
+ | ----------66--------------------------------- | ||
+ | INT 66 - Adaptec controllers - DRIVE 1 DATA | ||
+ | Note: this vector stores the third four bytes of the parameter table for | ||
+ | hard disk 1 | ||
+ | SeeAlso: INT 64" | ||
+ | ----------66--------------------------------- | ||
+ | INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE | ||
+ | SeeAlso: INT 64" | ||
+ | ----------66--------------------------------- | ||
+ | INT 66 - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ??? | ||
+ | Notes: | ||
+ | server' | ||
+ | TurboNET is a NetBIOS-based file redirector and server | ||
+ | SeeAlso: INT 2F/AX=8100h | ||
+ | ----------66--------------------------------- | ||
+ | INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information | ||
+ | SeeAlso: INT 64" | ||
+ | ----------66--------------------------------- | ||
+ | INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer | ||
+ | Note: This Windows 3.x Virtual Device Driver implements a virtual timer | ||
+ | which will expire and call INT 66. This timer can be used to | ||
+ | calculate elapsed execution time etc. | ||
+ | ----------6601------------------------------- | ||
+ | INT 66 - BitFax Scheduler - SET MODE??? | ||
+ | AH = 01h | ||
+ | SeeAlso: AH=02h | ||
+ | ----------6602------------------------------- | ||
+ | INT 66 - BitFax Scheduler - SET MODE??? | ||
+ | AH = 02h | ||
+ | SeeAlso: AH=01h | ||
+ | ----------6603------------------------------- | ||
+ | INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS | ||
+ | AH = 03h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=05h | ||
+ | ----------6604------------------------------- | ||
+ | INT 66 - BitFax Scheduler - GET STATUS??? | ||
+ | AH = 04h | ||
+ | Return: AX = ??? (0000h or 0001h) | ||
+ | DX = BitSched version??? | ||
+ | 9796h (ver. 3.00) | ||
+ | 97E6h (ver. 3.02) | ||
+ | 92D0h (ver. 3.04.06) | ||
+ | 9510h (ver. 3.06.02) | ||
+ | SeeAlso: AH=06h, | ||
+ | ----------6605------------------------------- | ||
+ | INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX | ||
+ | AH = 05h | ||
+ | BX:CX -> command block (see below) | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=03h | ||
+ | |||
+ | Format of command block: | ||
+ | Offset Size Description | ||
+ | 00h 18 BYTEs configuration bytes??? | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 01h send cover page | ||
+ | C3h 15 BYTEs configuration bytes??? | ||
+ | | ||
+ | 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??? | ||
+ | ??? | ||
+ | ----------6606------------------------------- | ||
+ | INT 66 - BitFax Scheduler - SET MODE??? | ||
+ | AH = 06h | ||
+ | Return: DX = BitSched version??? (same as AH=04h) | ||
+ | SeeAlso: AH=04h | ||
+ | ----------660688----------------------------- | ||
+ | INT 66 - John W. Ratcliff (The IBM Digitized Sound Package) | ||
+ | AX = 0688h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=0689h | ||
+ | ----------660689----------------------------- | ||
+ | INT 66 - John W. Ratcliff (The IBM Digitized Sound Package) | ||
+ | AX = 0689h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=0688h | ||
+ | ----------663345----------------------------- | ||
+ | INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY | ||
+ | AX = 3345h | ||
+ | Return: AX = FFFFh error removing TSR | ||
+ | Note: the installation check consists of checking for the signature | ||
+ | " | ||
+ | SeeAlso: AH=04h,INT 2F/ | ||
+ | ----------66FFFBBXFFFB----------------------- | ||
+ | INT 66 - MicroHelp Stay-Res Plus - ??? | ||
+ | AX = FFFBh | ||
+ | BX = FFFBh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=FFFEh, | ||
+ | ----------66FFFEBXFFFE----------------------- | ||
+ | INT 66 - MicroHelp Stay-Res/ | ||
+ | AX = FFFEh | ||
+ | BX = FFFEh | ||
+ | Return: only if unsuccessful | ||
+ | Notes: | ||
+ | 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/ | ||
+ | Programs which use Stay-Res include ThesPlus (program name " | ||
+ | and Personal Calendar (program name " | ||
+ | SeeAlso: AX=FFFBh, | ||
+ | ----------66FFFFBXFFF0----------------------- | ||
+ | INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME | ||
+ | AX = FFFFh | ||
+ | BX = FFF0h | ||
+ | Return: DI = offset of program name in interrupt handler segment | ||
+ | SeeAlso: AX=FFFBh, | ||
+ | ----------67--------------------------------- | ||
+ | INT 67 - Adaptec controllers - DRIVE 1 DATA | ||
+ | Note: this vector stores the last four bytes of the parameter table for | ||
+ | hard disk 1 | ||
+ | SeeAlso: INT 64" | ||
+ | ----------67--------------------------------- | ||
+ | INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information | ||
+ | SeeAlso: INT 64" | ||
+ | ----------67--------------------------------- | ||
+ | INT 67 - Sangoma CCPOP 3270 resident module | ||
+ | SeeAlso: INT 61" | ||
+ | ----------67--------------------------------- | ||
+ | INT 67 - CUCKOO.COM - INSTALLATION CHECK | ||
+ | Notes: this is not a vector; when loaded for the first time, CUCKOO.COM uses | ||
+ | the last unused (0000h: | ||
+ | the signature value 434Ch:4F4Bh (' | ||
+ | CUCKOO is a resident on-screen clock with optional hourly chime or | ||
+ | cuckoo by an unknown author with revisions by Thomas A. Lundin | ||
+ | ----------6700------------------------------- | ||
+ | INT 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: AH=01h, | ||
+ | ----------6701------------------------------- | ||
+ | INT 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: AH=00h, | ||
+ | ----------6702------------------------------- | ||
+ | INT 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: AH=00h, | ||
+ | ----------673F--CX5145----------------------- | ||
+ | INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK | ||
+ | AH = 3Fh | ||
+ | CX = 5145h (" | ||
+ | DX = 4D4Dh (" | ||
+ | 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 | ||
+ | " | ||
+ | handler' | ||
+ | the handler' | ||
+ | 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 " | ||
+ | 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, | ||
+ | the string check mentioned above is not supported by 386MAX | ||
+ | SeeAlso: AH=DDh, | ||
+ | SeeAlso: INT 21/ | ||
+ | |||
+ | 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 " | ||
+ | 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 BYTE ??? | ||
+ | 01h WORD ??? | ||
+ | ??? | ||
+ | AH = 03h get QEMM version | ||
+ | Return: CF clear | ||
+ | AX = BX = version in BCD | ||
+ | Notes: | ||
+ | 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: | ||
+ | AH = 05h free 4K page and turn QEMM off | ||
+ | DX = page number returned by function 04h | ||
+ | Return: CF clear | ||
+ | Note: | ||
+ | AH = 06h make new mapping context??? | ||
+ | DX = page number of 4K page to hold page table | ||
+ | Return: CF clear | ||
+ | Note: | ||
+ | page table entry to point at copy | ||
+ | AH = 07h get mapping context??? | ||
+ | Return: CF clear | ||
+ | DX = page table number??? | ||
+ | AH = 08h ??? | ||
+ | DX = linear page number | ||
+ | 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??? | ||
+ | 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: | ||
+ | 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: | ||
+ | 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/ | ||
+ | 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: | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | will switch to virtual86 mode with interrupts disabled, all | ||
+ | segment registers loaded, and EAX destroyed. | ||
+ | AH = 11h get memory type map | ||
+ | AL = zero/ | ||
+ | by QEMM 6.00) | ||
+ | ES:DI -> 256-byte buffer for memory types | ||
+ | Return: CF clear | ||
+ | BL = ??? | ||
+ | ES:DI buffer filled | ||
+ | Note: | ||
+ | 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 ??? | ||
+ | | ||
+ | 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: | ||
+ | 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: | ||
+ | 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: | ||
+ | value of INT 15 if ES:BX not 0000h:0000h | ||
+ | AX = 1307h ??? | ||
+ | ??? | ||
+ | Return: CF clear | ||
+ | Note: | ||
+ | execution (see AX=130Ch) | ||
+ | AX = 1308h ??? | ||
+ | BL = ??? (zero/ | ||
+ | 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/ | ||
+ | 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=130Dh, | ||
+ | Return: CF clear | ||
+ | AX = 130Dh ??? | ||
+ | ??? | ||
+ | Return: CF clear | ||
+ | Note: | ||
+ | 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: | ||
+ | execution (see AX=130Ch) | ||
+ | AX = 1311h set ??? | ||
+ | BL = ??? | ||
+ | Return: CF clear | ||
+ | AX = 1312h (v6.02) NOP??? | ||
+ | Note: | ||
+ | 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 | ||
+ | | ||
+ | AX = 1600h get memory access status | ||
+ | ES:DI -> 256-byte buffer | ||
+ | Return: ES:DI buffer filled | ||
+ | Note: | ||
+ | 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 | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | 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 ??? | ||
+ | 05h BYTE ??? | ||
+ | SeeAlso: INT 21/ | ||
+ | 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 " | ||
+ | = FFh if string ends in " | ||
+ | = 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 | ||
+ | | ||
+ | AH = 1Dh Stealth interrupts | ||
+ | AL = subfunction | ||
+ | 00h switch to pre-Stealth interrupt vector table | ||
+ | Note: also switches VGA Save table pointer | ||
+ | (0040h: | ||
+ | currently assigned for use by the two | ||
+ | interrupt controllers (see INT 67/ | ||
+ | with the vectors for INT 08-0F and 70-77 (to | ||
+ | avoid crashing the system). | ||
+ | 01h restore user interrupt vector table | ||
+ | Notes: | ||
+ | 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/ | ||
+ | DX = ??? (always 0000h for v6.00) | ||
+ | SI = ??? (always 0000h for v6.00) | ||
+ | DI = ??? (always 0000h for v6.00) | ||
+ | 01h get number of Stealth' | ||
+ | Return: CF clear | ||
+ | BX = number of Stealth' | ||
+ | 02h get Stealth' | ||
+ | ES:DI -> buffer for Stealth ROM info (see below) | ||
+ | Return: CF clear | ||
+ | BX = number of Stealth' | ||
+ | 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: ??? | ||
+ | other | ||
+ | Return: CF set | ||
+ | |||
+ | Format of QEMM 6.0 memory statistics: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Add to offset 49h for Total unavailable top/shadow. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Add to offset 1Dh for Total unavailable top/shadow. | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of Stealth ROM info [array]: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------6740------------------------------- | ||
+ | INT 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: AH=3Fh, | ||
+ | ----------6741------------------------------- | ||
+ | INT 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: AH=58h, | ||
+ | ----------6742------------------------------- | ||
+ | INT 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=2702h | ||
+ | ----------6743------------------------------- | ||
+ | INT 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: AH=45h | ||
+ | ----------6744------------------------------- | ||
+ | INT 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: AH=69h | ||
+ | ----------6745------------------------------- | ||
+ | INT 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: AH=43h | ||
+ | ----------6746------------------------------- | ||
+ | INT 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 | ||
+ | ----------6747------------------------------- | ||
+ | INT 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: AH=48h | ||
+ | ----------6748------------------------------- | ||
+ | INT 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: AH=47h | ||
+ | ----------6749------------------------------- | ||
+ | INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES | ||
+ | AH = 49h | ||
+ | Note: | ||
+ | ----------674A------------------------------- | ||
+ | INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY | ||
+ | AH = 4Ah | ||
+ | Note: | ||
+ | ----------674B------------------------------- | ||
+ | INT 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 | ||
+ | ----------674C------------------------------- | ||
+ | INT 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: AH=4Dh | ||
+ | ----------674D------------------------------- | ||
+ | INT 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: AH=4Ch | ||
+ | ----------674E------------------------------- | ||
+ | INT 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/ | ||
+ | 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: AH=4Fh | ||
+ | ----------674F------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP | ||
+ | AH = 4Fh | ||
+ | AL = subfunction | ||
+ | 00h get partial page map | ||
+ | DS:SI -> structure containing list of segments whose mapping | ||
+ | contexts are to be saved | ||
+ | ES:DI -> array to receive page map | ||
+ | 01h set partial page map | ||
+ | DS:SI -> structure containing saved partial page map | ||
+ | 02h get size of partial page map | ||
+ | BX = number of mappable segments in the partial map to be saved | ||
+ | Return: AH = status | ||
+ | 00h 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: AH=4Eh | ||
+ | ----------6750------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES | ||
+ | AH = 50h | ||
+ | AL = subfunction | ||
+ | 00h use physical page numbers | ||
+ | 01h use segment addresses | ||
+ | DX = handle | ||
+ | CX = number of entries in array | ||
+ | DS:SI -> mapping array (see 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: AH=40h | ||
+ | |||
+ | Format of mapping array entry: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------6751------------------------------- | ||
+ | INT 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 | ||
+ | ----------6752------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES | ||
+ | AH = 52h | ||
+ | AL = subfunction | ||
+ | 00h get handle attributes | ||
+ | Return: AL = attribute | ||
+ | 00h handle is volatile | ||
+ | 01h handle is nonvolatile | ||
+ | 01h set handle attributes | ||
+ | BL = new attribute (see returned AL) | ||
+ | 02h get attribute capability | ||
+ | Return: AL = attribute capability | ||
+ | 00h only volatile handles supported | ||
+ | 01h both volatile and non-volatile supported | ||
+ | DX = handle | ||
+ | Return: AH = status | ||
+ | 00h 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: AH=53h | ||
+ | ----------6753------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME | ||
+ | AH = 53h | ||
+ | AL = subfunction | ||
+ | 00h get handle name | ||
+ | ES:DI -> 8-byte buffer for handle name | ||
+ | 01h set handle name | ||
+ | DS:SI -> 8-byte handle name | ||
+ | DX = handle | ||
+ | Return: AH = status | ||
+ | 00h successful | ||
+ | 80h internal error | ||
+ | 81h hardware malfunction | ||
+ | 83h invalid handle | ||
+ | 84h undefined function requested | ||
+ | 8Fh undefined subfunction | ||
+ | A1h duplicate handle name | ||
+ | SeeAlso: AH=52h | ||
+ | ----------6754------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY | ||
+ | AH = 54h | ||
+ | AL = subfunction | ||
+ | 00h get handle directory | ||
+ | ES:DI -> buffer for handle directory (see 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 | ||
+ | |||
+ | Format of handle directory entry: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------6755------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP | ||
+ | AH = 55h | ||
+ | AL = subfunction | ||
+ | 00h physical page numbers provided by caller | ||
+ | 01h segment addresses provided by caller | ||
+ | DX = handle | ||
+ | DS:SI -> structure containing map and jump address | ||
+ | Return: (at target address unless error) | ||
+ | AH = status | ||
+ | 00h 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: AH=56h | ||
+ | ----------6756------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL | ||
+ | AH = 56h | ||
+ | AL = subfunction | ||
+ | 00h physical page numbers provided by caller | ||
+ | DX = handle | ||
+ | DS:SI -> structure containing page map and call address | ||
+ | 01h segment addresses provided by caller | ||
+ | DX = handle | ||
+ | DS:SI -> structure containing page map and call address | ||
+ | 02h get page map stack space required | ||
+ | Return: BX = stack space required | ||
+ | Return: (if successful, the target address is called. | ||
+ | restore mapping context) | ||
+ | AH = status (see AH=55h) | ||
+ | SeeAlso: AH=55h | ||
+ | ----------6757------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - MOVE/ | ||
+ | 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: | ||
+ | direction is chosen such that the destination receives an intact copy | ||
+ | of the source region | ||
+ | |||
+ | Format of EMS copy data: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 00h conventional | ||
+ | 01h expanded | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 00h conventional | ||
+ | 01h expanded | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6758------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY | ||
+ | AH = 58h | ||
+ | AL = subfunction | ||
+ | 00h get mappable physical address array | ||
+ | ES:DI -> buffer to be filled with array | ||
+ | 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 | ||
+ | |||
+ | Format of mappable physical address entry: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------6759------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION | ||
+ | AH = 59h | ||
+ | AL = subfunction | ||
+ | 00h get hardware configuration array | ||
+ | ES:DI -> buffer to be filled with array (see 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: | ||
+ | enabled or disabled at any time by the operating system | ||
+ | |||
+ | Format of hardware configuration array: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0000h DMA with alternate register sets | ||
+ | 0001h only one DMA register set | ||
+ | ----------675A------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/ | ||
+ | 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 | ||
+ | ----------675B------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET | ||
+ | AH = 5Bh | ||
+ | AL = subfunction | ||
+ | 00h get alternate map register set | ||
+ | Return: BL = current active alternate map register set number | ||
+ | ES:DI -> map register context save area if BL=00h | ||
+ | 01h set alternate map register set | ||
+ | BL = new alternate map register set number | ||
+ | ES:DI -> map register context save area if BL=0 | ||
+ | 02h get alternate map save array size | ||
+ | Return: DX = array size in bytes | ||
+ | 03h allocate alternate map register set | ||
+ | Return: BL = number of map register set; 00h = not supported | ||
+ | 04h deallocate alternate map register set | ||
+ | BL = number of alternate map register set | ||
+ | Return: AH = status | ||
+ | 00h 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 | ||
+ | ----------675B------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS | ||
+ | AH = 5Bh | ||
+ | AL = subfunction | ||
+ | 05h allocate DMA register set | ||
+ | Return: BL = DMA register set number, 00h if not supported | ||
+ | 06h enable DMA on alternate map register set | ||
+ | BL = DMA register set number | ||
+ | DL = DMA channel number | ||
+ | 07h disable DMA on alternate map register set | ||
+ | BL = DMA register set number | ||
+ | 08h deallocate DMA register set | ||
+ | BL = DMA register set number | ||
+ | Return: AH = status | ||
+ | 00h 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 | ||
+ | ----------675BE0----------------------------- | ||
+ | INT 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: AX=5BF0h, | ||
+ | ----------675BF0----------------------------- | ||
+ | INT 67 - MICEMM v4D - INSTALLATION CHECK | ||
+ | AX = 5BF0h | ||
+ | Return: AH = 00h if MICEMM present | ||
+ | BX = code segment of driver | ||
+ | Note: | ||
+ | SeeAlso: AH=3Fh, | ||
+ | ----------675BF1----------------------------- | ||
+ | INT 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: AX=5BE0h, | ||
+ | ----------675C------------------------------- | ||
+ | INT 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 | ||
+ | ----------675D------------------------------- | ||
+ | INT 67 - LIM EMS 4.0 - ENABLE/ | ||
+ | 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 | ||
+ | ----------6760------------------------------- | ||
+ | INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY | ||
+ | AH = 60h | ||
+ | ES:DI -> buffer | ||
+ | Return: AH = status | ||
+ | AL = number of entries | ||
+ | buffer at ES:DI filled | ||
+ | ----------6761------------------------------- | ||
+ | INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT | ||
+ | AH = 61h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | Note: can be used by accelerator card manufacturer to flush RAM cache, | ||
+ | ensuring that the cache accurately reflects what the processor would | ||
+ | see without the cache. | ||
+ | ----------6768------------------------------- | ||
+ | INT 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: | ||
+ | ----------6769------------------------------- | ||
+ | INT 67 - EEMS - MAP PAGE INTO FRAME | ||
+ | AH = 69h | ||
+ | AL = frame number | ||
+ | BX = page number | ||
+ | DX = handle | ||
+ | Return: AH = status | ||
+ | Note: | ||
+ | SeeAlso: AH=44h, | ||
+ | ----------676A------------------------------- | ||
+ | INT 67 - EEMS - PAGE MAPPING | ||
+ | AH = 6Ah | ||
+ | AL = subfunction | ||
+ | 00h save partial page map | ||
+ | CH = first page frame | ||
+ | CL = number of frames | ||
+ | ES:DI -> buffer which is to be filled | ||
+ | 01h restore partial page map | ||
+ | CH = first page frame | ||
+ | CL = number of frames | ||
+ | DI:SI -> previously saved page map | ||
+ | 02h save and restore partial page map | ||
+ | CH = first page frame | ||
+ | CL = number of frames | ||
+ | ES:DI = buffer for current page map | ||
+ | DI:SI = new page map | ||
+ | 03h get size of save array | ||
+ | CH = first page frame | ||
+ | CL = number of frames | ||
+ | Return: AL = size of array in bytes | ||
+ | 04h switch to standard map register setting | ||
+ | 05h switch to alternate map register setting | ||
+ | 06h deallocate pages mapped to frames in conventional memory | ||
+ | CH = first page frame | ||
+ | CL = number of frames | ||
+ | Return: AH = status | ||
+ | Note: | ||
+ | specified | ||
+ | SeeAlso: AH=69h | ||
+ | ----------67DD------------------------------- | ||
+ | INT 67 - Quadtel QMAPS - API | ||
+ | AH = DDh | ||
+ | AL = function | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | Notes: | ||
+ | Hewlett-Packard' | ||
+ | supports this API | ||
+ | SeeAlso: AH=3Fh, | ||
+ | ----------67DE00----------------------------- | ||
+ | INT 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 | ||
+ | ----------67DE01----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE | ||
+ | AX = DE01h | ||
+ | ES:DI -> 4K page table buffer | ||
+ | DS:SI -> three descriptor table entries in GDT | ||
+ | first becomes code segment descriptor, other two for use by | ||
+ | main control program | ||
+ | Return: AH = 00h successful | ||
+ | DI -> first unused page table entry in buffer | ||
+ | EBX -> protected mode entry point in code segment | ||
+ | AH = nonzero | ||
+ | Note: | ||
+ | AX=DE0Ch (in each case, all other registers as appropriate for | ||
+ | the function) | ||
+ | SeeAlso: INT 67/AH=3Fh | ||
+ | |||
+ | QEMM v6.03 protected mode entry point may also be called with: | ||
+ | AX = DF00h ??? | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | AX = DF01h ??? | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | |||
+ | ----------67DE02----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS | ||
+ | AX = DE02h | ||
+ | Return: AH = 00h successful | ||
+ | EDX = physical address of highest 4K memory page | ||
+ | AH nonzero: failed | ||
+ | SeeAlso: AH=3Fh | ||
+ | ----------67DE03----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES | ||
+ | AX = DE03h | ||
+ | Return: AH = 00h successful | ||
+ | EDX = number of free 4K pages | ||
+ | AH nonzero: failed | ||
+ | Notes: | ||
+ | also available in protected mode by calling the protected-mode VCPI | ||
+ | entry point | ||
+ | SeeAlso: AX=DE04h | ||
+ | ----------67DE04----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE | ||
+ | AX = DE04h | ||
+ | Return: AH = 00h successful | ||
+ | EDX = physical address of allocated page | ||
+ | AH nonzero: failed | ||
+ | Notes: the client program is responsible for freeing all memory allocated | ||
+ | with this call before terminating | ||
+ | also available in protected mode by calling the protected-mode VCPI | ||
+ | entry point | ||
+ | SeeAlso: AH=3Fh, | ||
+ | ----------67DE05----------------------------- | ||
+ | INT 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: AH=3Fh, | ||
+ | ----------67DE06----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB | ||
+ | AX = DE06h | ||
+ | CX = page number (linear address shifted right 12 bits) | ||
+ | Return: AH = 00h successful | ||
+ | EDX = physical address of page | ||
+ | AH nonzero: invalid page number (AH = 8Bh recommended) | ||
+ | ----------67DE07----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - READ CR0 | ||
+ | AX = DE07h | ||
+ | Return: AH = 00h | ||
+ | EBX = value of Control Register 0 | ||
+ | SeeAlso: AH=3Fh, | ||
+ | ----------67DE08----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS | ||
+ | AX = DE08h | ||
+ | ES:DI -> array of 8 DWORDs | ||
+ | Return: AH = 00h | ||
+ | buffer filled with DR0 first, DR7 last, DR4 and DR5 unused | ||
+ | SeeAlso: AH=3Fh, | ||
+ | ----------67DE09----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS | ||
+ | AX = DE09h | ||
+ | ES:DI -> array of 8 DWORDs holding new values of debug registers | ||
+ | Return: AH = 00h | ||
+ | Note: | ||
+ | SeeAlso: AH=3Fh, | ||
+ | ----------67DE0A----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS | ||
+ | AX = DE0Ah | ||
+ | Return: AH = 00h successful | ||
+ | BX = first vector used by master 8259 (IRQ0) | ||
+ | CX = first vector used by slave 8259 (IRQ8) | ||
+ | AH nonzero: failed | ||
+ | Note: CX is undefined in systems without a slave 8259 | ||
+ | SeeAlso: AX=DE0Bh | ||
+ | ----------67DE0B----------------------------- | ||
+ | INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS | ||
+ | AX = DE0Bh | ||
+ | BX = first vector used by master 8259 | ||
+ | CX = first vector used by slave 8259 | ||
+ | interrupts disabled | ||
+ | Return: AH = 00h successful | ||
+ | AH nonzero: failed | ||
+ | Notes: This call merely informs the server that the client has changed the | ||
+ | interrupt mappings. | ||
+ | have already been changed by the server or another client, and is | ||
+ | responsible for restoring the original mappings before terminating. | ||
+ | SeeAlso: AX=DE0Ah | ||
+ | ----------67DE0C----------------------------- | ||
+ | INT 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: AH=3Fh,INT 15/AH=89h | ||
+ | |||
+ | Note: in protected mode, calling the protected-mode VCPI entry point with | ||
+ | AX = DE0Ch | ||
+ | DS = segment selector from function DE01h | ||
+ | SS:ESP in first megabyte of linear memory | ||
+ | STACK: | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | DWORD | ||
+ | and interrupts disabled, will switch to virtual86 mode with | ||
+ | interrupts disabled, all segment registers loaded, and EAX destroyed. | ||
+ | |||
+ | Format of system register values for switch to protected mode: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------67FFA5----------------------------- | ||
+ | INT 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 | ||
+ | " | ||
+ | handler' | ||
+ | SeeAlso: AH=3Fh | ||
+ | |||
+ | Call API entry point with: | ||
+ | AH = 00h get memory manager' | ||
+ | Return: AH = status | ||
+ | bit 0: not active (OFF) | ||
+ | bit 1: in " | ||
+ | AH = 01h set memory manager' | ||
+ | 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) | ||
+ | --------------------------------------------- | ||
+ | Interrupt List, part 7 of 7 | ||
+ | This compilation is Copyright (c) 1989, | ||
+ | ----------68--------------------------------- | ||
+ | INT 68 - Sangoma CCPOP 3270 resident module | ||
+ | SeeAlso: INT 67" | ||
+ | ----------6801------------------------------- | ||
+ | INT 68 - APPC/PC - NETWORK DEVICE CONTROL | ||
+ | AH = 01h | ||
+ | DS:DX -> control block | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if verb = 1B00h (DISPLAY)--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | bit 6: SESSION_TERMINATION_SOURCE_DRAIN | ||
+ | ---if verb=2000h (Attach Physical Unit)--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 01h RETURN_CONTROL: | ||
+ | ---if verb=2100h (Attach Logical Unit)--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | FFFFFFFFh = reject incoming ALLOCATEs | ||
+ | 00000000h = queue ALLOCATEs | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | for each partner logical unit: | ||
+ | WORD length of this partner logical unit record | ||
+ | WORD 42 | ||
+ | 8 BYTEs (high byte first) partner logical unit name | ||
+ | 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 (high byte first) partner logical unit DLC name | ||
+ | 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 | ||
+ | 8 BYTEs (high byte first) mode name | ||
+ | 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)--- | ||
+ | | ||
+ | | ||
+ | ---if verb=2700h (Detach Physical Unit)--- | ||
+ | | ||
+ | 01h type: soft | ||
+ | ---if verb=2B00h (Activate DLC)--- | ||
+ | | ||
+ | | ||
+ | |||
+ | 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 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Routines defined by LU_LU_PASSWORD_EXIT, | ||
+ | pointers are called by pushing the DWORD pointer to the verb on the stack and | ||
+ | then performing a FAR call. | ||
+ | |||
+ | Format of ACCESS_LU_LU_PW verb: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 26h 17 BYTEs (counted string) partner fully qualified logical unit name | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of CREATE_TP verb: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 2Fh 65 BYTEs (counted string) transaction program name | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 84h 18 BYTEs (counted string) partner fully qualified logical unit name | ||
+ | | ||
+ | 9Eh 12 BYTEs 00h | ||
+ | AAh 11 BYTEs (counted string) password | ||
+ | B5h 11 BYTEs (counted string) user ID | ||
+ | | ||
+ | 1 already verified | ||
+ | |||
+ | Format of SYSLOG verb: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | 0Eh 10 BYTEs 00h | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6802------------------------------- | ||
+ | INT 68 - APPC/PC - CONNECTION CONTROL | ||
+ | AH = 02h | ||
+ | DS:DX -> control block | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | 0 if basic verb | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if verb=0100h (Allocate or MC_Allocate)--- | ||
+ | | ||
+ | 1 mapped conversation | ||
+ | | ||
+ | 01h SYNC_LEVEL = confirm | ||
+ | | ||
+ | | ||
+ | 01h RETURN_CONTROL: | ||
+ | 02h RETURN_CONTROL: | ||
+ | | ||
+ | | ||
+ | | ||
+ | 43h 65 BYTEs (counted string) TP name | ||
+ | | ||
+ | 01h security: same | ||
+ | 02h security: pgm | ||
+ | 85h 11 BYTEs 00h | ||
+ | 90h 11 BYTEs (counted string) password | ||
+ | 9Bh 11 BYTEs (counted string) user ID | ||
+ | | ||
+ | | ||
+ | ---if verb=0300h (Confirm or MC_Confirm)--- | ||
+ | | ||
+ | ---if verb=0400h (Confirmed or MC_Confirmed), | ||
+ | ---if verb=0500h (Deallocate or MC_Deallocate)--- | ||
+ | | ||
+ | | ||
+ | 1 FLUSH | ||
+ | 2 ABEND_PROC | ||
+ | 3 ABEND_SVC | ||
+ | 4 ABEND_TIMER | ||
+ | 5 ABEND | ||
+ | | ||
+ | | ||
+ | ---if verb=0600h (Flush or MC_Flush), no additional fields--- | ||
+ | ---if verb=0700h (Get_Attributes or MC_Get_Attributes)--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 50h 18 BYTEs (counted string) partner' | ||
+ | | ||
+ | 63h 11 BYTEs (counted string) user ID | ||
+ | ---if verb=0800h (Get_Type)--- | ||
+ | | ||
+ | ---if verb=0900h (Post_on_Receipt)--- | ||
+ | | ||
+ | | ||
+ | ---if verb=0A00h (Prepare_to_Receive or MC_Prepare_to_Receive)--- | ||
+ | | ||
+ | | ||
+ | ---if verb=0B00h (Receive_and_Wait or MC_Receive_and_Wait)--- | ||
+ | | ||
+ | 00h data | ||
+ | 01h data complete | ||
+ | 02h data incomplete | ||
+ | 03h confirm | ||
+ | 04h confirm send | ||
+ | 05h confirm deallocate | ||
+ | 06h send | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if verb=0C00h (Receive_Immediate or MC_Receive_Immediate)--- | ||
+ | | ||
+ | 00h data | ||
+ | 01h data complete | ||
+ | 02h data incomplete | ||
+ | 03h confirm | ||
+ | 04h confirm send | ||
+ | 05h confirm deallocate | ||
+ | 06h send | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if verb=0E00h (Request_to_Send or MC_Request_to_Send), | ||
+ | ---if verb=0F00h (Send_Data or MC_Send_Data)--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if verb=1000h (Send_Error or MC_Send_Error)--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if verb=1200h (Test or MC_Test)--- | ||
+ | | ||
+ | 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)--- | ||
+ | | ||
+ | Note: error codes have interpretations as for 1200h above | ||
+ | |||
+ | Values for primary return code: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 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: | ||
+ | 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 | ||
+ | ----------6803------------------------------- | ||
+ | INT 68 - APPC/PC | ||
+ | AH = 03h | ||
+ | DS:DX -> control block (see below) | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if verb=2400h (TP Started), control block continues--- | ||
+ | | ||
+ | ---if verb=2800h (Get ALLOCATE), control block continues--- | ||
+ | | ||
+ | 00h dequeue | ||
+ | 01h test | ||
+ | | ||
+ | ---if verb=2A00h (Change Logical Unit). control block continues--- | ||
+ | | ||
+ | FFFFFFFFh reject incoming ALLOCATEs | ||
+ | 00000000h queue ALLOCATEs | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 01h resume QUEUE_ALLOCATEs | ||
+ | | ||
+ | | ||
+ | ----------6804------------------------------- | ||
+ | INT 68 - APPC/PC | ||
+ | AH = 04h | ||
+ | DS:DX -> control block (see below) | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | 2500h TP_ENDED | ||
+ | 2900h TP_VALID | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6805------------------------------- | ||
+ | INT 68 - APPC/PC - TRANSFER MSG DATA | ||
+ | AH = 05h | ||
+ | DS:DX -> control block (see below) | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | 01h NMVT | ||
+ | 02h alert subvectors | ||
+ | 03h PDSTATS subvectors | ||
+ | | ||
+ | | ||
+ | 18h 12 BYTEs 0 | ||
+ | | ||
+ | if bit 1 clear, add product set ID subvector | ||
+ | if bit 2 clear, do SYSLOG | ||
+ | if bit 3 clear, send SSCP_PU_SESSION | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6806------------------------------- | ||
+ | INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS | ||
+ | AH = 06h | ||
+ | DS:DX -> control block (see below) | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | bit 6: set negotiable values | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | bit 6: drain source | ||
+ | bit 5: target responsible, | ||
+ | |||
+ | 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 | ||
+ | ----------6807------------------------------- | ||
+ | INT 68 - APPC/PC - PASSTHROUGH | ||
+ | AH = 07h | ||
+ | DS:DX -> control block (format depends on application subsystem) | ||
+ | SeeAlso: AH=FFh | ||
+ | ----------68FA------------------------------- | ||
+ | INT 68 - APPC/PC - ENABLE/ | ||
+ | AH = FAh | ||
+ | AL bit 0 = 0 enable | ||
+ | 1 disable | ||
+ | ----------68FB------------------------------- | ||
+ | INT 68 - APPC/PC - CONVERT | ||
+ | AH = FBh | ||
+ | DS:DX -> control block (see below) | ||
+ | |||
+ | Format of control block: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 00h ASCII to EBCDIC | ||
+ | 01h EBCDIC to ASCII | ||
+ | | ||
+ | 00h AE | ||
+ | 01h A | ||
+ | 02h G | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------68FC------------------------------- | ||
+ | INT 68 - APPC/PC - ENABLE/ | ||
+ | AH = FCh | ||
+ | AL = 00h disable tracing | ||
+ | = 01h enable tracing | ||
+ | DX = number of bytes to keep (0=all) | ||
+ | SeeAlso: AH=FDh | ||
+ | ----------68FD------------------------------- | ||
+ | INT 68 - APPC/PC - ENABLE/ | ||
+ | AH = FDh | ||
+ | AL = 00h disable tracing | ||
+ | 01h enable tracing | ||
+ | SeeAlso: AH=FCh, | ||
+ | ----------68FE------------------------------- | ||
+ | INT 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: AH=FDh | ||
+ | |||
+ | Format of Trace Statistics Record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Note: do not move record while trace is active | ||
+ | ----------68FF------------------------------- | ||
+ | INT 68 - APPC/PC - SET PASSTHROUGH | ||
+ | AH = FFh | ||
+ | DS:DX -> passthrough exit routine | ||
+ | SeeAlso: AH=07h | ||
+ | ----------69--------------------------------- | ||
+ | INT 69 - Zenith AT BIOS - ??? | ||
+ | | ||
+ | ----------690100----------------------------- | ||
+ | INT 69 - DECnet DOS CTERM - INSTALLATION CHECK | ||
+ | AX = 0100h | ||
+ | Return: AL = FFh if present | ||
+ | SeeAlso: AX=010Fh | ||
+ | ----------690101----------------------------- | ||
+ | INT 69 - DECnet DOS CTERM - SEND BYTE | ||
+ | AX = 0101h | ||
+ | BL = character | ||
+ | DX = session handle | ||
+ | Return: AH >= 80h on error | ||
+ | SeeAlso: AX=0102h | ||
+ | ----------690102----------------------------- | ||
+ | INT 69 - DECnet DOS CTERM - READ BYTE | ||
+ | AX = 0102h | ||
+ | DX = session handle | ||
+ | Return: AH >= 80h on error | ||
+ | AH < 80h if successful | ||
+ | AL = character | ||
+ | SeeAlso: AX=0101h | ||
+ | ----------690103----------------------------- | ||
+ | INT 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: AX=0104h | ||
+ | ----------690104----------------------------- | ||
+ | INT 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: AX=0103h | ||
+ | ----------690105----------------------------- | ||
+ | INT 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: AX=0103h, | ||
+ | ----------690106----------------------------- | ||
+ | INT 69 - DECnet DOS CTERM - CLOSE SESSION | ||
+ | AX = 0106h | ||
+ | DX = session handle | ||
+ | Return: AH = 00h good close | ||
+ | other error code (see AX=0103h) | ||
+ | SeeAlso: AX=0103h, | ||
+ | ----------69010A----------------------------- | ||
+ | INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE | ||
+ | AX = 010Ah | ||
+ | Return: AX = length of session control block in bytes | ||
+ | SeeAlso: AX=0105h | ||
+ | ----------69010B----------------------------- | ||
+ | INT 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 | ||
+ | ----------69010F----------------------------- | ||
+ | INT 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: AX=0100h | ||
+ | ----------690A------------------------------- | ||
+ | INT 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' | ||
+ | 10h none outstanding | ||
+ | 11h no events | ||
+ | 12h broken | ||
+ | 13h buffer quota exceeded | ||
+ | 14h already initialized | ||
+ | 15h loopback failure | ||
+ | SeeAlso: INT 6D" | ||
+ | |||
+ | Format of Datalink Communication Block | ||
+ | Offset Type Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 00h no pad | ||
+ | 01h pad | ||
+ | | ||
+ | 00h 802.3 | ||
+ | 01h Ethernet | ||
+ | 02h promiscuous | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------696996----------------------------- | ||
+ | INT 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 | ||
+ | ----------6A--------------------------------- | ||
+ | INT 6A - OPTHELP.COM | ||
+ | Notes: | ||
+ | assembler | ||
+ | may be configured to use any interrupt from 60h to 7Fh (default 6Ah) | ||
+ | ----------6A--------------------------------- | ||
+ | INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM | ||
+ | Note: the 3 bytes preceding the interrupt handler are " | ||
+ | the installation check | ||
+ | ----------6A01--DHFF------------------------- | ||
+ | INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE | ||
+ | AH = 01h | ||
+ | DH = FFh | ||
+ | AL = character | ||
+ | DL = handle | ||
+ | Return: AH >= 80h on error | ||
+ | SeeAlso: AH=02h | ||
+ | ----------6A02--DHFF------------------------- | ||
+ | INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE | ||
+ | AH = 02h | ||
+ | DH = FFh | ||
+ | DL = handle | ||
+ | Return: AH < 80h if successful | ||
+ | AL = character | ||
+ | AH >= 80h on error | ||
+ | SeeAlso: AH=01h | ||
+ | ----------6A03--DHFF------------------------- | ||
+ | INT 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 | ||
+ | ----------6AD0--DHFF------------------------- | ||
+ | INT 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: AX=D000h | ||
+ | |||
+ | Format of LAT Session Control Block: | ||
+ | Offset Size Description | ||
+ | 00h 18 BYTEs service name | ||
+ | 12h 18 BYTEs node name (future use) | ||
+ | 24h 18 BYTEs port name (future use) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 04h circuit failure | ||
+ | 08h stop slot received | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | ----------6AD000DHFF------------------------- | ||
+ | INT 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: AH=D0h | ||
+ | ----------6AD100DHFF------------------------- | ||
+ | INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK | ||
+ | AX = D100h | ||
+ | DH = FFh | ||
+ | DL = handle | ||
+ | Return: AX = 0000h if successful | ||
+ | AH bit 7 set if unable to send break | ||
+ | ----------6AD300DHFF------------------------- | ||
+ | INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS | ||
+ | AX = D300h | ||
+ | DH = FFh | ||
+ | SeeAlso: AX=D400h | ||
+ | ----------6AD400DHFF------------------------- | ||
+ | INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS | ||
+ | AX = D400h | ||
+ | DH = FFh | ||
+ | CX = buffer size | ||
+ | ES:BX -> buffer for LAT counters | ||
+ | Return: AX = 0000h counters copied into buffer | ||
+ | = FFFFh buffer too small | ||
+ | SeeAlso: AX=D300h | ||
+ | ----------6AD500DHFF------------------------- | ||
+ | INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME | ||
+ | AX = D500h | ||
+ | DH = FFh | ||
+ | ES:BX -> 17-byte buffer for name | ||
+ | Return: AH = 00h if successful | ||
+ | ES:BX buffer filled | ||
+ | AX = FFFFh if end of table or no name available | ||
+ | Notes: use this function to get the names of the hosts on the network | ||
+ | successive calls are necessary to get all names | ||
+ | SeeAlso: AX=D600h | ||
+ | ----------6AD600DHFF------------------------- | ||
+ | INT 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: AX=D500h | ||
+ | ----------6B0000----------------------------- | ||
+ | INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE | ||
+ | AX = 0000h | ||
+ | CX = length | ||
+ | ES:BX -> buffer | ||
+ | Return: CX = number of bytes written | ||
+ | Note: also supported by NPC NCSI | ||
+ | SeeAlso: AX=0100h, | ||
+ | ----------6B0100----------------------------- | ||
+ | INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ | ||
+ | AX = 0100h | ||
+ | CX = length of buffer | ||
+ | ES:BX -> buffer | ||
+ | Return: CX = number of bytes read | ||
+ | Note: also supported by NPC NCSI | ||
+ | SeeAlso: AX=0000h, | ||
+ | ----------6B02------------------------------- | ||
+ | INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK | ||
+ | AH = 02h | ||
+ | AL nonzero | ||
+ | Return: AL = 00h if present and OK | ||
+ | Note: also supported by NPC NCSI | ||
+ | SeeAlso: AX=0700h | ||
+ | ----------6B0600----------------------------- | ||
+ | INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL | ||
+ | AX = 0600h | ||
+ | CX = command | ||
+ | 02h send break | ||
+ | 04h disconnect | ||
+ | 06h hold | ||
+ | Note: also supported by NPC NCSI | ||
+ | ----------6B0700----------------------------- | ||
+ | INT 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: AH=02h, | ||
+ | ----------6B10------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS | ||
+ | AH = 10h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=0700h, | ||
+ | ----------6B11------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT | ||
+ | AH = 11h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=12h, | ||
+ | ----------6B12------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS | ||
+ | AH = 12h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=10h, | ||
+ | ----------6B13------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/ | ||
+ | AH = 13h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=14h, | ||
+ | ----------6B14------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/ | ||
+ | AH = 14h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=13h, | ||
+ | ----------6B15------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/ | ||
+ | AH = 15h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=13h, | ||
+ | ----------6B16------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT | ||
+ | AH = 16h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=11h, | ||
+ | ----------6B17------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT | ||
+ | AH = 17h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=11h, | ||
+ | ----------6B18------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT | ||
+ | AH = 18h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=0000h, | ||
+ | ----------6B19------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT | ||
+ | AH = 19h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=0100h, | ||
+ | ----------6B1A------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS | ||
+ | AH = 1Ah | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=12h, | ||
+ | ----------6B1B------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS | ||
+ | AH = 1Bh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=12h, | ||
+ | ----------6B1C------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL | ||
+ | AH = 1Ch | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=1Dh, | ||
+ | ----------6B1D------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL | ||
+ | AH = 1Dh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=1Ch, | ||
+ | ----------6B1E------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST | ||
+ | AH = 1Eh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=1Ch, | ||
+ | ----------6B1F------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS | ||
+ | AH = 1Fh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=10h, | ||
+ | ----------6B21------------------------------- | ||
+ | INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE | ||
+ | AH = 21h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=14h | ||
+ | ----------6B6B------------------------------- | ||
+ | INT 6B - Tandy SCHOOLMATE PLUS - API | ||
+ | AH = 6Bh | ||
+ | AL = E0h to FFh | ||
+ | ----------6B--------------------------------- | ||
+ | INT 6B - VIRUS - " | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------6C--------------------------------- | ||
+ | INT 6C - system resume vector (CONVERTIBLE) | ||
+ | ----------6C--------------------------------- | ||
+ | INT 6C - DOS 3.2 Realtime Clock update | ||
+ | ----------6C--------------------------------- | ||
+ | INT 6C - DECnet DOS network scheduler | ||
+ | SeeAlso: INT 6D" | ||
+ | ----------6D--------------------------------- | ||
+ | INT 6D - VGA - internal | ||
+ | Note: used by IBM, Paradise, Video7, and NCR | ||
+ | ----------6D--------------------------------- | ||
+ | INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT | ||
+ | | ||
+ | SeeAlso: INT 10 | ||
+ | ----------6D--------------------------------- | ||
+ | INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM | ||
+ | AH = function | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: INT 69/ | ||
+ | ----------6E--------------------------------- | ||
+ | INT 6E - DECnet DOS - DECnet NETWORK PROCESS API | ||
+ | Notes: this is the main DECnet DOS access, and is described in Digital manual | ||
+ | AA-EB46B-TV (" | ||
+ | there is a signature/ | ||
+ | handler which may be used as an installation check | ||
+ | |||
+ | Format of signature area: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6F----BP0012----------------------- | ||
+ | INT 6F - HP ES-12 EXTENDED BIOS - READ CMOS MEMORY | ||
+ | BP = 0012h | ||
+ | AH = 22h | ||
+ | BL = address of CMOS byte to read | ||
+ | Return: AH = status | ||
+ | AL = byte read | ||
+ | BP, DS destroyed | ||
+ | SeeAlso: BP=0012h/ | ||
+ | ----------6F----BP0012----------------------- | ||
+ | INT 6F - HP ES-12 EXTENDED BIOS - WRITE CMOS MEMORY | ||
+ | BP = 0012h | ||
+ | AH = 24h | ||
+ | BL = address of CMOS byte to write | ||
+ | AL = new value | ||
+ | Return: AH = status | ||
+ | BP, DS destroyed | ||
+ | SeeAlso: BP=0012h/ | ||
+ | ----------6F--------------------------------- | ||
+ | INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface) | ||
+ | ----------6F00------------------------------- | ||
+ | INT 6F - 10-NET - LOGIN | ||
+ | AH = 00h | ||
+ | DS:DX -> login record (see below) | ||
+ | Return: CL = security level | ||
+ | AX = 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 | ||
+ | SeeAlso: AH=01h | ||
+ | |||
+ | Format of login record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 10h 12 BYTEs name of SuperStation | ||
+ | ----------6F01------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=00h | ||
+ | ----------6F02------------------------------- | ||
+ | INT 6F - 10-NET - 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 | ||
+ | |||
+ | Format of node status record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | superstations) | ||
+ | ---for superstations only--- | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 1F4h 3 BYTEs time: sec/min/hrs | ||
+ | 1F7h 3 BYTEs date: day/ | ||
+ | ----------6F03------------------------------- | ||
+ | INT 6F - 10-NET - GET ADDRESS OF CONFIGURATION TABLE | ||
+ | AH = 03h | ||
+ | DS:DI -> node ID (optional) | ||
+ | Return: ES:BX -> configuration table | ||
+ | SeeAlso: AH=13h | ||
+ | |||
+ | Format of configuration table: | ||
+ | Offset 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, 10-Net v3.3--- | ||
+ | -25 WORD count of dropped Send6F | ||
+ | -23 WORD buffer start address | ||
+ | -21 WORD comm driver base address | ||
+ | -19 WORD send/ | ||
+ | -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 | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0Bh 12 BYTEs node ID (blank-padded) | ||
+ | | ||
+ | | ||
+ | | ||
+ | bit 1: sound bell | ||
+ | bit 0: CHAT permit | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---beyond here, 10-Net v3.3--- | ||
+ | | ||
+ | 1 = Send6F gate (user set) | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6F04------------------------------- | ||
+ | INT 6F - 10-NET - SEND | ||
+ | AH = 04h | ||
+ | DS:BX -> record | ||
+ | 12 BYTEs receiving node's ID | ||
+ | if first byte has high-order bit set, message is | ||
+ | | ||
+ | if second byte is 00h, first byte is taken as a CB | ||
+ | | ||
+ | | ||
+ | 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: AH=05h | ||
+ | ----------6F05------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=04h | ||
+ | |||
+ | Format of receive buffer: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs sending node's ID | ||
+ | | ||
+ | | ||
+ | ----------6F07------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=08h,INT 21/AH=5Ch | ||
+ | ----------6F08------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=07h,INT 21/AH=5Ch | ||
+ | ----------6F09------------------------------- | ||
+ | INT 6F - 10-NET - SUBMIT | ||
+ | AH = 09h | ||
+ | DS:BX -> submit record (see below) | ||
+ | |||
+ | Format of submit record: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs destination node ID (must be logged in) | ||
+ | | ||
+ | | ||
+ | ----------6F0A------------------------------- | ||
+ | INT 6F - 10-NET - CHAT | ||
+ | AH = 0Ah | ||
+ | DS:BX -> control parameters (see below) | ||
+ | DS:DX -> chat message (see below) | ||
+ | |||
+ | Format of control parameters: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 10h 12 BYTEs destination node ID | ||
+ | |||
+ | Format of chat message: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------6F0B------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=0Ch,INT 60/AH=12h | ||
+ | ----------6F0C------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=0Bh,INT 60/AH=13h | ||
+ | ----------6F0D------------------------------- | ||
+ | INT 6F - 10-NET - 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) | ||
+ | |||
+ | Format of station record: | ||
+ | Offset Size Description | ||
+ | 00h 12 BYTEs node ID | ||
+ | | ||
+ | bit 1 = workstation | ||
+ | 2 = superstation | ||
+ | 3 = xgate | ||
+ | 4 = active gate | ||
+ | ---if AL = 01h--- | ||
+ | | ||
+ | WORD level number of 10Net software in responding node | ||
+ | ---if AL = 02h--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6F0E------------------------------- | ||
+ | INT 6F - 10-NET - 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 | ||
+ | |||
+ | Format of Spool/Print record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 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--- | ||
+ | | ||
+ | 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/ | ||
+ | bit 0: notify at print start | ||
+ | | ||
+ | | ||
+ | bits 4-7: remote drive to store spool file (1=A,...) | ||
+ | | ||
+ | | ||
+ | ---if operation code = 03h--- | ||
+ | | ||
+ | ---if operation code = 04h--- | ||
+ | | ||
+ | | ||
+ | ---if operation code = 05h--- | ||
+ | | ||
+ | | ||
+ | bit 3: if set, return entries for all users | ||
+ | | ||
+ | | ||
+ | ---if operation code = 07h--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 02h test print count | ||
+ | 03h prn | ||
+ | ---if operation code = 08h--- | ||
+ | | ||
+ | returns next item for access: | ||
+ | 00h-7Fh queued items | ||
+ | 80h-FEh non-queued, non-printed items | ||
+ | FFh no more items | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---if operation code = 09h--- | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of $SCNTL record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 08h 11 BYTEs filename in FCB format | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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/ | ||
+ | 0: notify at start | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6F10------------------------------- | ||
+ | INT 6F - 10-NET - ATTACH/ | ||
+ | AH = 10h | ||
+ | AL = subfunction | ||
+ | 00h initiate spooling if LPT1 is mounted | ||
+ | 01h terminate spooling if LPT1 is mounted | ||
+ | SeeAlso: INT 21/AX=5D08h | ||
+ | ----------6F11------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=12h | ||
+ | ----------6F12------------------------------- | ||
+ | INT 6F - 10-NET - 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: AH=11h | ||
+ | ----------6F13------------------------------- | ||
+ | INT 6F - 10-NET 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: AH=03h | ||
+ | ----------6F14------------------------------- | ||
+ | INT 6F - 10-NET 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 | ||
+ | ----------6F1501----------------------------- | ||
+ | INT 6F - 10-NET 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: AX=1502h, | ||
+ | |||
+ | Format of shared device table entry: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | 10h 64 BYTEs path | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------6F1502----------------------------- | ||
+ | INT 6F - 10-NET 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: AX=1501h, | ||
+ | ----------6F1503----------------------------- | ||
+ | INT 6F - 10-NET 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: AX=1501h, | ||
+ | ----------6F17------------------------------- | ||
+ | INT 6F - 10-NET v3.3 - MOUNT | ||
+ | AH = 17h | ||
+ | AL = local drive number (0=A:) | ||
+ | BL = remote drive letter or ' | ||
+ | DS:DX -> node ID, 12 bytes blank-padded | ||
+ | Return: CF set on error | ||
+ | AX = error code (see AH=00h) | ||
+ | CF clear if successful | ||
+ | SeeAlso: AH=18h | ||
+ | ----------6F18------------------------------- | ||
+ | INT 6F - 10-NET 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: AH=17h | ||
+ | ----------70--------------------------------- | ||
+ | INT 70 - IRQ8 - CMOS REAL-TIME CLOCK | ||
+ | Notes: this interrupt is called when the real-time clock chip generates an | ||
+ | alarm or periodic interrupt, among others. | ||
+ | occurs 1024 times per second, although many BIOSes turn it off 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 08,INT 0F"HP 95LX", | ||
+ | SeeAlso: INT 15/ | ||
+ | ----------70--------------------------------- | ||
+ | INT 70 - VIRUS " | ||
+ | SeeAlso: INT 6B" | ||
+ | ----------71--------------------------------- | ||
+ | INT 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, | ||
+ | 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: | ||
+ | process | ||
+ | SeeAlso: INT 0A,INT 59 | ||
+ | ----------72--------------------------------- | ||
+ | INT 72 - IRQ10 - RESERVED | ||
+ | Note: may be masked by setting bit 2 on I/O port A1h | ||
+ | SeeAlso: INT 5A | ||
+ | ----------73--------------------------------- | ||
+ | INT 73 - IRQ11 - RESERVED | ||
+ | Note: may be masked by setting bit 3 on I/O port A1h | ||
+ | SeeAlso: INT 5B | ||
+ | ----------74--------------------------------- | ||
+ | INT 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: | ||
+ | process | ||
+ | SeeAlso: INT 33,INT 5C | ||
+ | ----------75--------------------------------- | ||
+ | INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up) | ||
+ | | ||
+ | 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" | ||
+ | under DESQview, only the INT 15h vector and BASIC segment address (the | ||
+ | word at 0000h: | ||
+ | process | ||
+ | SeeAlso: INT 10" | ||
+ | ----------76--------------------------------- | ||
+ | INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later) | ||
+ | Note: may be masked by setting bit 6 on I/O port A1h | ||
+ | SeeAlso: INT 0E" | ||
+ | ----------77--------------------------------- | ||
+ | INT 77 - IRQ15 - RESERVED (AT,PS) | ||
+ | Note: may be masked by setting bit 7 on I/O port A1h | ||
+ | SeeAlso: INT 5F | ||
+ | ----------77--------------------------------- | ||
+ | INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286) | ||
+ | Note: may be masked by setting bit 7 on I/O port A1h | ||
+ | SeeAlso: INT 15/ | ||
+ | ----------78--------------------------------- | ||
+ | INT 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 | ||
+ | ----------78--------------------------------- | ||
+ | INT 78 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ0 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 08,INT 10/ | ||
+ | ----------78--------------------------------- | ||
+ | INT 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 7A" | ||
+ | ----------78--------------------------------- | ||
+ | INT 78 - ADP-60 IDE controller - ORIGINAL INT 13 | ||
+ | SeeAlso: INT 79" | ||
+ | ----------7800------------------------------- | ||
+ | INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT | ||
+ | AH = 00h | ||
+ | DX = interface board I/O port | ||
+ | Return: CF set on error | ||
+ | AL = error code | ||
+ | 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' | ||
+ | (usually 0280h or 0300h) | ||
+ | an installation check is performed by TARGA.DEV upon initialization | ||
+ | by checking for the string " | ||
+ | handler | ||
+ | SeeAlso: AH=01h, | ||
+ | ----------7801------------------------------- | ||
+ | INT 78 - TARGA.DEV - GET I/O PORT | ||
+ | AH = 01h | ||
+ | Return: DX = current interface board I/O port | ||
+ | SeeAlso: AH=00h, | ||
+ | ----------7802------------------------------- | ||
+ | INT 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' | ||
+ | (usually 3) | ||
+ | SeeAlso: AH=00h, | ||
+ | ----------7803------------------------------- | ||
+ | INT 78 - TARGA.DEV - GET DMA CHANNEL | ||
+ | AH = 03h | ||
+ | Return: AL = current interface board DMA channel | ||
+ | SeeAlso: AH=01h, | ||
+ | ----------7804------------------------------- | ||
+ | INT 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' | ||
+ | default (usually 0) | ||
+ | SeeAlso: AH=02h, | ||
+ | ----------7805------------------------------- | ||
+ | INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER | ||
+ | AH = 05h | ||
+ | Return: AL = current SCSI device number | ||
+ | SeeAlso: AH=03h" | ||
+ | ----------7806------------------------------- | ||
+ | INT 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: AH=13h, | ||
+ | ----------7808------------------------------- | ||
+ | INT 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: AH=09h | ||
+ | ----------7809------------------------------- | ||
+ | INT 78 - TARGA.DEV - RESET SCSI BUS | ||
+ | AH = 09h | ||
+ | Return: AL = error code if carry set (see AH=00h) | ||
+ | SeeAlso: AH=08h | ||
+ | ----------7810------------------------------- | ||
+ | INT 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: AH=11h,INT 21/ | ||
+ | |||
+ | Format of SCSI Command: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7811------------------------------- | ||
+ | INT 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: AH=10h, | ||
+ | |||
+ | Format of SCSI Command: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7812------------------------------- | ||
+ | INT 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: AH=14h | ||
+ | |||
+ | Format of SCSI Command: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7813------------------------------- | ||
+ | INT 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: AH=11h, | ||
+ | |||
+ | Format of SCSI Command: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7814------------------------------- | ||
+ | INT 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: AH=12h, | ||
+ | |||
+ | Format of SCSI Command: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7815------------------------------- | ||
+ | INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA) | ||
+ | AH = 15h | ||
+ | Return: AH = SCSI status byte | ||
+ | CF clear if successful | ||
+ | AL = SCSI message byte | ||
+ | CF set on error | ||
+ | AL = error code (see 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: AH=06h, | ||
+ | ----------79--------------------------------- | ||
+ | INT 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 | ||
+ | ----------79--------------------------------- | ||
+ | INT 79 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ1 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 09,INT 78" | ||
+ | ----------79--------------------------------- | ||
+ | INT 79 U - ADP-60 IDE adapter - ??? | ||
+ | SeeAlso: INT 78" | ||
+ | ----------790001----------------------------- | ||
+ | INT 79 U - AutoCAD Device Interface - DIGITIZER - INITIALIZE | ||
+ | AX = 0001h | ||
+ | Return: AX = 0001h ??? self-test result??? | ||
+ | BX = 0001h | ||
+ | SeeAlso: AX=0002h, | ||
+ | ----------790002----------------------------- | ||
+ | INT 79 U - AutoCAD Device Interface - DIGITIZER - CLOSE | ||
+ | AX = 0002h | ||
+ | SeeAlso: AX=0001h, | ||
+ | ----------790003----------------------------- | ||
+ | INT 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: AX=0001h, | ||
+ | ----------7A--------------------------------- | ||
+ | INT 7A U - Topware Network Operating System - ??? | ||
+ | AL = ??? | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------7A--------------------------------- | ||
+ | INT 7A - AutoCAD Device Interface | ||
+ | ??? | ||
+ | SeeAlso: INT 61/ | ||
+ | SeeAlso: INT 7B" | ||
+ | ----------7A--------------------------------- | ||
+ | INT 7A - X.PC Packet software interface | ||
+ | ES:BX -> parameter block | ||
+ | SeeAlso: INT 60/AX=01FFh | ||
+ | ----------7A--------------------------------- | ||
+ | INT 7A - Novell NetWare - LOW-LEVEL API - Notes | ||
+ | Note: this interrupt is used for IPX/SPX access in NetWare versions through | ||
+ | 2.0a; in later versions, you should use INT 2F/AX=7A00h to get an | ||
+ | entry point even though INT 7A still exists. | ||
+ | the FAR entry point, BX contains the function number; IPX is | ||
+ | sometimes called internally with BX bit 15 set. | ||
+ | SeeAlso: INT 2F/ | ||
+ | ----------7A--------------------------------- | ||
+ | INT 7A - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ2 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 0A,INT 79" | ||
+ | ----------7A----BX0000----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - OPEN SOCKET | ||
+ | BX = 0000h | ||
+ | AL = mode | ||
+ | 00h open until close or terminate | ||
+ | FFh open until close | ||
+ | DX = socket number (high byte in DL) | ||
+ | 0000h dynamic allocation | ||
+ | else socket to open | ||
+ | Return: AL = return code | ||
+ | 00h success | ||
+ | DX = socket number | ||
+ | FEh socket table full | ||
+ | FFh socket already open | ||
+ | SeeAlso: BX=0001h | ||
+ | ----------7A----BX0001----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - CLOSE SOCKET | ||
+ | BX = 0001h | ||
+ | DX = socket (high byte in DL) | ||
+ | SeeAlso: BX=0000h | ||
+ | ----------7A----BX0002----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET LOCAL TARGET | ||
+ | BX = 0002h | ||
+ | ES:SI -> target internetwork address | ||
+ | ES:DI -> 6-byte buffer for local target | ||
+ | Return: AL = return code | ||
+ | 00h success | ||
+ | CX = expected one-way transfer time (clock ticks) | ||
+ | ES:DI -> local target | ||
+ | FAh unsuccessful | ||
+ | Note: The internetwork address consists of a 4-byte network address followed | ||
+ | by a 6-byte node address. | ||
+ | address. | ||
+ | just the node address of target; otherwise, the local target is the | ||
+ | node address of the bridge that leads to the target. | ||
+ | SeeAlso: BX=0009h | ||
+ | ----------7A----BX0003----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - SEND PACKET | ||
+ | BX = 0003h | ||
+ | ES:SI -> Event Control Block (see below) | ||
+ | SeeAlso: BX=0004h, | ||
+ | |||
+ | Format of Event Control Block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 10h 12 BYTES driver workspace | ||
+ | | ||
+ | | ||
+ | | ||
+ | Offset Size Description | ||
+ | 00h DWORD -> | ||
+ | 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: | ||
+ | 00h success | ||
+ | F9h event should not be cancelled | ||
+ | FCh cancelled | ||
+ | FDh malformed packet | ||
+ | FEh packet undeliverable | ||
+ | FFh physical error | ||
+ | the first fragment should start with an IPX header | ||
+ | all fragments are concatenated and sent in one piece | ||
+ | node address FF FF FF FF FF FF broadcasts to all nodes | ||
+ | |||
+ | Event Service Routine called with: | ||
+ | AL = caller' | ||
+ | ES:SI -> event control block | ||
+ | interrupts disabled | ||
+ | |||
+ | Format of IPX header: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 (used internally) | ||
+ | 06h 10 BYTES destination internetwork address | ||
+ | | ||
+ | 12h 10 BYTES source internetwork address | ||
+ | | ||
+ | ----------7A----BX0004----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - LISTEN FOR PACKET | ||
+ | BX = 0004h | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | SeeAlso: BX=0003h | ||
+ | ----------7A----BX0005----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - SCHEDULE IPX EVENT | ||
+ | BX = 0005h | ||
+ | AX = delay time | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | SeeAlso: BX=0006h, | ||
+ | ----------7A----BX0006----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - CANCEL EVENT | ||
+ | BX = 0006h | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | Return: AL = return code | ||
+ | 00h success | ||
+ | F9h event in use | ||
+ | FFh unsuccessful, | ||
+ | SeeAlso: BX=0005h | ||
+ | ----------7A----BX0007----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - SCHEDULE SPECIAL EVENT | ||
+ | BX = 0007h | ||
+ | AX = delay time | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | SeeAlso: BX=0006h | ||
+ | ----------7A----BX0008----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET INTERVAL MARKER | ||
+ | BX = 0008h | ||
+ | Return: AX = interval marker in clock ticks | ||
+ | SeeAlso: BX=0005h | ||
+ | ----------7A----BX0009----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET INTERNETWORK ADDRESS | ||
+ | BX = 0009h | ||
+ | ES:SI -> 10-byte buffer | ||
+ | Return: ES:SI -> own internetwork address | ||
+ | SeeAlso: BX=0002h, | ||
+ | ----------7A----BX000A----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - RELINQUISH CONTROL | ||
+ | BX = 000Ah | ||
+ | Note: this call permits the IPX driver to do some work | ||
+ | SeeAlso: INT 15/ | ||
+ | ----------7A----BX000B----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - DISCONNECT FROM TARGET | ||
+ | BX = 000Bh | ||
+ | ES:SI -> internetwork address | ||
+ | Note: only use in point-to-point networks | ||
+ | SeeAlso: BX=0002h, | ||
+ | ----------7A----BX000C----------------------- | ||
+ | INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL | ||
+ | BX = 000Ch | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A----BX000D----------------------- | ||
+ | INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL | ||
+ | BX = 000Dh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A----BX000E----------------------- | ||
+ | INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL | ||
+ | BX = 000Eh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A----BX000F----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - INTERNAL - SEND PACKET | ||
+ | BX = 000Fh | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | Note: | ||
+ | fragments | ||
+ | SeeAlso: BX=0003h | ||
+ | ----------7A----BX0010----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - SPX INSTALLATION CHECK | ||
+ | BX = 0010h | ||
+ | AL = 00h | ||
+ | Return: AL = FFh if SPX loaded | ||
+ | SeeAlso: BX=0015h | ||
+ | ----------7A----BX0011----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - ESTABLISH SPX CONNECTION | ||
+ | BX = 0011h | ||
+ | AL = retry count | ||
+ | AH = watchdog flag | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | Return: DX = assigned connection number | ||
+ | Notes: | ||
+ | that NetWare can perform its internal packet exchanges | ||
+ | The first fragment should start with a SPX header. | ||
+ | destination addresses. | ||
+ | SeeAlso: BX=0000h, | ||
+ | |||
+ | Format of SPX header: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 06h 10 BYTEs destination internet address | ||
+ | | ||
+ | 12h 10 BYTEs source internet address | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7A----BX0012----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - LISTEN FOR SPX CONNECTION | ||
+ | BX = 0012h | ||
+ | AL = retry count | ||
+ | AH = watchdog flag | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | Notes: | ||
+ | that NetWare can perform its internal packet exchanges | ||
+ | SeeAlso: BX=0011h, | ||
+ | ----------7A----BX0013----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - TERMINATE SPX CONNECTION | ||
+ | BX = 0013h | ||
+ | DX = connection ID to terminate | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | SeeAlso: BX=0011h, | ||
+ | ----------7A----BX0014----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - ABORT SPX CONNECTION | ||
+ | BX = 0014h | ||
+ | DX = connection ID to terminate | ||
+ | Note: this function does not tell the other side that the connection has been | ||
+ | terminated | ||
+ | SeeAlso: BX=0011h, | ||
+ | ----------7A----BX0015----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET SPX 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 | ||
+ | SeeAlso: BX=0010h | ||
+ | |||
+ | Format of status buffer: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 18h 10 BYTEs destination internet address | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7A----BX0016----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - SEND SPX PACKET | ||
+ | BX = 0016h | ||
+ | DX = connection ID | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | Note: CX may need to be 0001h ??? | ||
+ | SeeAlso: BX=0011h, | ||
+ | ----------7A----BX0017----------------------- | ||
+ | INT 7A - Novell NetWare Low-Level API (IPX) Driver - LISTEN FOR SPX PACKET | ||
+ | BX = 0017h | ||
+ | DX = connection ID | ||
+ | ES:SI -> Event Control Block (see BX=0003h) | ||
+ | Note: CX may need to be 0001h ??? | ||
+ | SeeAlso: BX=0011h, | ||
+ | ----------7A----BX0018----------------------- | ||
+ | INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL | ||
+ | BX = 0018h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A----BX0019----------------------- | ||
+ | INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL | ||
+ | BX = 0019h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A----BX001A----------------------- | ||
+ | INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL | ||
+ | BX = 001Ah | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A----BX001B----------------------- | ||
+ | INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL | ||
+ | BX = 001Bh | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A04------------------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE | ||
+ | AH = 04h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=06h | ||
+ | ----------7A06------------------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE | ||
+ | AH = 06h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AH=04h | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES | ||
+ | AH = 09h | ||
+ | BX = 8020h (synchronous request) | ||
+ | CX = 0000h | ||
+ | DX = ID of session manager (SESSMGR) | ||
+ | AL = service | ||
+ | 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 ' | ||
+ | 0Ah get base window ID | ||
+ | 0Bh get cursor info | ||
+ | ES:DI -> control block | ||
+ | Return: ??? | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES | ||
+ | AH = 09h | ||
+ | BX = 8020h (synchronous request) | ||
+ | CX = 0000h | ||
+ | DX = ID of keyboard manager | ||
+ | AL = service | ||
+ | 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: ??? | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES | ||
+ | AH = 09h | ||
+ | BX = 8020h (synchronous request) | ||
+ | CX = 00FFh | ||
+ | DX = ID of window service controller (WSCTRL) | ||
+ | AL = service | ||
+ | 01h connect to WS control | ||
+ | 02h disconnect from WS control | ||
+ | 03h add a window | ||
+ | 04h change window' | ||
+ | 05h change window' | ||
+ | 06h change window' | ||
+ | 07h change window' | ||
+ | 08h hide/unhide toggle | ||
+ | 09h enlarge/ | ||
+ | 0Ah change screen background color | ||
+ | 0Bh get window' | ||
+ | 0Ch get window' | ||
+ | 0Dh get window' | ||
+ | 0Eh get window' | ||
+ | 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: ??? | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES | ||
+ | AH = 09h | ||
+ | BX = 8020h | ||
+ | CX = 00FFh | ||
+ | DX = ID of PCPSM | ||
+ | AL = service | ||
+ | 01h define presentation space | ||
+ | 02h delete presentation space | ||
+ | 03h display presentation space | ||
+ | 04h position cursor in presentation space | ||
+ | 05h change default presentation space | ||
+ | ES:DI -> control block | ||
+ | Return: ??? | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION | ||
+ | AH = 09h | ||
+ | BX = 8020h | ||
+ | CX = 00FFh | ||
+ | DX = ID of 3270EML | ||
+ | AL = service | ||
+ | 01h connect | ||
+ | 02h disconnect | ||
+ | ES:DI -> control block | ||
+ | Return: ??? | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA | ||
+ | AH = 09h | ||
+ | BX = 8020h | ||
+ | CX = 00FFh | ||
+ | DX = ID of OIAM | ||
+ | AL = service | ||
+ | 01h read Operator Information Area | ||
+ | 02h read OIA subset | ||
+ | ES:DI -> control block | ||
+ | Return: ??? | ||
+ | Note: the OIA is the 25th line on the Host session | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA | ||
+ | AH = 09h | ||
+ | BX = 8020h | ||
+ | CX = 00FFh | ||
+ | DX = ID of XLATE | ||
+ | AL = service | ||
+ | 01h translate from host characters to ASCII and vice versa | ||
+ | (determined by control block byte 11) | ||
+ | ES:DI -> control block | ||
+ | Return: ??? | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - COPY SERVICE | ||
+ | AH = 09h | ||
+ | BX = 8020h | ||
+ | CX = 00FFh | ||
+ | DX = ID of copy service | ||
+ | AL = service | ||
+ | 01h copy string from one presentation space to another | ||
+ | 02h copy block from one presentation space to another | ||
+ | 03h connect to PC session for copy | ||
+ | 04h disconnect PC session from copy | ||
+ | ES:DI -> control block | ||
+ | Return: ??? | ||
+ | ----------7A09--BX8020----------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - Multi-DOS | ||
+ | AH = 09h | ||
+ | BX = 8020h | ||
+ | CX = 00FFh | ||
+ | ES:DI -> control block | ||
+ | DX = ID of INDJQRY | ||
+ | get environment size | ||
+ | = ID of INDJASY | ||
+ | request DOS functions from workstation | ||
+ | = ID of MEMORY | ||
+ | AL = function | ||
+ | 01h allocate memory | ||
+ | 02h deallocate memory | ||
+ | 03h modify allocated size | ||
+ | Return: ??? | ||
+ | ----------7A09------------------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - HOST SERVICES | ||
+ | AH = 09h | ||
+ | BX = request type (4000h async, 8028h synchronous) | ||
+ | CX = 0000h | ||
+ | DX = ID of MFIC | ||
+ | AL = service | ||
+ | 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 | ||
+ | ----------7A13------------------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE | ||
+ | AH = 13h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7A7A------------------------------- | ||
+ | INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE | ||
+ | AH = 7Ah | ||
+ | ??? | ||
+ | Return: AX = 0000h success | ||
+ | 000Eh undefined function code | ||
+ | Note: this interface is normally on INT 7A but can be changed via device | ||
+ | driver command line arguments | ||
+ | ----------7A81------------------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME | ||
+ | AH = 81h | ||
+ | ES:DI -> 8-char blank-padded gate name | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | Return: DX = gate ID | ||
+ | ----------7A83------------------------------- | ||
+ | INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS | ||
+ | AH = 83h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7AFDCB----------------------------- | ||
+ | INT 7A - IBM Personal Communications/ | ||
+ | AX = FDCBh | ||
+ | Return: DX:AX -> PCS/3270 signature block if loaded (see below) | ||
+ | |||
+ | Format of signature block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7AFE01----------------------------- | ||
+ | INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/ | ||
+ | AX = FE01h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=FE02h | ||
+ | ----------7AFE02----------------------------- | ||
+ | INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/ | ||
+ | AX = FE02h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | SeeAlso: AX=FE01h | ||
+ | ----------7AFF01----------------------------- | ||
+ | INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION | ||
+ | AX = FF01h | ||
+ | ES:DI -> API function handler routine | ||
+ | Return: CX = 1200h | ||
+ | SeeAlso: AX=FF02h, | ||
+ | ----------7AFF02----------------------------- | ||
+ | INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION | ||
+ | AX = FF02h | ||
+ | Return: CX = 1200h | ||
+ | SeeAlso: AX=FF01h | ||
+ | ----------7AFF03----------------------------- | ||
+ | INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION | ||
+ | AX = FF03h | ||
+ | ES:DI -> send/ | ||
+ | Return: CX = 1200h | ||
+ | SeeAlso: AX=FF01h | ||
+ | ----------7AFF04----------------------------- | ||
+ | INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ??? | ||
+ | AX = FF04h | ||
+ | ES:DI -> ??? | ||
+ | Return: CX = 1200h | ||
+ | ----------7B--------------------------------- | ||
+ | INT 7B - Btrieve API (single user) | ||
+ | DS:DX -> 38-byte parameter record (see below) | ||
+ | Return: return code field set | ||
+ | Note: | ||
+ | check | ||
+ | SeeAlso: INT 21/ | ||
+ | |||
+ | Format of Btrieve parameter record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | (should be same for all calls for same file) | ||
+ | | ||
+ | (should be same for all calls for same file) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 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 " | ||
+ | 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 | ||
+ | ----------7B--------------------------------- | ||
+ | INT 7B - Eicon Access API (3270/5250 gateways) | ||
+ | ----------7B--------------------------------- | ||
+ | INT 7B U - AutoCAD ADI INTERFACE | ||
+ | AX = function | ||
+ | 0000h output blank line | ||
+ | other ??? | ||
+ | Return: ??? | ||
+ | Note: | ||
+ | SeeAlso: INT 78" | ||
+ | ----------7B--------------------------------- | ||
+ | INT 7B - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ3 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 0B,INT 10/ | ||
+ | ----------7C--------------------------------- | ||
+ | INT 7C U - IBM REXX88PC command language | ||
+ | ??? | ||
+ | ----------7C--------------------------------- | ||
+ | INT 7C - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ4 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 0C,INT 7B" | ||
+ | ----------7D--------------------------------- | ||
+ | INT 7D - [proposed] - 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 2F | ||
+ | ----------7D--------------------------------- | ||
+ | INT 7D U - YTERM 1.4 - CLOCK SUPPORT | ||
+ | SeeAlso: INT 7E" | ||
+ | ----------7D--------------------------------- | ||
+ | INT 7D - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ5 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 0D,INT 7C" | ||
+ | ----------7E--------------------------------- | ||
+ | INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY | ||
+ | ----------7E--------------------------------- | ||
+ | INT 7E U - YTERM 1.4 - ??? | ||
+ | SeeAlso: INT 7D" | ||
+ | ----------7E--------------------------------- | ||
+ | INT 7E - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ6 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 0E,INT 7D" | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - IBM XGA - ??? | ||
+ | ----------7F--------------------------------- | ||
+ | INT 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: | ||
+ | according to Stuart Kemp, the code appears to make no provisions for | ||
+ | | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR | ||
+ | AL = request ID | ||
+ | 01h " | ||
+ | ES:BX -> pRq | ||
+ | DX ignored | ||
+ | 04h " | ||
+ | ES:BX -> ppMsgRet | ||
+ | DX = exchange | ||
+ | 05h " | ||
+ | ES:BX -> pExchRet | ||
+ | 06h " | ||
+ | DX = exchange | ||
+ | 07h " | ||
+ | ES:BX -> ppMsgRet | ||
+ | DX = exchange | ||
+ | CX = 4354h (' | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - Telebit ACS SERIAL I/O | ||
+ | ES:SI-> parameter block | ||
+ | Return: CF set on error | ||
+ | CF clear on success | ||
+ | Notes: the signature " | ||
+ | handler; this serves as the installation check | ||
+ | |||
+ | Format of Telebit ACS parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 3Ch status | ||
+ | 3Dh connect | ||
+ | 3Eh disconnect | ||
+ | 3Fh read | ||
+ | 40h data/ | ||
+ | 41h clear receive buffer | ||
+ | 42h get configuration | ||
+ | 43h get receiver status | ||
+ | 44h raw write | ||
+ | 45h search servers | ||
+ | 46h set transmit buffer size | ||
+ | | ||
+ | | ||
+ | | ||
+ | 04h 17 BYTES auxiliary buffer | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 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 | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE | ||
+ | Notes: the installation check consists of checking for the signature " | ||
+ | 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 " | ||
+ | NetWare broadcast messages be disabled with INT 21/ | ||
+ | SeeAlso: INT 21/AX=DE00h | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F U - YTERM - ??? | ||
+ | SeeAlso: INT 7E" | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ7 | ||
+ | Note: this vector is overwritten when GO32 starts but is not restored | ||
+ | SeeAlso: INT 0F,INT 7E" | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - Canon IXHND2 Scanner Interface | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - Alloy 386/ | ||
+ | Notes: the words at C800h:0000h and C800h:0002h will both be 584Eh if the | ||
+ | MW386 multitasking system is present (i.e. signature " | ||
+ | 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 | ||
+ | " | ||
+ | INT 21/AX=4400h and INT 21/ | ||
+ | be the actual interrupt number being used; the other interrupts may | ||
+ | be found with INT 7F/ | ||
+ | ----------7F--------------------------------- | ||
+ | INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK | ||
+ | Note: a program may determine that it is running on an ANSK Slave by checking | ||
+ | the five bytes at F000h:0000h for the ASCIZ signature " | ||
+ | address is RAM, and should not be written. | ||
+ | will not work on Slaves with <1MB RAM or those using the SLIM.SYS | ||
+ | device driver | ||
+ | ----------7F00------------------------------- | ||
+ | INT 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: AH=01h, | ||
+ | ----------7F01------------------------------- | ||
+ | INT 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: AH=00h, | ||
+ | ----------7F0104BX0000----------------------- | ||
+ | INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API) | ||
+ | AX = 0104h (HLLAPI gate ID) | ||
+ | BX = 0000h | ||
+ | DS:SI -> parameter control block (see below) | ||
+ | Return: parameter control block updated | ||
+ | |||
+ | Format of parameter control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ControlString[0] (Rabbit) | ||
+ | | ||
+ | | ||
+ | unused (Rabbit) | ||
+ | |||
+ | Values for HLLAPI function number: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | (not implemented by Rabbit) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Values for LLAPI function number: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Session Parameters for function 09h: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7F0105----------------------------- | ||
+ | INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE | ||
+ | AX = 0105h get 8514/A entry points | ||
+ | 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 | ||
+ | |||
+ | Function numbers: (do FAR call via entry_points+4*function) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7F02------------------------------- | ||
+ | INT 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: AH=00h, | ||
+ | ----------7F0200----------------------------- | ||
+ | INT 7F - Btrieve Multi-User - GIVE UP TIME??? | ||
+ | AX = 0200h | ||
+ | SeeAlso: INT 21/ | ||
+ | SeeAlso: INT 7B" | ||
+ | ----------7F03------------------------------- | ||
+ | INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER | ||
+ | AH = 03h | ||
+ | Return: AL = user number | ||
+ | AH = machine number (MW386) | ||
+ | Note: this function call is the recommended method for a CPU-bound process to | ||
+ | prevent its priority from being lowered | ||
+ | SeeAlso: AH=04h, | ||
+ | ----------7F04------------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS | ||
+ | AH = 04h | ||
+ | Return: AL = total number of users on currrent machine (MW386) | ||
+ | AL = number of slaves on system (NTNX) | ||
+ | SeeAlso: AH=03h | ||
+ | ----------7F05------------------------------- | ||
+ | INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL | ||
+ | AH = 05h | ||
+ | AL = function | ||
+ | 00h lock system (disable slave services) | ||
+ | 01h unlock system | ||
+ | 02h enable spooler | ||
+ | 03h disable spooler | ||
+ | 04h enable slave timer update | ||
+ | 05h disable slave timer update | ||
+ | 06h enable form feeds | ||
+ | 07h disable form feeds | ||
+ | SeeAlso: INT 17/AH=A4h | ||
+ | ----------7F05------------------------------- | ||
+ | INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS | ||
+ | AH = 05h | ||
+ | DX:DI -> buffer for user information record (see below) | ||
+ | Notes: | ||
+ | many of the fields to zero because they are meaningless under MW386 | ||
+ | this function has no effect when called by the host (user 0) | ||
+ | SeeAlso: AH=03h | ||
+ | |||
+ | Format of user information record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | flag nonzero if update needed | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | | ||
+ | 00h 8088 | ||
+ | 01h V20 | ||
+ | 02h 8086 | ||
+ | 03h V30 | ||
+ | 06h 80386 | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | | ||
+ | bit 7 set when slave communicating with host | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | | ||
+ | | ||
+ | | ||
+ | nonzero if screen must be repainted | ||
+ | | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | | ||
+ | (not used by MW386, set to 0000h) | ||
+ | intercept flag = FFh if MSDOS intercepts should be disabled | ||
+ | | ||
+ | lock flag = FFh if backgrnd screen updates should be suspended | ||
+ | 22h 26 BYTEs reserved | ||
+ | ----------7F06------------------------------- | ||
+ | INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO | ||
+ | AH = 06h | ||
+ | AL = drive number (1=A:, 2=B:, etc) | ||
+ | ES:DI -> drive info record (see below) | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | ES:DI buffer filled | ||
+ | 0001h not shared drive | ||
+ | |||
+ | Format of drive info record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | one byte per FAT entry, containing user ID owning that entry | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7F06------------------------------- | ||
+ | INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE | ||
+ | AH = 06h | ||
+ | DL = drive number (1=A:, | ||
+ | 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) | ||
+ | ----------7F07------------------------------- | ||
+ | INT 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 | ||
+ | |||
+ | Format of shared drive list: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7F08------------------------------- | ||
+ | INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS | ||
+ | AH = 08h | ||
+ | CL = function | ||
+ | 00h get original interrupt vector | ||
+ | 01h get Network Executive interrrupt | ||
+ | AL = interrupt number | ||
+ | DX:SI -> DWORD to hold interrupt vector | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | 01h interrupt vector not used by network executive | ||
+ | 02h invalid subfunction | ||
+ | Note: the network executive uses interrupts 02h, | ||
+ | 1Ch, | ||
+ | SeeAlso: AH=09h/ | ||
+ | ----------7F08--CL02------------------------- | ||
+ | INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT | ||
+ | AH = 08h | ||
+ | CL = 02h | ||
+ | DX = timeout in seconds | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | 02h invalid subfunction | ||
+ | ----------7F09------------------------------- | ||
+ | INT 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' | ||
+ | ----------7F09------------------------------- | ||
+ | INT 7F - Alloy NTNX - ENABLE/ | ||
+ | AH = 09h | ||
+ | CL = function | ||
+ | 00h enable checking of RTNX.MUD file | ||
+ | 01h disable RTNX.MUD checking | ||
+ | ----------7F09--CL02------------------------- | ||
+ | INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE | ||
+ | AH = 09h | ||
+ | CL = 02h | ||
+ | Note: in dedicated mode, the host will only poll for I/O requests from the | ||
+ | slave processors, and not provide workstation services | ||
+ | ----------7F09--CL03------------------------- | ||
+ | INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT | ||
+ | AH = 09h | ||
+ | CL = 03h | ||
+ | AL = default interrupt number (67h, | ||
+ | Return: CL = actual interrupt which handles specified interrupt' | ||
+ | SeeAlso: AH=08h | ||
+ | ----------7F0A--CL00------------------------- | ||
+ | INT 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 | ||
+ | |||
+ | Format of system flags: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7F0B--CL02------------------------- | ||
+ | INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE | ||
+ | AH = 0Bh | ||
+ | CL = 02h | ||
+ | AL = slave ID number | ||
+ | CH = DOS to activate | ||
+ | 00h graphics DOS | ||
+ | 01h character DOS | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | 01h nothing done, proper DOS type already loaded | ||
+ | ----------7F10--CL00------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL | ||
+ | AH = 10h | ||
+ | CL = 00h | ||
+ | AL = channel number | ||
+ | DX:DI -> channel buffer | ||
+ | Return: AL = status | ||
+ | 00h 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: AH=10h/ | ||
+ | ----------7F10--CL01------------------------- | ||
+ | INT 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: AH=10h/ | ||
+ | ----------7F10--CL02------------------------- | ||
+ | INT 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: AH=10h/ | ||
+ | ----------7F10--CL03------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL | ||
+ | AH = 10h | ||
+ | CL = 03h | ||
+ | AL = channel number | ||
+ | Return: AL = status (see AH=10h/ | ||
+ | Notes: | ||
+ | locked by receipt of a datagram | ||
+ | may not be invoked from within a hardware interrupt handler | ||
+ | SeeAlso: AH=10h/ | ||
+ | ----------7F10--CL04------------------------- | ||
+ | INT 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: | ||
+ | may not be invoked from within a hardware interrupt handler | ||
+ | SeeAlso: AH=10h/ | ||
+ | ----------7F10--CL05------------------------- | ||
+ | INT 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: | ||
+ | the channels | ||
+ | may not be invoked from within a hardware interrupt handler | ||
+ | SeeAlso: AH=10h/ | ||
+ | ----------7F10--CL06------------------------- | ||
+ | INT 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: AH=10h/ | ||
+ | ----------7F10--CL07------------------------- | ||
+ | INT 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: | ||
+ | may not be invoked from within a hardware interrupt handler | ||
+ | SeeAlso: AH=10h/ | ||
+ | ----------7F10--CL08------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS | ||
+ | AH = 10h | ||
+ | CL = 08h | ||
+ | DX = maximum channel number to lock | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | 01h busy | ||
+ | 02h channel range error (not 00h-3Fh) | ||
+ | 03h invalid subfunction | ||
+ | Notes: | ||
+ | may not be invoked from within a hardware interrupt handler | ||
+ | SeeAlso: AH=10h/ | ||
+ | ----------7F10--CL09------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS | ||
+ | AH = 10h | ||
+ | CL = 09h | ||
+ | DX = maximum channel number to unlock | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | 01h busy | ||
+ | 02h channel range error (not 00h-3Fh) | ||
+ | 03h invalid subfunction | ||
+ | Notes: | ||
+ | may not be invoked from within a hardware interrupt handler | ||
+ | SeeAlso: AH=10h/ | ||
+ | ----------7F11------------------------------- | ||
+ | INT 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: AH=12h | ||
+ | |||
+ | Format of request block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | ----------7F12------------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM | ||
+ | AH = 12h | ||
+ | AL = channel number being acknowledged | ||
+ | DI:DX = 32-bit status to return to sender | ||
+ | Return: AL = status | ||
+ | 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: AH=11h, | ||
+ | ----------7F13--CL00------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS | ||
+ | AH = 13h | ||
+ | CL = 00h | ||
+ | Note: | ||
+ | compatibility mode | ||
+ | ----------7F14--CL00------------------------- | ||
+ | INT 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: AH=14h/ | ||
+ | |||
+ | 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, | ||
+ | ----------7F14--CL01------------------------- | ||
+ | INT 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: AH=12h, | ||
+ | |||
+ | Service routine called with: | ||
+ | DS:SI -> acknowledge structure (see AH=15h/ | ||
+ | Return: AL = response code | ||
+ | 00h application busy, network executive should call again later | ||
+ | 01h acknowledge accepted | ||
+ | AH,DX,SI may be destroyed | ||
+ | ----------7F14--CL02------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER | ||
+ | AH = 14h | ||
+ | CL = 02h | ||
+ | AL = channel number | ||
+ | DX:DI -> receive buffer | ||
+ | Return: AL = status | ||
+ | 00h 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: AH=10h/ | ||
+ | ----------7F14--CL03------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR | ||
+ | AH = 14h | ||
+ | CL = 03h | ||
+ | Return: DX:DI -> current receive ISR | ||
+ | SeeAlso: AH=14h/ | ||
+ | ----------7F14--CL04------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR | ||
+ | AH = 14h | ||
+ | CL = 04h | ||
+ | Return: DX:DI -> current acknowledge ISR | ||
+ | SeeAlso: AH=14h/ | ||
+ | ----------7F14--CL05------------------------- | ||
+ | INT 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 | ||
+ | |||
+ | Format of busy structure: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7F15--CL00------------------------- | ||
+ | INT 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: AH=15h/ | ||
+ | |||
+ | Format of status structure: | ||
+ | Offset Size Description | ||
+ | | ||
+ | bit 0: channel open | ||
+ | 1: channel buffer contains received data | ||
+ | 7: channel locked | ||
+ | | ||
+ | ----------7F15--CL01------------------------- | ||
+ | INT 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: AH=15h/ | ||
+ | |||
+ | Format of full-channel structure: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------7F15--CL02------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS | ||
+ | AH = 15h | ||
+ | CL = 02h | ||
+ | Return: AH = number of channels available (40h for MW386) | ||
+ | Note: the application may always assume at least 32 channels available | ||
+ | SeeAlso: AH=15h/ | ||
+ | ----------7F15--CL03------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE | ||
+ | AH = 15h | ||
+ | CL = 03h | ||
+ | DX:DI -> WORD for return value | ||
+ | Return: buffer WORD filled with maximum packet size (4096 for MW386) | ||
+ | SeeAlso: AH=15h/ | ||
+ | ----------7F15--CL04------------------------- | ||
+ | INT 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: AH=12h, | ||
+ | |||
+ | Format of status structure: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------7F16------------------------------- | ||
+ | INT 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' | ||
+ | no segment wrap is allowed | ||
+ | |||
+ | Format of transfer structure: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | FEh = caller | ||
+ | | ||
+ | | ||
+ | FFh = all slaves except caller | ||
+ | FEh = caller | ||
+ | | ||
+ | ----------7F21------------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S) | ||
+ | AH = 21h | ||
+ | AL = sender' | ||
+ | DS:DX -> control packet (see below) | ||
+ | Note: | ||
+ | SeeAlso: AH=22h | ||
+ | |||
+ | Format of control packet: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 00h message | ||
+ | 01h NTNX command | ||
+ | 02h MW386 command | ||
+ | | ||
+ | 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 | ||
+ | ----------7F22------------------------------- | ||
+ | INT 7F - Alloy NTNX - GET MESSAGE | ||
+ | AH = 22h | ||
+ | Return: pending messages displayed on user's screen | ||
+ | SeeAlso: AH=21h | ||
+ | ----------7F24------------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS | ||
+ | AH = 24h | ||
+ | CL = function | ||
+ | 00h attach | ||
+ | 01h release | ||
+ | CH = drive (0=A:, | ||
+ | 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 | ||
+ | ----------7F24------------------------------- | ||
+ | INT 7F - Alloy NTNX - ATTACH/ | ||
+ | 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 | ||
+ | ----------7F25--CL00------------------------- | ||
+ | INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION | ||
+ | AH = 25h | ||
+ | CL = 00h | ||
+ | Return: AH = version suffix letter | ||
+ | CH = major version number | ||
+ | CL = minor version number | ||
+ | SeeAlso: AH=25h/ | ||
+ | ----------7F25--CL01------------------------- | ||
+ | INT 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: AH=25h/ | ||
+ | ----------7F26--CL00------------------------- | ||
+ | INT 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: AH=26h, | ||
+ | ----------7F26------------------------------- | ||
+ | INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL | ||
+ | AH = 26h | ||
+ | CL = check type to set/reset | ||
+ | 01h directory protection | ||
+ | 02h extended open | ||
+ | 03h flush on every disk write | ||
+ | 04h flush on disk write if any lock set during write | ||
+ | 05h flush on all reads if file written | ||
+ | AL = new state (00h off, 01h on) | ||
+ | SeeAlso: AH=26h/ | ||
+ | ----------7F26--CL06------------------------- | ||
+ | INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE | ||
+ | AH = 26h | ||
+ | CL = 06h | ||
+ | Note: | ||
+ | SeeAlso: AH=26h/ | ||
+ | ----------7F30------------------------------- | ||
+ | INT 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' | ||
+ | DL = owner' | ||
+ | SeeAlso: INT 17/AH=8Bh | ||
+ | ----------7F31------------------------------- | ||
+ | INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT | ||
+ | AH = 31h | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------7F37------------------------------- | ||
+ | INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE | ||
+ | AH = 37h | ||
+ | Return: ES:AX -> semaphore table | ||
+ | ----------7F37------------------------------- | ||
+ | INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL | ||
+ | AH = 37h | ||
+ | DS:DX -> ASCIZ string to display | ||
+ | Note: if the string is empty, a terminal update will be forced | ||
+ | ----------7F38------------------------------- | ||
+ | INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER | ||
+ | AH = 38h | ||
+ | AL = new terminal driver number | ||
+ | FFh dummy driver | ||
+ | FEh current driver | ||
+ | FDh load new driver | ||
+ | DS:SI -> new driver | ||
+ | SeeAlso: AH=39h | ||
+ | ----------7F39------------------------------- | ||
+ | INT 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: AH=38h | ||
+ | ----------7F3A------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS | ||
+ | AH = 3Ah | ||
+ | DL = user number (FFh = caller) | ||
+ | DH = machine number | ||
+ | Return: CF clear if successful | ||
+ | AH = terminal driver number | ||
+ | AL = baud rate (00h = 38400, 01h = 19200, etc) | ||
+ | CL = parity (00h none, 01h even, 02h odd) | ||
+ | CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) | ||
+ | CF set if invalid user number | ||
+ | SeeAlso: AH=3Bh | ||
+ | ----------7F3B------------------------------- | ||
+ | INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS | ||
+ | AH = 3Bh | ||
+ | AL = baud rate (00h = 38400, 01h = 19200, etc) | ||
+ | CL = parity (00h none, 01h even, 02h odd) | ||
+ | CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) | ||
+ | DL = user number (FFh = caller) | ||
+ | DH = machine number for user | ||
+ | Return: CF set if invalid user number | ||
+ | Notes: only available to supervisors | ||
+ | the new parameters will take effect immediately if the user's terminal | ||
+ | has not been started, else AH=3Dh must be called to post the changes | ||
+ | SeeAlso: AH=3Ah, | ||
+ | ----------7F3C------------------------------- | ||
+ | INT 7F - Alloy MW386 - ENABLE/ | ||
+ | AH = 3Ch | ||
+ | AL = new state | ||
+ | 00h disabled, 01h enabled | ||
+ | DL = user number (FFh = caller) | ||
+ | DH = machine number for user | ||
+ | Return: CF set if invalid user number | ||
+ | Note: only available to supervisors | ||
+ | SeeAlso: AH=3Dh | ||
+ | ----------7F3D------------------------------- | ||
+ | INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES | ||
+ | AH = 3Dh | ||
+ | Note: | ||
+ | parameters | ||
+ | SeeAlso: AH=3Bh | ||
+ | ----------7F41------------------------------- | ||
+ | INT 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: | ||
+ | SeeAlso: AH=00h,, | ||
+ | ----------7F41------------------------------- | ||
+ | INT 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: AH=00h, | ||
+ | ----------7F42------------------------------- | ||
+ | INT 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: AH=00h, | ||
+ | ----------7F42------------------------------- | ||
+ | INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER | ||
+ | AH = 42h | ||
+ | AL = user ID | ||
+ | DS:DX -> ASCIZ semaphore name | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | 01h invalid function | ||
+ | 03h unable to unlock semaphore | ||
+ | SeeAlso: AH=02h, | ||
+ | ----------7F4E------------------------------- | ||
+ | INT 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 (" | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | SeeAlso: AH=4Fh | ||
+ | ----------7F4F------------------------------- | ||
+ | INT 7F - Alloy MW386 v2+ - SET FCB MODE | ||
+ | AH = 4Fh | ||
+ | AL = FCB mode | ||
+ | 02h read/write compatibility | ||
+ | 42h read/write shared | ||
+ | DX = 4E58h (" | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | ----------7F81------------------------------- | ||
+ | INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER | ||
+ | AH = 81h | ||
+ | AL = user ID | ||
+ | DS:DX -> ASCIZ device name | ||
+ | SeeAlso: AH=82h | ||
+ | ----------7F82------------------------------- | ||
+ | INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER | ||
+ | AH = 82h | ||
+ | AL = user ID | ||
+ | DS:DX -> ASCIZ device name | ||
+ | SeeAlso: AH=81h | ||
+ | ----------7FA0------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET USER NAME | ||
+ | AH = A0h | ||
+ | DL = user number (FFh = caller) | ||
+ | DH = machine number for user | ||
+ | ES:DI -> 17-byte buffer for ASCIZ user name | ||
+ | Return: CF set if invalid user number | ||
+ | SeeAlso: AH=03h, | ||
+ | ----------7FA1------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER | ||
+ | AH = A1h | ||
+ | Return: AL = process number | ||
+ | DL = user number | ||
+ | DH = machine number | ||
+ | SeeAlso: AH=03h, | ||
+ | ----------7FA2------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL | ||
+ | AH = A2h | ||
+ | DL = user number (FFh = caller) | ||
+ | DH = machine number for user | ||
+ | Return: CF clear if successful | ||
+ | AL = privilege level | ||
+ | 00h supervisor | ||
+ | 01h high | ||
+ | 02h medium | ||
+ | 03h low | ||
+ | CF set if invalid user number | ||
+ | SeeAlso: AH=A1h, | ||
+ | ----------7FA3------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET USER LOGIN STATE | ||
+ | AH = A3h | ||
+ | DL = user number | ||
+ | DH = machine number for user | ||
+ | Return: CF clear if successful | ||
+ | AL = login state | ||
+ | 00h never logged in | ||
+ | 01h currently logged out | ||
+ | 03h currently logged in | ||
+ | CF set if invalid user number or user not active | ||
+ | SeeAlso: AH=A2h | ||
+ | ----------7FA4------------------------------- | ||
+ | INT 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 | ||
+ | ----------7FA5------------------------------- | ||
+ | INT 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 | ||
+ | ----------7FB0------------------------------- | ||
+ | INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER | ||
+ | AH = B0h | ||
+ | AL = user number | ||
+ | DS = code segment | ||
+ | Note: MW386 ignores AL and DS; it releases all semaphores locked using INT 67 | ||
+ | or INT 7F locking functions | ||
+ | SeeAlso: AH=B1h, | ||
+ | ----------7FB1------------------------------- | ||
+ | INT 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: AH=B0h, | ||
+ | ----------7FB2------------------------------- | ||
+ | INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER | ||
+ | AH = B2h | ||
+ | AL = (bits 7-5) 001 | ||
+ | (bits 4-0) user ID | ||
+ | SeeAlso: AH=B0h, | ||
+ | ----------7FB3------------------------------- | ||
+ | INT 7F - Alloy NTNX - RELEASE FILES FOR USER | ||
+ | AH = B3h | ||
+ | AL = (bits 7-5) 010 | ||
+ | (bits 4-0) user ID | ||
+ | SeeAlso: AH=B0h, | ||
+ | ----------7FB4------------------------------- | ||
+ | INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER | ||
+ | AH = B4h | ||
+ | AL = user ID | ||
+ | SeeAlso: AH=B0h, | ||
+ | ----------7FC3------------------------------- | ||
+ | INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT | ||
+ | AH = C3h | ||
+ | AL = byte to write | ||
+ | Return: CF clear if successful | ||
+ | CF set on error | ||
+ | SeeAlso: AH=C6h | ||
+ | ----------7FC5------------------------------- | ||
+ | INT 7F - Alloy MW386 - CHANGE CONSOLE MODE | ||
+ | AH = C5h | ||
+ | AL = new console mode | ||
+ | 00h keyboard indirect | ||
+ | 01h keyboard direct | ||
+ | 02h data handshake enforced | ||
+ | 03h no data handshake | ||
+ | Return: CF clear if successful | ||
+ | AL = prior console mode | ||
+ | CF set on error (caller is not remote user) | ||
+ | Note: modes 2 and 3 may be used for input through the console port; no video | ||
+ | output should be performed in these modes | ||
+ | ----------7FC6------------------------------- | ||
+ | INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT | ||
+ | AH = C6h | ||
+ | AL = byte to write | ||
+ | Return: CF clear if successful | ||
+ | CF set on error (caller is not remote user) | ||
+ | Note: any terminal driver data translation will be bypassed | ||
+ | SeeAlso: AH=C3h, | ||
+ | ----------7FC7------------------------------- | ||
+ | INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE | ||
+ | AH = C7h | ||
+ | Return: CF clear if successful | ||
+ | AL = byte read | ||
+ | CF set on error (no data available or caller is not remote user) | ||
+ | Note: used to read data after placing console in mode 2 or 3 (see AH=C5h) | ||
+ | SeeAlso: AH=C5h, | ||
+ | ----------7FC8------------------------------- | ||
+ | INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER | ||
+ | AH = C8h | ||
+ | AL = maximum bytes to read | ||
+ | ES:DI -> buffer for console data | ||
+ | Return: CF clear if successful | ||
+ | CX = number of bytes read | ||
+ | CF set on error (caller is not remote user) | ||
+ | SeeAlso: AH=C7h | ||
+ | ----------7FCF------------------------------- | ||
+ | INT 7F - Alloy NTNX - REBOOT USER PROCESSOR | ||
+ | AH = CFh | ||
+ | DS:DX -> ASCIZ string containing user number to be reset | ||
+ | SeeAlso: AH=D6h | ||
+ | ----------7FD6------------------------------- | ||
+ | INT 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: AH=CFh | ||
+ | |||
+ | Format of reset packet: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 04h 16 BYTEs ASCIZ supervisor password padded with nulls | ||
+ | ----------7FD7------------------------------- | ||
+ | INT 7F - Alloy MW386 - POST EVENT | ||
+ | AH = D7h | ||
+ | AL = user number (if local event) | ||
+ | DX = event number | ||
+ | ----------7FD8------------------------------- | ||
+ | INT 7F - Alloy MW386 - FLUSH DISK BUFFERS | ||
+ | AH = D8h | ||
+ | Return: CF set on error | ||
+ | Note: | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------7FDB------------------------------- | ||
+ | INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE | ||
+ | AH = DBh | ||
+ | Return: AL = drive from which MW386 was started (2=C:, | ||
+ | ----------7FE0------------------------------- | ||
+ | INT 7F - Alloy MW386 - CREATE DOS TASK | ||
+ | AH = E0h | ||
+ | AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) | ||
+ | DS:DX -> ASCIZ task name (max 16 bytes) | ||
+ | Return: CF clear if successful | ||
+ | AL = task create ID | ||
+ | CF set on error | ||
+ | Note: only foreground DOS tasks can use this function | ||
+ | SeeAlso: AH=E1h, | ||
+ | ----------7FE1------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID | ||
+ | AH = E1h | ||
+ | AL = create ID (from AH=E0h) | ||
+ | Return: AL = DOS process number | ||
+ | CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) | ||
+ | Note: this function should not be called immediately after creating a new | ||
+ | DOS task, since the new task is being initialized by a concurrent | ||
+ | process | ||
+ | SeeAlso: AH=E0h, | ||
+ | ----------7FE2------------------------------- | ||
+ | INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK | ||
+ | AH = E2h | ||
+ | AL = DOS process number (from AH=E1h) | ||
+ | Return: CF set on error (invalid process number or caller not foreground task) | ||
+ | Notes: | ||
+ | in the background | ||
+ | may only be called by a foreground task | ||
+ | SeeAlso: AH=E0h, | ||
+ | ----------7FE3------------------------------- | ||
+ | INT 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: AH=E0h, | ||
+ | ----------7FE4------------------------------- | ||
+ | INT 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: AH=E3h, | ||
+ | ----------7FE5------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME | ||
+ | AH = E5h | ||
+ | DS:DX -> ASCIZ task name | ||
+ | BH = user number | ||
+ | Return: CF clear if successful | ||
+ | AL = DOS process number | ||
+ | CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) | ||
+ | CF set on error (no match for name) | ||
+ | SeeAlso: AH=E3h, | ||
+ | ----------7FE6------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS | ||
+ | AH = E6h | ||
+ | Return: AX = number of processes available to current user | ||
+ | SeeAlso: AH=E0h | ||
+ | ----------7FE7------------------------------- | ||
+ | INT 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: AH=E0h | ||
+ | ----------7FE8------------------------------- | ||
+ | INT 7F - Alloy MW386 - DOS TASK DELAY | ||
+ | AH = E8h | ||
+ | CX = delay time in milliseconds | ||
+ | Note: a delay of 0 may be used to surrender the current time slice | ||
+ | SeeAlso: INT 15/ | ||
+ | ----------7FF0------------------------------- | ||
+ | INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP | ||
+ | AH = F0h | ||
+ | AL = group number | ||
+ | DS:DX -> ASCIZ directory name | ||
+ | Return: CF clear if successful | ||
+ | AX = status | ||
+ | 0002h directory not found | ||
+ | 0003h directory not found | ||
+ | 0005h directory in use, cannot be restricted | ||
+ | 02xxh restricted to group xxh | ||
+ | CF set on error | ||
+ | Note: the restriction on the directory may be removed by calling this | ||
+ | function with group 0, then using AH=F1h to assign the directory to | ||
+ | group 0 | ||
+ | SeeAlso: AH=F1h, | ||
+ | ----------7FF1------------------------------- | ||
+ | INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP | ||
+ | AH = F1h | ||
+ | AL = group number | ||
+ | DS:DX -> ASCIZ directory name | ||
+ | Notes: | ||
+ | unless the directory has been restricted with AH=F0h | ||
+ | may be used to restrict a nonexistent directory | ||
+ | SeeAlso: AH=F0h | ||
+ | ----------7FF2------------------------------- | ||
+ | INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY | ||
+ | AH = F2h | ||
+ | CX = entry number | ||
+ | ES:DI -> 64-byte buffer | ||
+ | Return: CF clear if successful | ||
+ | buffer filled with 63-byte directory info and 1-byte group number | ||
+ | CF set on error (invalid entry) | ||
+ | SeeAlso: AH=F0h, | ||
+ | ----------7FF3------------------------------- | ||
+ | INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP | ||
+ | AH = F3h | ||
+ | AL = group number | ||
+ | CX = entry number | ||
+ | ES:DI -> 64-byte buffer | ||
+ | Return: CF clear if successful | ||
+ | CX = next entry number | ||
+ | buffer filled with 63-byte directory info and 1-byte group number | ||
+ | CF set on error (no more matching entries) | ||
+ | Note: like AH=F2h, but only returns directories belonging to the specified | ||
+ | group | ||
+ | SeeAlso: AH=F2h | ||
+ | ----------7FF8------------------------------- | ||
+ | INT 7F - Alloy MW386 - ASSIGN USER TO GROUP | ||
+ | AH = F8h | ||
+ | AL = group number | ||
+ | DL = user number | ||
+ | DH = machine number (currently 00h) | ||
+ | Return: CF clear if successful | ||
+ | CF set on error (user already in maximum number of groups) | ||
+ | Note: each user is allowed eight group assignments | ||
+ | SeeAlso: AH=F9h, | ||
+ | ----------7FF9------------------------------- | ||
+ | INT 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: AH=F8h, | ||
+ | ----------7FFA------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET USER GROUP LIST | ||
+ | AH = FAh | ||
+ | DL = user number | ||
+ | DH = machine number (currently 00h) | ||
+ | ES:DI -> 16-byte buffer for group list | ||
+ | Return: CX = number of groups | ||
+ | ES:DI buffer filled with group numbers | ||
+ | SeeAlso: AH=F8h, | ||
+ | ----------7FFB------------------------------- | ||
+ | INT 7F - Alloy MW386 - ASSIGN GROUP NAME | ||
+ | AH = FBh | ||
+ | CL = group number | ||
+ | ES:DI -> ASCIZ group name (max 17 bytes) | ||
+ | SeeAlso: AH=FCh | ||
+ | ----------7FFC------------------------------- | ||
+ | INT 7F - Alloy MW386 - GET GROUP NAME | ||
+ | AH = FCh | ||
+ | CL = group number | ||
+ | ES:DI -> 17-byte buffer for ASCIZ name | ||
+ | Return: ES:DI buffer filled | ||
+ | Note: if the group has not been named, " | ||
+ | SeeAlso: AH=FBh | ||
+ | ----------80--------------------------------- | ||
+ | INT 80 - Q-PRO4 - ??? | ||
+ | ----------80--------------------------------- | ||
+ | INT 80 - reserved for BASIC | ||
+ | ----------80----BX0000----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - GET VERSION | ||
+ | BX = 0000h | ||
+ | Return: ??? | ||
+ | Note: SBFM installs at a free interrupt in the range 80h through BFh | ||
+ | SeeAlso: BX=0008h, | ||
+ | ----------80----BX0001----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS | ||
+ | BX = 0001h | ||
+ | DX:AX -> music status byte | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX0002----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE | ||
+ | BX = 0002h | ||
+ | CX = number of instruments | ||
+ | DX:AX -> instrument table | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX0003----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE | ||
+ | BX = 0003h | ||
+ | AX = clock rate divisor (1193180 / desired frequency in Hertz) | ||
+ | FFFFh to restore to 18.2 Hz | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX0004----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE | ||
+ | BX = 0004h | ||
+ | AX = driver clock rate divisor (1193180 / frequency in Hertz) | ||
+ | Note: | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX0005----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC | ||
+ | BX = 0005h | ||
+ | AX = semi-tone offset | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX0006----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - PLAY MUSIC | ||
+ | BX = 0006h | ||
+ | DX:AX -> music block | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | 0001h music already active | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX0007----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - STOP MUSIC | ||
+ | BX = 0007h | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | 0001h music not active | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX0008----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - RESET DRIVER | ||
+ | BX = 0008h | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | 0001h music is active | ||
+ | SeeAlso: BX=0000h | ||
+ | ----------80----BX0009----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC | ||
+ | BX = 0009h | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | 0001h no music active | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX000A----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - RESUME MUSIC | ||
+ | BX = 000Ah | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | 0001h no music paused | ||
+ | SeeAlso: BX=0000h, | ||
+ | ----------80----BX000B----------------------- | ||
+ | INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS | ||
+ | BX = 000Bh | ||
+ | DX:AX -> trap routine | ||
+ | SeeAlso: BX=0000h | ||
+ | ----------8001------------------------------- | ||
+ | INT 80 - QPC Software PKTINT.COM - INITIALIZE | ||
+ | AH = 01h | ||
+ | Return: AX = 0000h | ||
+ | CX = FFFFh | ||
+ | DX = FFFFh | ||
+ | Notes: this interrupt is the WinQVTNet protected mode interface to Windows 3.0 | ||
+ | all buffer pointers are reset back to 0 | ||
+ | ----------8002------------------------------- | ||
+ | INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES | ||
+ | AH = 02h | ||
+ | BX = extra bytes to allocate per packet | ||
+ | Return: AX = segment address of 10K buffer (for receives??? | ||
+ | BX = segment address of 2K buffer (for sends???) | ||
+ | SeeAlso: AH=05h | ||
+ | ----------8003------------------------------- | ||
+ | INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT | ||
+ | AH = 03h | ||
+ | Return: CX:DX -> receive call address | ||
+ | Note: the returned address can be used in the packet driver calls since it | ||
+ | will be a valid address in all DOS boxes | ||
+ | SeeAlso: AH=06h | ||
+ | ----------8004------------------------------- | ||
+ | INT 80 - QPC Software PKTINT.COM - ENABLE??? | ||
+ | AH = 04h | ||
+ | BX = ??? | ||
+ | Return: ??? | ||
+ | ----------8005------------------------------- | ||
+ | INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS | ||
+ | AH = 05h | ||
+ | Return: AX = amount of buffer currently in use | ||
+ | BX = current offset in buffer | ||
+ | CX = number of times receive has been called | ||
+ | SeeAlso: AH=02h | ||
+ | ----------8006------------------------------- | ||
+ | INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET | ||
+ | AH = 06h | ||
+ | Return: BX = next packet offset | ||
+ | CX = number of bytes still buffered | ||
+ | DX = size of packet released back into buffer pool | ||
+ | SeeAlso: AH=03h | ||
+ | ----------81--------------------------------- | ||
+ | INT 81 - reserved for BASIC | ||
+ | ----------81--------------------------------- | ||
+ | INT 81 - IBM TOKEN RING ADAPTER - ??? | ||
+ | ----------82--------------------------------- | ||
+ | INT 82 - reserved for BASIC | ||
+ | ----------82--------------------------------- | ||
+ | INT 82 - IBM TOKEN RING ADAPTER - ??? | ||
+ | AH = function | ||
+ | 00h display message??? | ||
+ | DS:BX -> string | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | ----------83--------------------------------- | ||
+ | INT 83 - reserved for BASIC | ||
+ | ----------84--------------------------------- | ||
+ | INT 84 - reserved for BASIC | ||
+ | ----------85--------------------------------- | ||
+ | INT 85 - reserved for BASIC | ||
+ | ----------86--------------------------------- | ||
+ | INT 86 - NetBIOS - ORIGINAL INT 18 | ||
+ | Note: some implementations of NetBIOS reportedly relocate INT 18 here | ||
+ | SeeAlso: INT 18 | ||
+ | ----------86--------------------------------- | ||
+ | INT 86 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------86--------------------------------- | ||
+ | INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS | ||
+ | ----------87--------------------------------- | ||
+ | INT 87 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------87--------------------------------- | ||
+ | INT 87 - APL*PLUS/PC - ???? | ||
+ | ----------88--------------------------------- | ||
+ | INT 88 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------88----AL00------------------------- | ||
+ | INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE | ||
+ | AL = 00h | ||
+ | BX = STPTR of the variable to be assigned | ||
+ | ES:SI -> model of type, rank, and shape (see below) | ||
+ | Return: ES:DI -> first data byte of object | ||
+ | DX:CX = number of elements in the object | ||
+ | SeeAlso: INT C8" | ||
+ | |||
+ | Format of shape model: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 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) | ||
+ | | ||
+ | | ||
+ | | ||
+ | ... | ||
+ | ----------88----AL01------------------------- | ||
+ | INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/ | ||
+ | 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, | ||
+ | ----------88----AL02------------------------- | ||
+ | INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/ | ||
+ | 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, | ||
+ | ----------88----AL08------------------------- | ||
+ | INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/ | ||
+ | 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, | ||
+ | ----------88----ALF5------------------------- | ||
+ | INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL | ||
+ | AL = F5h | ||
+ | BX = STPTR of object | ||
+ | SeeAlso: INT C8" | ||
+ | ----------88----ALF6------------------------- | ||
+ | INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING | ||
+ | AL = F6h | ||
+ | BX = STPTR of object | ||
+ | SeeAlso: AL=F7h, | ||
+ | ----------88----ALF7------------------------- | ||
+ | INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING | ||
+ | AL = F7h | ||
+ | BX = STPTR of object | ||
+ | SeeAlso: AL=F6h, | ||
+ | ----------88----ALF8------------------------- | ||
+ | INT 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, | ||
+ | ----------88----ALF9------------------------- | ||
+ | INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS | ||
+ | AL = F9h | ||
+ | ES:SI -> name | ||
+ | CX = length of name | ||
+ | Return: CF set if name ill-formed or already in use | ||
+ | BX = STPTR if already in symbol table | ||
+ | CF clear if name is available for use | ||
+ | BX = 0000h | ||
+ | Note: does not force the name into the workspace | ||
+ | SeeAlso: AL=FEh, | ||
+ | ----------88----ALFC------------------------- | ||
+ | INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION | ||
+ | AL = FCh | ||
+ | BX = amount of memory needed (paragraphs) | ||
+ | Return: CF clear if memory available | ||
+ | CF set if a workspace compaction is required | ||
+ | SeeAlso: AL=FDh,INT C8" | ||
+ | ----------88----ALFD------------------------- | ||
+ | INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY | ||
+ | AL = FDh | ||
+ | Return: BX = number of paragraphs available in workspace | ||
+ | SeeAlso: AL=FCh,INT C8" | ||
+ | ----------88----ALFE------------------------- | ||
+ | INT 88 - APL*PLUS/PC - CREATE NAME | ||
+ | AL = FEh | ||
+ | ES:SI -> name | ||
+ | CX = length of name | ||
+ | Return: BX = STPTR of name | ||
+ | DX = interpreter' | ||
+ | SeeAlso: AL=F9h, | ||
+ | ----------88----ALFF------------------------- | ||
+ | INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS | ||
+ | AL = FFh | ||
+ | ES:SI -> name | ||
+ | CX = length of name | ||
+ | Return: CF set if name ill-formed or already in use | ||
+ | BX = STPTR if already in symbol table | ||
+ | CF clear if name is available for use | ||
+ | BX = 0000h | ||
+ | Note: | ||
+ | SeeAlso: AL=F9h, | ||
+ | ----------89--------------------------------- | ||
+ | INT 89 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------8A--------------------------------- | ||
+ | INT 8A - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------8A--------------------------------- | ||
+ | INT 8A - APL*PLUS/PC - PRINT SCREEN | ||
+ | Note: same as INT 05 | ||
+ | SeeAlso: INT 05,INT 8C" | ||
+ | ----------8B--------------------------------- | ||
+ | INT 8B - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------8B--------------------------------- | ||
+ | INT 8B - APL*PLUS/PC - BEEP | ||
+ | Note: same as printing a ^G via INT 21/AH=02h | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------8C--------------------------------- | ||
+ | INT 8C - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------8C--------------------------------- | ||
+ | INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY | ||
+ | AX = flag | ||
+ | 0000h do not save display attributes | ||
+ | 0001h save attributes | ||
+ | SeeAlso: INT CC" | ||
+ | ----------8D--------------------------------- | ||
+ | INT 8D - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------8E--------------------------------- | ||
+ | INT 8E - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------8F--------------------------------- | ||
+ | INT 8F - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------90--------------------------------- | ||
+ | INT 90 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------90--------------------------------- | ||
+ | INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER | ||
+ | ----------91--------------------------------- | ||
+ | INT 91 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------91--------------------------------- | ||
+ | INT 91 - IBM TOKEN RING ADAPTER - ??? | ||
+ | ----------92--------------------------------- | ||
+ | INT 92 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------92--------------------------------- | ||
+ | INT 92 - Sangoma X.25 INTERFACE PROGRAM | ||
+ | BX:DX -> control block | ||
+ | SeeAlso: INT 68" | ||
+ | ----------92E1------------------------------- | ||
+ | INT 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 " | ||
+ | FF99h " | ||
+ | FF9Ah " | ||
+ | FFE3h " | ||
+ | FFF8h " | ||
+ | FFFFh " | ||
+ | Note: | ||
+ | ----------92E100BX000A----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E100h | ||
+ | BX = 000Ah | ||
+ | CX:DX -> parameter block (see below) | ||
+ | Return: AX = 0001h success | ||
+ | Note: this function is used to initialize the dispatcher | ||
+ | SeeAlso: AX=E101h, | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------92E101BX0000----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E101h | ||
+ | BX = 0000h | ||
+ | CX:DX ignored | ||
+ | Return: AX = 0001h success | ||
+ | SeeAlso: AX=E100h | ||
+ | ----------92E102BX0000----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E102h | ||
+ | BX = 0000h | ||
+ | CX:DX ignored | ||
+ | Return: AX = 0001h success | ||
+ | Note: this function is used to determine if the dispatcher is loaded | ||
+ | SeeAlso: AX=E10Bh, | ||
+ | ----------92E103BX0000----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E103h | ||
+ | BX = 0000h | ||
+ | CX:DX ignored | ||
+ | Return: AX = status (see AH=E1h) | ||
+ | SeeAlso: AX=E100h | ||
+ | ----------92E104BX0006----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | 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 | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------92E105BX0007----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | 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: AX=E10Ah | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------92E106BX0004----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E106h | ||
+ | BX = 0004h | ||
+ | CX:DX -> parameter block | ||
+ | Return: AX = 0001h | ||
+ | SeeAlso: AX=E108h | ||
+ | ----------92E107BX0002----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E107h | ||
+ | BX = 0002h | ||
+ | CX:DX -> parameter block | ||
+ | Return: AX = 0001h | ||
+ | ----------92E108BX0004----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | 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: AX=E106h | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of command buffer: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 21h ' | ||
+ | 41h ' | ||
+ | 42h ' | ||
+ | Associated data is the From: username | ||
+ | 43h ' | ||
+ | Associated data is a comma delimitted list of usernames | ||
+ | 44h ' | ||
+ | Associated data is a comma delimitted list of usernames | ||
+ | 45h ' | ||
+ | No associated data | ||
+ | 48h ' | ||
+ | Associated data is a message header buffer | ||
+ | 4Dh ' | ||
+ | Associated data is the body of the message | ||
+ | 4Fh ' | ||
+ | 50h ' | ||
+ | 52h ' | ||
+ | Associated data is the To: username | ||
+ | 53h ' | ||
+ | Associated data is the subject of the message | ||
+ | 54h ' | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of message header buffer: | ||
+ | Offset Size Description | ||
+ | 00h 30 BYTEs subject line | ||
+ | 1Eh 24 BYTEs To | ||
+ | 36h 24 BYTEs From | ||
+ | | ||
+ | BYTE 0 | ||
+ | BYTE hour | ||
+ | BYTE minute | ||
+ | BYTE second | ||
+ | | ||
+ | BYTE 0 | ||
+ | BYTE year | ||
+ | BYTE month | ||
+ | BYTE day | ||
+ | | ||
+ | | ||
+ | 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) | ||
+ | | ||
+ | ----------92E109BX0001----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E109h | ||
+ | BX = 0001h | ||
+ | CX:DX -> ??? | ||
+ | Return: AX = FF97h (ERS_NOT_AVAILABLE) | ||
+ | ----------92E10ABX0001----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E10Ah | ||
+ | BX = 0001h | ||
+ | CX:DX -> parameter block (see below) | ||
+ | Return: AX = 0001h | ||
+ | Note: this function is used to close a dispatcher handle | ||
+ | SeeAlso: AX=E105h | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | ----------92E10BBX0004----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E10Bh | ||
+ | BX = 0004h | ||
+ | CX:DX -> parameter block (see below) | ||
+ | Return: AX = 0001h | ||
+ | SeeAlso: AX=E102h, | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------92E10CBX0002----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E10Ch | ||
+ | BX = 0002h | ||
+ | CX:DX -> parameter block (see below) | ||
+ | Return: AX = 0001h | ||
+ | SeeAlso: AX=E10Bh | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------92E10DBX0006----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E10Dh | ||
+ | BX = 0006h | ||
+ | CX:DX -> parameter block (see below) | ||
+ | Return: AX = status (see AH=E1h) | ||
+ | Note: this function is used to verify username/ | ||
+ | SeeAlso: AX=E10Eh | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------92E10EBX0004----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E10Eh | ||
+ | BX = 0004h | ||
+ | CX:DX -> parameter block (see below) | ||
+ | Return: AX = 0001h | ||
+ | Note: this function is used to remove a username | ||
+ | SeeAlso: AX=E10Dh | ||
+ | |||
+ | Format of parameter block: | ||
+ | Offset Type Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------92E10FBX0000----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY | ||
+ | AX = E10Fh | ||
+ | BX = 0000h | ||
+ | CX:DX ignored | ||
+ | Return: AX = 0001h | ||
+ | ----------92E110BX0006----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E110h | ||
+ | BX = 0006h | ||
+ | CX:DX -> ??? | ||
+ | Return: AX = 0001h | ||
+ | SeeAlso: AX=E111h, | ||
+ | ----------92E111BX0004----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E111h | ||
+ | BX = 0004h | ||
+ | CX:DX -> ??? | ||
+ | Return: AX = 0001h | ||
+ | SeeAlso: AX=E110h, | ||
+ | ----------92E112BX0008----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E112h | ||
+ | BX = 0008h | ||
+ | CX:DX -> ??? | ||
+ | Return: AX = 0001h | ||
+ | ----------92E113BX0008----------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - " | ||
+ | AX = E113h | ||
+ | BX = 0008h | ||
+ | CX:DX -> ??? | ||
+ | Return: AX = 0001h | ||
+ | SeeAlso: AX=E110h, | ||
+ | ----------92E175----------------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR | ||
+ | AX = E175h | ||
+ | Return: AX = 0012h | ||
+ | BX = PSP | ||
+ | ----------92E180----------------------------- | ||
+ | INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK | ||
+ | AX = E180h | ||
+ | Return: AX = 0012h if installed | ||
+ | ES:DX -> ' | ||
+ | SeeAlso: AX=E102h | ||
+ | ----------93--------------------------------- | ||
+ | INT 93 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------93--------------------------------- | ||
+ | INT 93 - IBM TOKEN RING ADAPTER - ??? | ||
+ | ----------94--------------------------------- | ||
+ | INT 94 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------95--------------------------------- | ||
+ | INT 95 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------95--------------------------------- | ||
+ | INT 95 - APL*PLUS/PC - DETERMINE R= SPACE | ||
+ | Note: use only when the R= option is invoked on entering APL | ||
+ | ----------96--------------------------------- | ||
+ | INT 96 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------97--------------------------------- | ||
+ | INT 97 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------98--------------------------------- | ||
+ | INT 98 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------99--------------------------------- | ||
+ | INT 99 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------9A--------------------------------- | ||
+ | INT 9A - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------9B--------------------------------- | ||
+ | INT 9B - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------9C--------------------------------- | ||
+ | INT 9C - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------9D--------------------------------- | ||
+ | INT 9D - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------9E--------------------------------- | ||
+ | INT 9E - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------9F--------------------------------- | ||
+ | INT 9F - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A0--------------------------------- | ||
+ | INT A0 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A0--------------------------------- | ||
+ | INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE | ||
+ | SeeAlso: INT 59 | ||
+ | ----------A1--------------------------------- | ||
+ | INT A1 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A2--------------------------------- | ||
+ | INT A2 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A3--------------------------------- | ||
+ | INT A3 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A4--------------------------------- | ||
+ | INT A4 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A4--------------------------------- | ||
+ | INT A4 U - Right Hand Man API | ||
+ | function number in AH | ||
+ | Note: Right-Hand Man is a TSR desk-top utility, and only hooks this interrupt | ||
+ | while popped up | ||
+ | ----------A5--------------------------------- | ||
+ | INT A5 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A6--------------------------------- | ||
+ | INT A6 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A7--------------------------------- | ||
+ | INT A7 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A8--------------------------------- | ||
+ | INT A8 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------A9--------------------------------- | ||
+ | INT A9 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------AA--------------------------------- | ||
+ | INT AA - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------AB--------------------------------- | ||
+ | INT AB - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------AC--------------------------------- | ||
+ | INT AC - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------AD--------------------------------- | ||
+ | INT AD - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------AE--------------------------------- | ||
+ | INT AE - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------AF--------------------------------- | ||
+ | INT AF - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B0--------------------------------- | ||
+ | INT B0 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B1--------------------------------- | ||
+ | INT B1 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B2--------------------------------- | ||
+ | INT B2 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B3--------------------------------- | ||
+ | INT B3 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B370------------------------------- | ||
+ | INT 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' | ||
+ | Return: AX destroyed | ||
+ | Notes: if installed, the string " | ||
+ | interrupt handler' | ||
+ | version number (00h for v1.x, 01h for v2.0) | ||
+ | ZIPKEY is a resident ZIPCODE database by Eric Isaacson | ||
+ | ----------B371------------------------------- | ||
+ | INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE | ||
+ | AH = 71h | ||
+ | BX = abbreviation, | ||
+ | Return: CF set on error | ||
+ | AL = FFh | ||
+ | CF clear if successful | ||
+ | AL = ZIPKEY state code | ||
+ | SeeAlso: AH=72h | ||
+ | ----------B372------------------------------- | ||
+ | INT 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, | ||
+ | SeeAlso: AH=71h, | ||
+ | ----------B373------------------------------- | ||
+ | INT 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: AH=72h | ||
+ | ----------B374------------------------------- | ||
+ | INT 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 | ||
+ | ----------B375------------------------------- | ||
+ | INT 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: AH=76h, | ||
+ | ----------B376------------------------------- | ||
+ | INT 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: AH=75h, | ||
+ | ----------B377------------------------------- | ||
+ | INT 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 | ||
+ | ----------B378------------------------------- | ||
+ | INT 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: AH=79h, | ||
+ | ----------B379------------------------------- | ||
+ | INT 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: AH=78h, | ||
+ | ----------B37A------------------------------- | ||
+ | INT 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: AH=78h, | ||
+ | ----------B37B------------------------------- | ||
+ | INT 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: AH=7Ch | ||
+ | ----------B37C------------------------------- | ||
+ | INT 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: AH=7Bh | ||
+ | ----------B37D------------------------------- | ||
+ | INT 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 | ||
+ | ----------B37E------------------------------- | ||
+ | INT 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 | ||
+ | ----------B37F------------------------------- | ||
+ | INT B3 - ZIPKEY - ENABLE/ | ||
+ | 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 | ||
+ | ----------B380------------------------------- | ||
+ | INT 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 | ||
+ | ----------B4--------------------------------- | ||
+ | INT B4 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B4--------------------------------- | ||
+ | INT B4 - STACKMAN - REQUEST NEW STACK | ||
+ | Return: SS:SP -> new stack | ||
+ | Note: the installation check consists of testing for the string " | ||
+ | offset 0Ah from the interrupt handler | ||
+ | SeeAlso: INT 2F/ | ||
+ | ----------B5--------------------------------- | ||
+ | INT B5 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B5--------------------------------- | ||
+ | INT B5 - STACKMAN - RESTORE ORIGINAL STACK | ||
+ | SS:SP -> stack returned by INT B4 | ||
+ | Return: SS:SP restored to value before INT B4 | ||
+ | SeeAlso: INT 2F/ | ||
+ | ----------B6--------------------------------- | ||
+ | INT B6 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B7--------------------------------- | ||
+ | INT B7 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B8--------------------------------- | ||
+ | INT B8 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------B9--------------------------------- | ||
+ | INT B9 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------BA--------------------------------- | ||
+ | INT BA - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------BB--------------------------------- | ||
+ | INT BB - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------BC--------------------------------- | ||
+ | INT BC - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------BD--------------------------------- | ||
+ | INT BD - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------BE--------------------------------- | ||
+ | INT BE - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------BE--------------------------------- | ||
+ | INT BE - DESQview/X - ??? | ||
+ | Note: | ||
+ | SeeAlso: INT 15/ | ||
+ | ----------BF--------------------------------- | ||
+ | INT BF - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C0--------------------------------- | ||
+ | INT C0 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C1--------------------------------- | ||
+ | INT C1 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C2--------------------------------- | ||
+ | INT C2 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C3--------------------------------- | ||
+ | INT C3 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C4--------------------------------- | ||
+ | INT C4 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C5--------------------------------- | ||
+ | INT C5 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C6--------------------------------- | ||
+ | INT C6 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C6--------------------------------- | ||
+ | INT 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 86" | ||
+ | ----------C7--------------------------------- | ||
+ | INT C7 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C7--------------------------------- | ||
+ | INT C7 - APL*PLUS/PC - ??? | ||
+ | Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete | ||
+ | the older interrupts | ||
+ | SeeAlso: INT 87" | ||
+ | ----------C8--------------------------------- | ||
+ | INT C8 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C8--------------------------------- | ||
+ | INT 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 88" | ||
+ | ----------C9--------------------------------- | ||
+ | INT C9 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------C9--------------------------------- | ||
+ | INT C9 - APL*PLUS/PC - ??? | ||
+ | Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete | ||
+ | the older interrupts | ||
+ | SeeAlso: INT 89" | ||
+ | ----------CA--------------------------------- | ||
+ | INT CA - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------CA--------------------------------- | ||
+ | INT 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 8A" | ||
+ | ----------CB--------------------------------- | ||
+ | INT CB - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------CB--------------------------------- | ||
+ | INT 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 8B" | ||
+ | ----------CC--------------------------------- | ||
+ | INT CC - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------CC--------------------------------- | ||
+ | INT 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 8C" | ||
+ | ----------CD--------------------------------- | ||
+ | INT CD - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------CD--------------------------------- | ||
+ | INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------CE--------------------------------- | ||
+ | INT CE - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------CE--------------------------------- | ||
+ | INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------CF--------------------------------- | ||
+ | INT CF - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------CF--------------------------------- | ||
+ | INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION | ||
+ | SeeAlso: INT E0" | ||
+ | ----------D0--------------------------------- | ||
+ | INT D0 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D0--------------------------------- | ||
+ | INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | --------------------------------------------- | ||
+ | INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR | ||
+ | Notes: | ||
+ | James" Blaszczak | ||
+ | if NJFRERAM is installed, this vector points at the signature " | ||
+ | ----------D1--------------------------------- | ||
+ | INT D1 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D1--------------------------------- | ||
+ | INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D2--------------------------------- | ||
+ | INT D2 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D2--------------------------------- | ||
+ | INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D3--------------------------------- | ||
+ | INT D3 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D3--------------------------------- | ||
+ | INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D4--------------------------------- | ||
+ | INT D4 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D4--------------------------------- | ||
+ | INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D4--------------------------------- | ||
+ | INT D4 - PC-MOS/386 - API | ||
+ | ----------D5--------------------------------- | ||
+ | INT D5 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D5--------------------------------- | ||
+ | INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D6--------------------------------- | ||
+ | INT D6 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D6--------------------------------- | ||
+ | INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D7--------------------------------- | ||
+ | INT D7 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D7--------------------------------- | ||
+ | INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D8--------------------------------- | ||
+ | INT D8 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D8--------------------------------- | ||
+ | INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------D9--------------------------------- | ||
+ | INT D9 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------D9--------------------------------- | ||
+ | INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------DA--------------------------------- | ||
+ | INT DA - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------DA--------------------------------- | ||
+ | INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------DB--------------------------------- | ||
+ | INT DB - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------DB--------------------------------- | ||
+ | INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------DC--------------------------------- | ||
+ | INT DC - PC/370 v4.1- - API | ||
+ | SeeAlso: INT 60" | ||
+ | ----------DC--------------------------------- | ||
+ | INT DC - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------DC--------------------------------- | ||
+ | INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES | ||
+ | ----------DD--------------------------------- | ||
+ | INT DD - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------DD--------------------------------- | ||
+ | INT 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=05h | ||
+ | ----------DE--------------------------------- | ||
+ | INT DE - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------DE--------------------------------- | ||
+ | INT DE - APL*PLUS/PC - ??? | ||
+ | Note: | ||
+ | ----------DF--------------------------------- | ||
+ | INT DF - Victor 9000 - SuperBIOS | ||
+ | ----------DF--------------------------------- | ||
+ | INT DF - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------DF--------------------------------- | ||
+ | INT DF - APL*PLUS/PC - SAME AS INT 10 | ||
+ | SeeAlso: INT 10 | ||
+ | ----------E0--------------------------------- | ||
+ | INT E0 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E0--------------------------------- | ||
+ | INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION | ||
+ | SeeAlso: INT CF" | ||
+ | ----------E0--------------------------------- | ||
+ | INT E0 - VIRUS - " | ||
+ | Note: | ||
+ | SeeAlso: INT 70" | ||
+ | ----------E0--------------------------------- | ||
+ | INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS | ||
+ | CL = function number | ||
+ | DS,DX = parameters | ||
+ | Return: as appropriate for function | ||
+ | Note: | ||
+ | SeeAlso: INT 21/AX=4459h | ||
+ | |||
+ | Values for function number: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 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 | ||
+ | ----------E0----CL03------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = 03h | ||
+ | Return: AL = ASCII character | ||
+ | Notes: | ||
+ | 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/ | ||
+ | ----------E0----CL04------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = 04h | ||
+ | DL = ASCII character | ||
+ | Return: | ||
+ | Note: if another process owns AUX, this call blocks until the device becomes | ||
+ | available | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------E0----CL07------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = 07h | ||
+ | Return: AL = status | ||
+ | 00h not ready | ||
+ | FFh character available | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CL08------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = 08h | ||
+ | Return: AL = status | ||
+ | 00h not ready | ||
+ | FFh ready for output | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CL59------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 59h | ||
+ | DX = size in bytes | ||
+ | Return: AX = FFFFh if failed | ||
+ | AX = other if successful | ||
+ | ES:BX -> reserved memory | ||
+ | ----------E0----CL86------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 86h | ||
+ | DS:DX -> queue descriptor (see below) | ||
+ | Return: AX = status | ||
+ | 0000h success | ||
+ | FFFFh failure | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/CL=87h | ||
+ | |||
+ | Format of queue descriptor: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------E0----CL87------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 87h | ||
+ | DS:DX -> queue parameter block (see below) | ||
+ | Return: AX = status | ||
+ | 0000h success | ||
+ | FFFFh failure | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/ | ||
+ | |||
+ | Format of queue parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------E0----CL89------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 89h | ||
+ | DS:DX -> queue parameter block (see INT E0/CL=87h) | ||
+ | Return: AX = status | ||
+ | 0000h success | ||
+ | FFFFh failure | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CL8A------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 8Ah | ||
+ | DS:DX -> queue parameter block (see INT E0/CL=87h) | ||
+ | Return: AX = status | ||
+ | 0000h success | ||
+ | FFFFh failure | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CL8B------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 8Bh | ||
+ | DS:DX -> queue parameter block (see INT E0/CL=87h) | ||
+ | Return: AX = status | ||
+ | 0000h success | ||
+ | FFFFh failure | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CL8B------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 8Bh | ||
+ | DS:DX -> queue parameter block (see INT E0/CL=87h) | ||
+ | Return: AX = status | ||
+ | 0000h success | ||
+ | FFFFh failure | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CL8E------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | 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 E0/CL=91h | ||
+ | ----------E0----CL91------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | 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 E0/CL=8Eh | ||
+ | ----------E0----CL93------------------------- | ||
+ | INT E0 - ConcCP/M,DR Multiuser DOS - " | ||
+ | CL = 93h | ||
+ | Return: AX = status | ||
+ | 0000h successfully detached | ||
+ | FFFFh detach failed | ||
+ | ----------E0----CLA5------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = A5h | ||
+ | Desc: | ||
+ | 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 E0/ | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CLA6------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = A6h | ||
+ | Return: AX = status | ||
+ | 0000h successfully detached | ||
+ | FFFFh detach failed | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CLA7------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = A7h | ||
+ | Return: AX = status | ||
+ | 0000h attached | ||
+ | FFFFh unable to attach | ||
+ | Desc: | ||
+ | available | ||
+ | Note: does not block if the device is already in use | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CLA8------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = A8h | ||
+ | DL = auxiliary device number | ||
+ | Return: AX = status | ||
+ | 0000h successful | ||
+ | FFFFh failed | ||
+ | CX = error code | ||
+ | SeeAlso: INT E0/ | ||
+ | ----------E0----CLA9------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | CL = A9h | ||
+ | Return: AL = current default auxiliary device number | ||
+ | SeeAlso: INT E0/CL=A8h | ||
+ | ----------E0----CLAC------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | 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 E0/ | ||
+ | |||
+ | Format of character control block (CHCB): | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | ----------E0----CLAD------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | 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 E0/ | ||
+ | ----------E0----CLB0------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | 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 E0/ | ||
+ | |||
+ | Format of AUX device parameter block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 00h none | ||
+ | 01h odd | ||
+ | 02h none | ||
+ | 03h even | ||
+ | 04h stick parity bit | ||
+ | FFh don't change/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | FFh unknown/ | ||
+ | | ||
+ | | ||
+ | |||
+ | 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 | ||
+ | ----------E0----CLB1------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | 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 E0/ | ||
+ | |||
+ | Format of AUX device control block: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------E0----CLB2------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | 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 E0/ | ||
+ | ----------E0----CLBD------------------------- | ||
+ | INT E0 - DR Multiuser DOS - " | ||
+ | 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 | ||
+ | ----------E1--------------------------------- | ||
+ | INT E1 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E1--------------------------------- | ||
+ | INT E1 - PC Cluster Disk Server Information | ||
+ | SeeAlso: INT E2 | ||
+ | ----------E2--------------------------------- | ||
+ | INT E2 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E2--------------------------------- | ||
+ | INT E2 - PC Cluster Program | ||
+ | ----------E3--------------------------------- | ||
+ | INT E3 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E40005----------------------------- | ||
+ | INT E4 - Logitech Modula v2.0 - MonitorEntry | ||
+ | AX = 0005h | ||
+ | BX = priority | ||
+ | SeeAlso: AX=0006h | ||
+ | ----------E40006----------------------------- | ||
+ | INT E4 - Logitech Modula v2.0 - MonitorExit | ||
+ | AX = 0006h | ||
+ | SeeAlso: AX=0005h | ||
+ | ----------E4--------------------------------- | ||
+ | INT E4 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E5--------------------------------- | ||
+ | INT E5 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E6--------------------------------- | ||
+ | INT E6 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E7--------------------------------- | ||
+ | INT E7 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E8--------------------------------- | ||
+ | INT E8 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------E9--------------------------------- | ||
+ | INT E9 - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------EA--------------------------------- | ||
+ | INT EA - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------EB--------------------------------- | ||
+ | INT EB - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------EC--------------------------------- | ||
+ | INT EC - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------EC--------------------------------- | ||
+ | INT EC - used by Alloy NTNX | ||
+ | ----------EC--------------------------------- | ||
+ | INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR | ||
+ | AX = function number (0000h to 0140h) | ||
+ | STACK: | ||
+ | any arguments required by function | ||
+ | Return: STACK: | ||
+ | Notes: this is the interface from applications to the runtime system by Exact | ||
+ | Automatisering B.V. of the Netherlands. | ||
+ | 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 | ||
+ | ----------ED--------------------------------- | ||
+ | INT ED - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------EE--------------------------------- | ||
+ | INT EE - IBM ROM BASIC - used while in interpreter | ||
+ | Notes: | ||
+ | BASIC.COM/ | ||
+ | ----------EF--------------------------------- | ||
+ | INT EF - BASIC - ORIGINAL INT 09 VECTOR | ||
+ | Note: | ||
+ | SeeAlso: INT F0" | ||
+ | ----------EF----CX0473----------------------- | ||
+ | INT EF - GEM - INTERFACE | ||
+ | CX = 0473h | ||
+ | DS:DX -> GEM parameter block | ||
+ | ----------F0--------------------------------- | ||
+ | INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR | ||
+ | Note: | ||
+ | SeeAlso: INT EF" | ||
+ | ----------F1--------------------------------- | ||
+ | INT F1 - reserved for user interrupt | ||
+ | ----------F1--------------------------------- | ||
+ | INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH | ||
+ | DS:BX -> ' | ||
+ | Note: | ||
+ | ----------F1--------------------------------- | ||
+ | INT F1 - Andy C. McGuire SPEECH.COM/ | ||
+ | SeeAlso: INT F2" | ||
+ | ----------F1--------------------------------- | ||
+ | INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS | ||
+ | Return: AX:BX -> data area | ||
+ | Notes: | ||
+ | and COM2 in software | ||
+ | The installation check consists of testing for the following signature | ||
+ | immediately preceding the interrupt handler: " | ||
+ | either " | ||
+ | version number | ||
+ | ----------F2--------------------------------- | ||
+ | INT F2 - reserved for user interrupt | ||
+ | ----------F2--------------------------------- | ||
+ | INT F2 - Andy C. McGuire SPEECH.COM/ | ||
+ | SeeAlso: INT F1" | ||
+ | ----------F2--------------------------------- | ||
+ | INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer' | ||
+ | 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: ??? | ||
+ | Note: | ||
+ | SeeAlso: INT F3" | ||
+ | ----------F3--------------------------------- | ||
+ | INT F3 - reserved for user interrupt | ||
+ | ----------F3--------------------------------- | ||
+ | INT 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=FBFBh | ||
+ | ----------F3--------------------------------- | ||
+ | INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR | ||
+ | Note: | ||
+ | SeeAlso: INT F2" | ||
+ | ----------F4--------------------------------- | ||
+ | INT F4 - reserved for user interrupt | ||
+ | ----------F4--------------------------------- | ||
+ | INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------F5--------------------------------- | ||
+ | INT F5 - reserved for user interrupt | ||
+ | ----------F5--------------------------------- | ||
+ | INT F5 - DoubleDOS - ??? | ||
+ | ----------F6--------------------------------- | ||
+ | INT F6 - reserved for user interrupt | ||
+ | ----------F6--------------------------------- | ||
+ | INT F6 - DoubleDOS - ??? | ||
+ | ----------F7--------------------------------- | ||
+ | INT F7 - reserved for user interrupt | ||
+ | ----------F7--------------------------------- | ||
+ | INT F7 - DoubleDOS - ??? | ||
+ | ----------F700------------------------------- | ||
+ | INT 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: AH=01h | ||
+ | ----------F701------------------------------- | ||
+ | INT 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: AH=00h, | ||
+ | ----------F702------------------------------- | ||
+ | INT F7 - FSBBS 2.0 - GET ACCOUNT NAME | ||
+ | AH = 02h | ||
+ | Return: DS:DX -> 8-character blank-padded account name | ||
+ | SeeAlso: AH=01h | ||
+ | ----------F703------------------------------- | ||
+ | INT 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 | ||
+ | ----------F704------------------------------- | ||
+ | INT 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 | ||
+ | ----------F705------------------------------- | ||
+ | INT 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: AH=06h | ||
+ | ----------F706------------------------------- | ||
+ | INT 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: AH=05h, | ||
+ | ----------F707------------------------------- | ||
+ | INT 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: AH=06h | ||
+ | ----------F8--------------------------------- | ||
+ | INT F8 - TANDY??? - 100 HZ INTERRUPT | ||
+ | SeeAlso: INT FA" | ||
+ | ----------F8--------------------------------- | ||
+ | INT F8 - DoubleDOS - ??? | ||
+ | ----------F9--------------------------------- | ||
+ | INT F9 - reserved for user interrupt | ||
+ | ----------F9--------------------------------- | ||
+ | INT F9 - DoubleDOS - ??? | ||
+ | ----------FA--------------------------------- | ||
+ | INT FA - TANDY??? - SERIAL PORT USART INTERRUPT | ||
+ | SeeAlso: INT F8"100 HZ", | ||
+ | ----------FA--------------------------------- | ||
+ | INT FA - DoubleDOS - TURN OFF TIMESHARING | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------FB--------------------------------- | ||
+ | INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT | ||
+ | SeeAlso: INT FA" | ||
+ | ----------FB--------------------------------- | ||
+ | INT FB - DoubleDOS - TURN ON TIMESHARING | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------FC--------------------------------- | ||
+ | INT FC - reserved for user interrupt | ||
+ | ----------FC--------------------------------- | ||
+ | INT 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/ | ||
+ | ----------FD--------------------------------- | ||
+ | INT FD - reserved for user interrupt | ||
+ | ----------FD--------------------------------- | ||
+ | INT FD - DoubleDOS - ??? | ||
+ | ----------FE--------------------------------- | ||
+ | INT FE - AT/ | ||
+ | SeeAlso: INT FF" | ||
+ | ----------FE--------------------------------- | ||
+ | INT FE - DoubleDOS - GIVE UP TIME | ||
+ | AL = number of 55ms time slices to give away | ||
+ | SeeAlso: INT 21/ | ||
+ | ----------FE--------------------------------- | ||
+ | INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER | ||
+ | SeeAlso: INT 3F | ||
+ | ----------FF--------------------------------- | ||
+ | INT FF - AT/ | ||
+ | SeeAlso: INT FE" | ||
+ | ----------FF--------------------------------- | ||
+ | INT FF - Z100 - WARM BOOT | ||
+ | SeeAlso: INT 40" | ||
+ | --------------------------------------------- | ||