📄 interrup.l
字号:
01h reduced capability driver
2Bh full capability driver (before v4.00)
Program: ANSIPLUS.SYS is a CON device driver by Kristofer Sweger which
replaces the normal ANSI.SYS with a more powerful version having
many additional features
Notes: ANSIPLUS also identifies itself as ANSI.SYS if BX,CX, or DX differ
from the magic values above
an additional installation check is to test for the signature
"ANSIPLUS" 12 bytes before the INT 29 entry point; the version
number is also available as a four-character ASCII string (e.g.
"4.00") four bytes before the entry point
SeeAlso: AX=1AA5h,AX=1AA6h,AX=1AA7h,AX=1AA8h,AX=1AA9h,AX=1AAAh,AX=D44Fh
--------V-2F1A00BX4156-----------------------
INT 2F - AVATAR.SYS - INSTALLATION CHECK
AX = 1A00h
BX = 4156h ('AV')
CX = 4154h ('AT')
DX = 4152h ('AR')
Return: AL = FFh if installed
CF clear
BX = AVATAR protocol level supported
CX = driver type
0000h AVATAR.SYS
4456h DVAVATAR.COM inside DESQview window
DX = 0016h
Program: AVATAR.SYS is a CON replacement by George Adam Stanislav which
interprets AVATAR command codes in the same way that ANSI interprets
ANSI command codes
Notes: AVATAR also identifies itself as ANSI.SYS if BX, CX, or DX differ from
the magic values
SeeAlso: AX=1A21h,AX=1A3Ch,AX=1A3Fh,AX=1A52h,AX=1A72h,AX=1A7Dh,AX=1AADh"AVATAR"
--------V-2F1A01-----------------------------
INT 2F U - DOS 4.0+ ANSI.SYS internal - GET/SET DISPLAY INFORMATION
AX = 1A01h
CL = function
7Fh for GET
5Fh for SET
DS:DX -> parm block as for INT 21,AX=440Ch,CX=037Fh/035Fh respectively
Return: CF clear if successful
AX destroyed
CF set on error
AX = error code (many non-standard)
Note: presumably this is the DOS IOCTL interface to ANSI.SYS
SeeAlso: AX=1A02h,INT 21/AX=440Ch
--------V-2F1A02-----------------------------
INT 2F U - DOS 4.0+ ANSI.SYS internal - MISCELLANEOUS REQUESTS
AX = 1A02h
DS:DX -> parameter block (see #02735)
Return: CF clear if successful
CF set on error
AX = error code
Note: DOS 5+ chains to previous handler if AL > 02h on call
SeeAlso: AX=1A01h
Format of ANSI.SYS parameter block:
Offset Size Description (Table 02735)
00h BYTE subfunction
00h set/reset interlock
01h get /L flag
01h BYTE interlock state
00h=reset, 01h=set
This interlock prevents some of the ANSI.SYS post-processing
in its hook onto INT 10, AH=00h mode set
02h BYTE (returned)
00h if /L not in effect
01h if /L in effect
--------V-2F1A21-----------------------------
INT 2F - AVATAR.SYS - SET DRIVER STATE
AX = 1A21h (AL='!')
DS:SI -> command string with one or more state characters (see #02736)
CX = length of command string
Return: CF set on error (invalid subfunction)
CF clear if successful
Note: the characters in the state string are interpreted left to right, and
need not be in any particular order
SeeAlso: AX=1A00h/BX=4156h,AX=1A3Fh
(Table 02736)
Values for AVATAR.SYS state characters:
'a' activate driver
'd' disable driver
'f' use fast screen output
'g' always convert gray keys (+ and -) to function keys
'G' never convert gray keys
'l' convert gray keys only when ScrollLock active
's' use slow screen output
't' Tandy 1000 keyboard (not yet implemented)
--------V-2F1A3C-----------------------------
INT 2F U - AVATAR.SYS v0.11 - ???
AX = 1A3Ch
???
Return: CX = 0000h
SeeAlso: AX=1A00h/BX=4156h,AX=1A21h,AX=1A3Eh
--------V-2F1A3E-----------------------------
INT 2F U - AVATAR.SYS v0.11 - ???
AX = 1A3Eh
CL = ???
CH = ???
DL = ???
DH = ???
Return: CL = ???
CH = ???
DL = ???
DH = ???
SeeAlso: AX=1A3Ch,AX=1A3Fh
--------V-2F1A3F-----------------------------
INT 2F - AVATAR.SYS - QUERY DRIVER STATE
AX = 1A3Fh (AL='?')
ES:DI -> buffer
CX = length of buffer in bytes
Return: CF clear
CX = actual size of returned info
Note: the returned information consists of multiple letters whose meanings
are described under AX=1A21h
SeeAlso: AX=1A00h/BX=4156h,AX=1A21h,AX=1A44h
--------S-2F1A42BX4156-----------------------
INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ3 HANDLER
AX = 1A42h
BX = 4156h ('AV')
ES:DI -> FAR handler for serial port using IRQ3
DS = data segment needed by handler
Return: AX = status/return value
0000h if no more room
1A42h if ASD not installed
else handle to use when uninstalling
Notes: the handler need not save/restore registers or signal EOI to the
interrupt controller
the handler should return AX=0000h if the interrupt was meant for it,
and either leave AX unchanged or return a non-zero value otherwise
the most recently installed handler will be called first, continuing
to earlier handlers until one returns AX=0000h
SeeAlso: AX=1A43h,AX=1A62h
--------S-2F1A43BX4156-----------------------
INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ4 HANDLER
AX = 1A43h
BX = 4156h ('AV')
ES:DI -> FAR handler for serial port using IRQ4
DS = data segment needed by handler
Return: AX = status/return value
0000h if no more room
1A43h if ASD not installed
else handle to use when uninstalling
Notes: (see AX=1A42h)
SeeAlso: AX=1A42h,AX=1A63h
--------V-2F1A44BX4156-----------------------
INT 2F - AVATAR.SYS v0.11+ - GET DATA SEGMENT
AX = 1A44h
BX = 4156h ('AV')
Return: AX = 0000h
DS = data segment
CX = size of data segment
Note: AVATAR.SYS calls this function whenever it is invoked. If each
process under a multitasker hooks this function and provides a
separate data segment, AVATAR.SYS becomes fully reentrant.
SeeAlso: AX=1A21h,AX=1A3Fh,AX=1A52h
--------V-2F1A52-----------------------------
INT 2F U - AVATAR.SYS v0.11 - GET ???
AX = 1A52h
CX = size of buffer
ES:DI -> buffer
Return: ??? copied into user buffer
Note: the maximum size of the data which may be copied is returned by
AX=1A72h
SeeAlso: AX=1A53h,AX=1A72h
--------V-2F1A53-----------------------------
INT 2F U - AVATAR.SYS v0.11 - ???
AX = 1A53h
CL = ??? (00h-05h)
???
Return: ???
SeeAlso: AX=1A00h/BX=4156h,AX=1A52h,AX=1A72h
--------S-2F1A62BX4156-----------------------
INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ3 HANDLER
AX = 1A62h
BX = 4156h ('AV')
CX = handle for IRQ routine returned by AX=1A42h
SeeAlso: AX=1A42h,AX=1A63h
--------S-2F1A63BX4156-----------------------
INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ4 HANDLER
AX = 1A63h
BX = 4156h ('AV')
CX = handle for IRQ routine returned by AX=1A43h
SeeAlso: AX=1A43h,AX=1A62h
--------V-2F1A72-----------------------------
INT 2F U - AVATAR.SYS v0.11 - GET ??? SIZE
AX = 1A72h
Return: CX = maximum size of ???
SeeAlso: AX=1A00h/BX=4156h,AX=1A52h,AX=1A7Bh,AX=1AADh"AVATAR"
--------V-2F1A7B-----------------------------
INT 2F U - AVATAR.SYS v0.11 - ???
AX = 1A7Bh
Return: AX = 0000h
CX = 0000h
SeeAlso: AX=1A00h/BX=4156h,AX=1A72h,AX=1A7Dh
--------V-2F1A7D-----------------------------
INT 2F U - AVATAR.SYS v0.11 - ???
AX = 1A7Dh
Return: AX = ???
SeeAlso: AX=1A00h/BX=4156h,AX=1A7Bh
--------V-2F1AA3-----------------------------
INT 2F - ANSIPLUS v4.03+ - GET/SET ANSIPLUS INTERNAL VARIABLES
AX = 1AA3h
BH = function
00h get current/default colors
Return: CH = default colors
CL = current colors
01h set current/default colors
CH = default colors (00h = leave unchanged)
CL = current colors
02h get current subscreen region
Return: BH,BL = true screen rows,columns
CH,CL = top left row,column of region
DH,DL = bottom right row,column of region
03h set subscreen region
CH,CL = top left row,column of region
DH,DL = bottom right row,column of region
04h get driver features (bits 0-31)
Return: DX:CX = current feature bits
05h set driver features (bits 0-31)
DX:CX = feature bits
06h get driver features (bits 32-63)
Return: DX:CX = current feature bits
07h set driver features (bits 32-63)
DX:CX = feature bits
other: reserved for future use
SeeAlso: AX=1AA4h,AX=1AA5h
--------V-2F1AA4-----------------------------
INT 2F - ANSIPLUS v4.02+ - GET/SET ANSIPLUS SMOOTH SCROLLING RATE
AX = 1AA4h
BL = function
00h get scrolling rate
01h set scrolling rate
BH = new minimum scrolling rate in scan lines per retrace
Return: BH = smooth scrolling rate
SeeAlso: AX=1AA3h,AX=1AA5h
--------V-2F1AA5-----------------------------
INT 2F - ANSIPLUS v4.00+ - GET/SET ANSIPLUS CLIPBOARD
AX = 1AA5h
DH = subfunction
00h get clipboard information
01h get clipboard text
02h set clipboard text
03h append text to clipboard
04h clear clipboard
05h paste clipboard to keyboard
ES:BX -> data area for subfunctions 01h, 02h, and 03h
CX = size of data area (maximum size for subfunction 01h, actual size
to add to clipboard for subfunctions 02h and 03h)
Return: AL = status
00h successful
01h unsupported subfunction (reduced capability driver)
02h insufficient space
A5h unsupported function (ANSIPLUS before v4.00)
ES:BX -> ANSIPLUS local clipboard data
CX = number of bytes currently in local clipboard
DX = maximum size of local clipboard
SeeAlso: AX=1A00h/BX=414Eh,AX=1AA4h,AX=1AA6h
--------V-2F1AA6-----------------------------
INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS DRIVER
AX = 1AA6h
BH = function
00h get hooked interrupts
01h set hooked interrupts mask
BL = new interrupts mask (see #02737)
Return: BL = previous interrupts mask (see #02737)
SeeAlso: AX=1A00h/BX=414Eh,AX=1AA7h
Desc: used to temporarily disable any prior copies of ANSIPLUS when a new
copy is installed, such as in a multitasking system like DESQview
Note: only the most-recently loaded copy of ANSIPLUS on the current INT 2F
chain responds to this call
Bitfields for ANSIPLUS hooked interrupts mask:
Bit(s) Description (Table 02737)
0 INT 09 hook disabled
1 INT 10 hook disabled
2 INT 15 hook disabled
3 INT 16 hook disabled
4 INT 1C hook disabled
5 reset all bits when INT 29 called
6 INT 29 hook disabled
7 INT 33, INT 74, or other mouse event hook disabled
--------V-2F1AA7-----------------------------
INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS FEATURES
AX = 1AA7h
BL = function
00h prevent scroll-back saves
01h enable scroll-back saves
02h disable key reprogramming and lock changes by escape sequences
03h enable key reprogramming by escape sequences
04h disable and lock key stacking changes by escape sequences
05h allow key stacking by escape sequences
Return: nothing
SeeAlso: AX=1AA6h
--------V-2F1AA8-----------------------------
INT 2F - ANSIPLUS v3.10+ - GET NEXT ANSIPLUS SCROLLBACK LINE
AX = 1AA8h
Return: AL = status
00h successful
ES:BX -> screen line (character and attribute pairs)
CX = length of line in bytes, 0000h if no more lines or
unsupported video mode
01h unsupported video mode active
02h screen currently scrolled back
03h reduced capability driver
A8h unsupported function (driver before v3.10)
SeeAlso: AX=1A00h/BX=414Eh,AX=1AA9h
--------V-2F1AA9-----------------------------
INT 2F - ANSIPLUS v3.10+ - GET ANSIPLUS SCROLLBACK INFORMATION
AX = 1AA9h
Return: AL = status
00h successful
BX = current number of lines in scrollback buffer
CX = number of bytes in one line
01h unsupported video mode active
02h screen currently scrolled back
03h reduced capability driver
A9h unsupported function (driver before v3.10)
Desc: determine how much data is in the scrollback buffer and initialize
scrollback retrieval to return the first line on the next call to
AX=1AA8h
SeeAlso: AX=1A00h/BX=414Eh,AX=1AA8h
--------V-2F1AAA-----------------------------
INT 2F - ANSIPLUS v3.01+ - GET/SET ANSIPLUS SCREEN SAVER BLANKING TIME
AX = 1AAAh
BX = function
FFFFh to get current blanking time
other to set time
CX = blanking time in clock ticks (0000h-7FFFh)
Return: BX = current blanking time
CX = blanking time when last set
SeeAlso: AX=1A00h/BX=414Eh,AX=1AABh
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -