📄 interrup.k
字号:
6 Alt-Esc reserved
7 Alt-Space reserved
8 Alt-PrtSc reserved
9 Alt-Enter reserved
10 Alt-PrtSc reserved
11 PrtSc reserved
12 polling enabled
13 no HMA
14 has shortcut key
15 locked EMS handles
16 locked XMS handles
17 fast paste enabled
18 locked V86 memory
30 close-on-exit enabled
--------m-2C0013-----------------------------
INT 2C P - Cloaking v1.01 - "Issue_System_Modal_Message"
AX = 0013h
EDX = message box flags (see #02564)
DS:ECX -> ASCIZ message text
DS:EDI -> ASCIZ caption
Return: CF clear
EAX = response code
Note: this function is only available while MS Windows is running in enhanced
mode
SeeAlso: AX=000Fh,AX=0012h
Bitfields for message box flags:
Bit(s) Description (Table 02564)
3-0 response codes (see #02565)
7-4 icon codes
1 = Warning hand
2 = exclamation mark
4 = asterisk
9-8 default response (0 = first button, 1 = second, 2 = third)
12 message is system model
15 don't change focus
29 hang with interrupts enabled
30 do not window
31 execute ASAP
(Table 02565)
Values for response codes:
00h OK
01h OK, Cancel
02h Abort, Retry, Ignore
03h Yes, No, Cancel
04h Yes, No
05h Retry, Cancel
--------m-2C001D-----------------------------
INT 2C P - Cloaking v1.01 - GET INT 2C API HANDLER ENTRY POINT
AX = 001Dh
Return: CF clear
DX:EBX = selector:offset of Cloaking host INT 2C handler
Desc: get the Cloaking host's entry point to bypass any other programs
which may have hooked INT 2C in protected mode
Note: the returned entry point must be called with a simulated INT, i.e.
a PUSHD must precede the far call to the handler
SeeAlso: INT 2F/AX=4310h"Cloaking"
--------m-2C001E-----------------------------
INT 2C P - Cloaking v1.01 - CLEAR CRITICAL SECTION
AX = 001Eh
Return: CF clear
Desc: allow MS Windows to switch to another VM after having prevented it
by invoking a critical section
SeeAlso: AX=001Fh,INT 15/AX=101Ch,INT 2F/AX=1682h
--------m-2C001F-----------------------------
INT 2C P - Cloaking v1.01 - SET CRITICAL SECTION
AX = 001Fh
Return: CF clear
Desc: prevent MS Windows from switching to another VM
SeeAlso: AX=001Eh,INT 15/AX=101Bh,INT 2F/AX=1681h
--------m-2C0020-----------------------------
INT 2C P - Cloaking - GET SIZE OF PROTECTED-MODE STATE
AX = 0020h
Return: EAX = number of bytes required for storing state
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0021h,AX=0022h
--------m-2C0021-----------------------------
INT 2C P - Cloaking - SAVE PROTECTED-MODE STATE
AX = 0021h
ES:EDI -> buffer for protected-mode state
Return: CF clear
buffer filled
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0020h,AX=0022h
--------m-2C0022-----------------------------
INT 2C P - Cloaking - RESTORE PROTECTED-MODE STATE
AX = 0022h
DS:ESI -> buffer containing previously-saved protected-mode state
Return: CF clear if successful
state restored
CF set on error (invalid buffer contents)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0020h,AX=0021h
--------m-2C0023-----------------------------
INT 2C P - Cloaking - ISSUE PROTECTED-MODE XMS CALL
AX = 0023h
Notes: not currently implemented--NOP in RM386 v6.00
this function was first introduced with RM386 (RAM-MAN/386) v6.00
--------m-2C0024-----------------------------
INT 2C P - Cloaking - SET V86-MODE STACK
AX = 0024h
DX:EBX = new value for V86-mode SS:ESP
Return: nothing
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
--------m-2C0025-----------------------------
INT 2C P - Cloaking - CALL V86-MODE PROCEDURE
AX = 0025h
DS:EBX -> client register structure (see #02559)
Return: CF clear if successful
client register structure updated
CF set if no more nested procedure call space available
Notes: this call uses the V86-mode stack supplied in the client structure, and
calls the routine specified by CS:IP in the client structure
this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0026h,AX=0027h,INT 31/AX=0301h
--------m-2C0026-----------------------------
INT 2C P - Cloaking - CALL V86-MODE INTERRUPT HANDLER
AX = 0026h
DS:EBX -> client register structure (see #02559)
CX = interrupt number
Return: CF clear if successful
client register structure updated
CF set if no more nested procedure call space available
Notes: this call uses the V86-mode stack supplied in the client structure
this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0025h,AX=0027h,INT 31/AX=0300h
--------m-2C0027-----------------------------
INT 2C P - Cloaking - CHAIN TO V86-MODE INTERRUPT HANDLER
AX = 0027h
DS:EBX -> client register structure (see #02559)
Return: CF clear if successful
client register structure updated
CF set if no more nested procedure call space available
Notes: this call uses the V86-mode stack supplied in the client structure,
and jumps to the address specified by CS:IP in the client structure
this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0025h,AX=0026h
--------m-2C0028-----------------------------
INT 2C P - Cloaking - GET ESP0 FROM TSS
AX = 0028h
Return: CF clear
EAX = TSS's ESP0
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
memory manager included in Helix Software's Netroom
--------m-2C0029-----------------------------
INT 2C P - Cloaking - SET SECONDARY STACK
AX = 0029h
DX:EBX = new value for SS:ESP of ring 3 secondary stack
Return: CF clear
Desc: inform RM386 of the ring 3 interrupt stack location
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
--------m-2C002A-----------------------------
INT 2C P - Cloaking - SET 8259 IRQ BASE VECTORS
AX = 002Ah
BL = base vector of master interrupt controller
CL = base vector of slave interrupt controller
Notes: this call merely informs RM386 that the caller has changed the
interrupt mappings
this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: INT 67/AX=DE0Bh
--------m-2C002BCH81-------------------------
INT 2C P - Cloaking - PROTECTED-MODE VIRTUAL DMA SERVICES
AX = 002Bh
CH = 81h
CL = subfunction (02h-0Ch)
other registers as appropriate for subfunction
Return: varies by function
CF set on error
Notes: these functions are equivalent to the INT 4B/AX=81xxh subfunctions
with the same numbers
this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: INT 4B/AX=8102h,INT 4B/AX=810Ch
--------m-2C002C-----------------------------
INT 2C P - Cloaking - GET PORT-TRAPPING PASSALONG
AX = 002Ch
Return: CF clear
DX:EBX = current I/O trapping passalong address
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0008h,AX=002Dh
--------m-2C002D-----------------------------
INT 2C P - Cloaking - SET PORT-TRAPPING PASSALONG
AX = 002Dh
DX:EBX = new I/O trapping passalong address (see #02566)
Return: CF clear
Notes: RM386 calls the passalong address whenever an access to a monitored
I/O port is attempted; the handler should check whether it is a port
that it is interested in, and if not call the previous passalong
address (which was retrieved with AX=002Ch before installing the
new handler)
this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0009h,AX=002Ch,INT 67/AX=5DEAh
(Table 02566)
Values Cloaking port-trapping passalong address is called with:
EAX = CS:IP of faulting instruction (unless executing in protected-mode
ring 3)
SS:EBX -> caller register structure (see #02559)
check EFLAGS V86-mode bit for type
CX = first two bytes of I/O instruction which was trapped
DX = port to which I/O is being performed
CF clear
Return: CF clear if RM386 should perform I/O operation
CF set if I/O should be skipped
Note: RM386 skips the trapped I/O instruction, so the passalong handler
should not modify the client CS:EIP
--------m-2C002E-----------------------------
INT 2C P - Cloaking - TRAP I/O PORT
AX = 002Eh
DX = port number to trap
Return: CF clear if successful
CF set on error (port out of range or reserved)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=002Fh,AX=0030h
--------m-2C002F-----------------------------
INT 2C PU - Cloaking - UNTRAP I/O PORT
AX = 002Fh
DX = port number for which to cancel trapping
Return: CF clear if successful
CF set on error (port out of range or reserved)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=002Eh,AX=0030h
--------m-2C0030-----------------------------
INT 2C PU - Cloaking - GET TRAPPING STATE OF SPECIFIED PORT
AX = 0030h
DX = port number
Return: CF clear if successful
BX = current state (0000h not trapped, 0001h trapped)
CF set on error (port out of range or reserved)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=002Eh,AX=002Fh
--------m-2C0031-----------------------------
INT 2C PU - RM386 v6.00 - BUG
AX = 0031h
Program: RM386 (RAM-MAN/386) is the memory manager included in Helix
Software's Netroom
Note: due to a fencepost error, RM386 v6.00 will branch unpredictably if
invoked with this function
--------m-2C0031-----------------------------
INT 2C P - Cloaking v1.01 - ALLOCATE V86 CALLBACK
AX = 0031h
DX:EBX = CS:EIP of protected-mode routine to be invoked by callback
Return: CF clear if successful
EBX = CS:IP of V86-mode callback handler
CF set on error
SeeAlso: AX=0032h
--------m-2C0032-----------------------------
INT 2C P - Cloaking v1.01 - FREE V86 CALLBACK
AX = 0032h
EBX = CS:IP of V86-mode callback handler
Return: CF clear if successful
CF set on error
AX = error code
0005h invalid callback address
0006h callback already free
SeeAlso: AX=0032h
--------m-2C0033-----------------------------
INT 2C P - Cloaking v1.01 - REGISTER CLOAKING CLIENT
AX = 0033h
DS:EDX -> client registration structure (see #02567)
Return: CF clear if successful
CF set on error (linked list corrupt)
SeeAlso: AX=0034h,#02778 at INT 2F/AX=4310h"Cloaking"
Format of client registration structure:
Offset Size Description (Table 02567)
00h PWORD link to next structure
06h PWORD link to previous structure
0Ch 2 BYTEs client version (major, minor)
0Eh 20 BYTEs client name
22h DWORD physical address of client start
26h DWORD client's total size in bytes
Note: the link area should not be modified once the structure has been
used for the registration call
--------m-2C0034-----------------------------
INT 2C P - Cloaking v1.01 - UNREGISTER CLOAKING CLIENT
AX = 0034h
DS:EDX -> client registration structure (see #02567)
Return: CF clear if successful
CF set on error (linked list corrupt)
Note: the client must unregister before freeing the XMS block containing
its registration structure(s)
SeeAlso: AX=0033h,#02778 at INT 2F/AX=4310h"Cloaking"
--------D-2D---------------------------------
INT 2D - DOS 2+ - RESERVED
Note: this vector is not used in DOS versions <= 6.00, and points at an IRET
BUG: RM386 v6.00-6.02 (as distributed with Helix's Netroom v3.x) contains
a stack bug in its protected-mode INT 2D handler which causes a crash
when INT 2D is invoked from V86 mode
--------t-2D---------------------------------
INT 2D - ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.6]
AH = multiplex number
AL = function
00h installation check
01h get private entry point
02h uninstall
03h request popup
04h determine chained interrupts
05h get hotkey list
06h get device-driver information
07h-0Fh reserved for future enhancements
Return: AL = 00h (not implemented)
other application-dependent
other registers vary by function (also see individual entries below)
Return: varies by function
Notes: programs should not use fixed multiplex numbers; rather, a program
should scan all multiplex numbers from 00h to FFh, remembering the
first unused multiplex in case the program is not yet installed.
For multiplex numbers which are in use, the program should compare
the first 16 bytes of the signature string to determine whether it
is already installed on that multiplex number. If not previously
installed, it should use the first free multiplex number.
functions other than 00h are not valid unless a program is installed
on the selected multiplex number
to be considered fully compliant with version 3.6 of the specification,
programs must implement at least functions 00h, 02h (no resident
uninstall code required), and 04h (return value 04h). TSRs that
provide hotkeys with which the user can activate them must also
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -