📄 interrup.k
字号:
03h get ??? data
Return: AX = (CMOS 2Dh and CMOS 2Eh)
BX = FFFFh
other does nothing
Note: function 03h is called by ROMSHELL.COM; if BX != 0, then the ES:DI from
INT 2F/AX=1982h points at valid data
SeeAlso: INT 2F/AX=1982h
--------D-2C---------------------------------
INT 2C - DOS 2+ - RESERVED
Note: this vector is not used in DOS versions <= 6.00, and points at an IRET
--------O-2C---------------------------------
INT 2C - STARLITE architecture - KERNEL API
Note: STARLITE is an architecture by General Software for a series of MS-DOS
compatible operating systems (OEM DOS, NETWORK DOS, and SMP DOS) to
be released in 1991. The interrupt number is subject to change
before the actual release.
--------m-2C---------------------------------
INT 2C R - Cloaking - CALL PROTECTED-MODE PASSALONG CHAIN
Notes: when this interrupt is invoked in V86 mode, RM386 will invoke the first
in a chain of protected-mode handlers, and will only pass execution
to the V86-mode INT 2C handler if none of the handlers in the
passalong chain handle the call instead. This is the method by which
the real-mode stub of a cloaked application communicates with the
protected-mode portion.
the cloaking host calls the passalong chain with EAX=58494E33h ('WIN3')
when MS Windows starts up and with EAX=334E4958h ('3NIW') when
Windows shuts down; between these two broadcasts, the additional
Windows-only Cloaking services are available
this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
memory manager included in Helix Software's Netroom
SeeAlso: INT 2C/AX=0009h,INT 2F/AX=4310h"Cloaking"
--------m-2C0000-----------------------------
INT 2C P - Cloaking - ALLOCATE GDT SELECTOR
AX = 0000h
EBX = base address
CL = access mode byte
CH = extended access mode byte (omit limit field)
EDX = segment limit
Return: CF clear if successful
AX = selector
CF set on error
AX = error code (see #02556)
Notes: this INT 2C interface is used by Netroom's DPMI.EXE v3.00
to access extended memory, set the base address to the desired
physical address plus 400000h (4M)
this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
memory manager included in Helix Software's Netroom
SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0004h,AX=0005h,INT 31/AH=57h,#00501
(Table 02556)
Values for Cloaking error code:
0001h no more selectors
0002h not a GDT ring 0 selector
0003h invalid selector (out of range, not user selector)
0004h selector not allocated
--------m-2C0001-----------------------------
INT 2C P - Cloaking - FREE GDT SELECTOR
AX = 0001h
SI = selector
Return: CF clear if successful
CF set on error
AX = error code (see #02556)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0000h,INT 2F/AX=4310h"Cloaking"
--------m-2C0002-----------------------------
INT 2C P - Cloaking - SET SEGMENT BASE ADDRESS
AX = 0002h
SI = selector
EBX = new physical base addres
Return: CF clear if successful
CF set on error
AX = error code (see #02556)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 31/AX=0007h,#00501
--------m-2C0003-----------------------------
INT 2C P - Cloaking - SET SEGMENT LIMIT
AX = 0003h
SI = selector
EBX = new limit
Return: CF clear if successful
CF set on error
AX = error code (see #02556)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 31/AX=0008h
--------m-2C0004-----------------------------
INT 2C P - Cloaking - SET SEGMENT ACCESS MODE
AX = 0004h
SI = selector
CL = new access mode byte (see #00502)
Return: CF clear if successful
CF set on error
AX = error code (see #02556)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0005h,INT 31/AX=0009h
--------m-2C0005-----------------------------
INT 2C P - Cloaking - SET SEGMENT EXTENDED ACCESS MODE
AX = 0005h
SI = selector
CL = new extended access mode byte (limit field ignored) (see #02557)
Return: CF clear if successful
CF set on error
AX = error code (see #02556)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0004h,INT 31/AX=0009h
Bitfields for extended access mode byte:
Bit(s) Description (Table 02557)
7 4K granularity instead of byte granularity
6 32-bit code segment
5 reserved (0)
4 segment available to system
SeeAlso: #00505
--------m-2C0006-----------------------------
INT 2C P - Cloaking - GET PROTECTED-MODE INTERRUPT VECTOR
AX = 0006h
CL = vector (00h-7Fh)
Return: CF clear
DX:EBX -> current interrupt handler
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0007h,INT 31/AX=0204h
--------m-2C0007-----------------------------
INT 2C P - Cloaking - SET PROTECTED-MODE INTERRUPT VECTOR
AX = 0007h
CL = vector (00h-7Fh)
DX:EBX -> interrupt handler
Return: CF clear
Notes: this function was first introduced with RM386 (RAM-MAN/386) v6.00
the IDT entry's type remains unchanged
SeeAlso: AX=0006h,INT 31/AX=0205h
--------m-2C0008-----------------------------
INT 2C P - Cloaking - GET PASSALONG ADDRESS
AX = 0008h
Return: CF clear
DX:EBX = current passalong address
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0009h,AX=002Ch,INT 2F/AX=4310h"Cloaking"
--------m-2C0009-----------------------------
INT 2C P - Cloaking - SET PASSALONG ADDRESS
AX = 0009h
DX:EBX = new value for passalong address (see #02558)
Return: CF clear
Notes: when an INT 2C instruction is executed in V86 mode, the Cloaking host
calls the passalong address. The handler should check whether the
upcall is of interest to it, and if not it should jump to the old
passalong address (retrieved with AX=0008h before the handler was
installed). The final handler should return with CF clear to cause
the interrupt to be reflected back to V86 mode if none of the
passalong handlers is triggered
this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=0008h,AX=002Dh,INT 2C"PASSALONG CHAIN"
(Table 02558)
Values Cloaking passalong address is called with:
EAX = CS:IP of byte following INT 2C instruction invoking passalong
SS:EBX -> caller registers (see #02559)
CF clear
others undefined
Return: CF clear: pass along to V86-mode INT 2C handler
CF set: return immediately to V86 mode
Format of Cloaking caller registers:
Offset Size Description (Table 02559)
00h DWORD EDI
04h DWORD ESI
08h DWORD EBP
0Ch DWORD reserved (ESP from PUSHAD instruction)
10h DWORD EBX
14h DWORD EDX
18h DWORD ECX
1Ch DWORD EAX
20h DWORD error code
24h DWORD EIP
28h WORD CS
2Ah WORD padding
2Ch DWORD EFLAGS
30h DWORD ESP
34h WORD SS
36h WORD padding
--remainder not available if protected-mode ring3 trap---
38h WORD ES
3Ah WORD padding
3Ch WORD DS
3Eh WORD padding
40h WORD FS
42h WORD padding
44h WORD GS
46h WORD padding
--------m-2C000A-----------------------------
INT 2C P - Cloaking - GET BASE ADDRESS OF GDT SELECTOR
AX = 000Ah
SI = selector
Return: CF clear if successful
EBX = segment base address
CF set on error
AX = error code (see #02556)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
memory manager included in Helix Software's Netroom
SeeAlso: AX=0000h,AX=0002h,AX=000Bh
--------m-2C000B-----------------------------
INT 2C P - Cloaking - GET SELECTOR LIMIT
AX = 000Bh
SI = selector
Return: CF clear if successful
EBX = segment base address
CF set on error
AX = error code (see #02556)
Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
SeeAlso: AX=000Ah,INT 2F/AX=4310h"Cloaking"
--------m-2C---------------------------------
INT 2C P - RM386 v6.00 - CLOAKING - RESERVED FOR CLOAKED BIOS USE UNDER WINDOWS
AX = function (000Ch-001Fh)
--------m-2C000F-----------------------------
INT 2C P - Cloaking v1.01 - "Simulate_Shell_Event"
AX = 000Fh
ECX = event code (see #02560)
DX = subfunction for event
EDX high word = boost value (see #02561)
SI:EDI -> completion procedure
Return: CF clear if successful (event scheduled)
CF set on error
Note: this function is only available while MS Windows is running
SeeAlso: AX=0011h,AX=0012h,INT 2F/AX=1605h,INT 2F/AX=4310h"Cloaking"
(Table 02560)
Values for Cloaking shell event code:
0414h Hot key event
subevent 0000h: Alt-Space
subevent 0001h: Alt-Enter
subevent 0002h: Dir-VM
0415h Switch context
subevent 0000h for DOS VM context, nonzero for System VM context
0416h Clipboard event
0417h Termination event
subevent 0000h for normal termination, nonzero for error
0418h Display message
subevent 0000h for normal message, nonzero for system model ASAP
0419h Crash
041Ah Paste complete
subevent 0000h: normal
subevent 0001h: cancelled by user
subevent 0002h: cancelled
041Bh Contention event
041Ch Screen switch
subevent 0000h: forward
subevent 0001h: back
041Dh Filesystem change
041Eh Check Focus
041Fh Panic
Bitfields for boost value:
Bit(s) Description (Table 02561)
0 boost system VM until focus changes
1 boost system VM on Switcher screen
2 boost system VM until response
3 boost system VM during clipboard activity
4 boost system VM during print screen
5 boost system VM during update
--------m-2C0011-----------------------------
INT 2C P - Cloaking v1.01 - "Switch_VMs_and_Call_back"
AX = 0011h
EBX = handle of VM to be made active
SI:EDI -> 32-bit FAR completion procedure
Return: CF clear if successful (scheduled)
CF set on error
Notes: this function is only available while MS Windows is running
the completion procedure is called with CF clear if the specified
VM has been made active, or with CF set on error
SeeAlso: AX=000Fh,AX=0012h
--------m-2C0012-----------------------------
INT 2C P - Cloaking v1.01 - "Query_Current_VM"
AX = 0012h
Return: CF clear
EBX = handle of active VM
ESI = handle of system VM
ECX = VM status flags (see #02562)
EDX = shell flags (see #02563)
Note: this function is only available while MS Windows is running in enhanced
mode
SeeAlso: AX=000Fh,AX=0011h,AX=0013h
Bitfields for VM status flags:
Bit(s) Description (Table 02562)
0 in exclusive mode
1 runs in background
2 being created
3 suspended
4 not executable
5 executing in protected mode
6 contains PM application
7 32-bit PM application
8 called from VxD
9 high priority background
10 blocked on semaphore
11 awakening
12 has pageable V86
13 has locked V86
14 is scheduled
15 idle
16 closing
Bitfields for shell flags:
Bit(s) Description (Table 02563)
2 windowed
5 Alt-Tab reserved
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"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -