📄 interrup.l
字号:
10h "Z_DescAlloc" allocate a memory descriptor
11h "Z_DescFree" release a memory descriptor
12h "Z_DescGet" get details on memory descriptor
13h "Z_DescSet" set a memory descriptor
14h "Z_MemDescAlloc" allocate a memory block and its descriptor
15h "Z_MemDescFree" release a memory block and its descriptor
16h "Z_MemDescSizeGet" get size of memory block
17h "Z_MemDescResize" resize a memory block
18h "Z_PageLock" lock a page, with existing contents
19h "Z_PageUnlock" unlock a page
1Ah "Z_PageLockAny" lock a page, contents undefined
1Bh "Z_PageUnlockReuse" unlock page, reuse phsyical memory
1Ch "Z_PageLockNone" lock a page, no physical memory assigned
1Dh "Z_PageUnlockNone" unlock a page, don't reuse physical memory
1Eh "F_CallRealRaw" call real mode (SS:ESP supplied)
1Fh "F_IntRealRaw" perform real-mode interrupt (SS:ESP supplied)
20h "F_CallReal" call real mode with RETF frame
21h "F_IntReal" perform real-mode interrupt
22h "F_PagedCallReal" paged real-mode call
23h "F_PagedIntReal" paged real-mode interrupt
24h "F_CallIretReal" call real mode with IRET frame
25h "F_CallIretRealRaw" call real mode with IRET (SS:ESP supplied)
26h "F_CallProt16" call 16-bit protected-mode code
27h "F_CallProt32" call 32-bit protected-mode code
28h "F_IAddPage" add kernel instance data
29h "Z_PageDomLock" lock page in specific domain, preserve contents
2Ah "Z_PatgeDomUnlock" unlock page in specific domain
2Bh "Z_PageDomLockAny" lock page in specific domain, undef contents
2Ch "Z_PageDomUnlockReuse" unlock page in spec. domain,reuse ph.mem
2Dh "Z_PageDomLockNone" lock page in spec. domain, no phys memory
2Eh "Z_PageDomUnlockNone" unlock page in spec. domain, no phys. mem
2Fh "Z_GateAlloc" allocate a gate
30h "Z_GateFree" release a gate
31h "X_MemFreeGet" get total free memory
32h "X_MemTopGet" get highest memory address
33h "X_MemTotalGet" get total memory size
34h "F_DescRead" ???
35h "F_DescWrite" ???
36h "F_GetStack" ???
37h "F_SetStack" ???
Return: CX = status (most subfunctions)
(E)AX and/or (E)BX contain return values, depending on function
Notes: called by DPMS.EXE and EMM386.EXE
this API is only available if AX=12FFh/BX=0EDCh returns successfully;
because the request is handled on the initial trap to the memory
manager caused by INT instructions, this API must be invoked with
an actual INT 2F instruction instead of some simulation such as a
far call to the address in the interrupt vector table
SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=04h
--------m-2F2780CL04-------------------------
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DOMAINS
AX = 2780h
CL = 04h (module: Domains)
CH = subfunction
00h "F_DAlloc" create new domain
01h "F_DFree" delete a domain
02h "X_DomHandleGetMy" get current domain handle
03h "F_DSet" switch to another domain
04h "Z_HandlerSWInt" install software-interrupt handler
05h "Z_HandlerPageFault" install page-fault handler
06h "Z_HandlerIOEx" install I/O exception handler
07h "Z_HandlerGenEx" install general exception handler
08h "Z_HandlerHWInt" install hardware interrupt handler
09h "Z_IOBitmapGet" get current domain's I/O bitmap entry
0Ah "Z_IOBitmapSet" set current domain's I/O bitmap entry
0Bh "Z_IOBitmapDomGet" get domain's I/O bitmap entry
0Ch "Z_IOBitmapDomSet" set domain's I/O bitmap entry
0Dh "Z_DomMemRead" read memory in another domain
0Eh "Z_DomMemWrite" write memory in another domain
0Fh "Z_PtblDomGet" read domain's page table
10h "Z_PtblDomSet" write domain's page table
11h "Z_InstanceSet" register instanced memory
12h "X_DomNProcessesGet" get number of processes in domain
13h "X_DomSuspend" suspend a domain
14h "Z_DomUnsuspend" resume execution of a domain
15h "Z_DomFork" make a copy of the current domain
16h "Z_DomTerm" terminate domain and all processes in it
17h "Z_HandlerUnlink" remove a handler
18h "Z_HandlerHWIntDflt" install default hardware interrupt handler
19h "Z_HandlerVHWInt" install virtual hardware interrupt handler
1Ah "Z_HandlerVHWIntDflt" install default virtual hware int handler
1Bh "Z_HandlerSwapIn" install swap-in handler
1Ch "Z_HandlerSwapOut" install swap-out handler
1Dh "Z_EndOfInterrupt" signal EOI
1Eh ???
1Fh "Z_HandlerPCreate" install process-creation handler
20h "Z_HandlerPTerm" install process-termination handler
21h "Z_DomRootProcessGet" get domain's root process' handle
22h "F_DForeground" domain has just switched to foreground
23h "F_DBackground" domain has just switched to background
24h "F_MapHMA" map domain's HMA
25h "F_AddInstData" add DOS instance data
26h "X_DomMemFreeGet" get free memory in a domain
27h "X_DomMemUsedGet" get memory used by current domain
28h "Z_DomMemMaxGet" get per-domain memory limit
29h "Z_DomMemMaxSet" set per-domain memory limit
2Ah "F_ReflectInt21" protected-mode INT 21 support
2Bh "Z_DomHandleGet" get domain for a process
2Ch ???
2Dh ???
2Eh ???
2Fh ???
30h ???
31h ???
32h ???
Return: CX = status (most subfunctions)
(E)AX and/or (E)BX contain return values, depending on function
Notes: called by DPMS.EXE and EMM386.EXE
this API is only available if AX=12FFh/BX=0EDCh returns successfully;
because the request is handled on the initial trap to the memory
manager caused by INT instructions, this API must be invoked with
an actual INT 2F instruction instead of some simulation such as a
far call to the address in the interrupt vector table
SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
--------m-2F2780CL05-------------------------
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - VIRTUAL MACHINES
AX = 2780h
CL = 05h (module: VM)
CH = function
00h "F_VMProtInit" internal protected-mode initialization
01h "Z_TMLoad" load task manager
02h "Z_TMUnload" unload task manager
03h "Z_VMBackSet" send virtual machine to background
04h "Z_VMForeSet" send virtual machine to foreground
05h "Z_VMSaveEnable" enable saving virtual machine
06h "Z-VMSaveDisable" disable saving virtual machine
07h "Z_TMInit" intialize task manager
08h "Z_TMHotKeyGet" get task manager hotkey
09h "Z_TMHitKeyEnable" restart scanning for task manager key
0Ah "Z_TMHotKeyDisable" stop scanning for task manager key
0Bh "X_ForeGet" get current foreground domain
0Ch "F_DMAHandlerEnable" (re)enable DMA address translation
0Dh "F_DMAHandlerDisable" disable DMA address translation
0Eh "Z_SerialTimeoutGet" set serial port timeout
0Fh "Z_ParallelTimeoutSet" set parallel port timeout
10h "F_VCPIEntry" domain is entering VCPI mode
11h "F_VCPIExit" domain is leaving VCPI mode
12h "X_MsgGlobalEnter" enter Global Message Mode
13h "X_MsgGlobalDisplay" display global message
14h "X_MsgGlobalExit" leave Global Message Mode
15h "X_MsgDomEnter" enter Domain Message Mode
16h "X_MsgDomDisplay" display domain-specific message
17h "X_MsgDomExit" leave Domain Message Mode
18h "X_MsgFatalDisplay" display fatal error message
19h "Z_SerialBaseSet" set serial port address
1Ah "Z_ParallelBaseSet" set parallel port address
1Bh "Z_SerialIRQSet" set serial port IRQ
1Ch "Z_ParallelIRQSet" set parallel port IRQ
1Dh "F_ResetVideo" emergency video system reset
1Eh "F_SetMouseIRQ" set which IRQ is used by mouse
1Fh "F_CheckNotIdle" check whether system is idle
20h "F_GetMouseInfo"
21h "Z_SerialOwnerGet" get serial port owner
22h "Z_SerialTimeoutGet" get serial port timeout
23h "Z_ParallelOwnerGet" get parallel port owner
24h "Z_ParallelTimeoutGet" get parallel port timeout
???
Return: ???
Notes: called by DPMS.EXE and EMM386.EXE
the handler for this function may be set by one of the subfunctions
of AX=2780h/CL=01h; the default handler returns AX=BX=FFFFh and
CX=0001h (see #02739)
this API is only available if AX=12FFh/BX=0EDCh returns successfully;
because the request is handled on the initial trap to the memory
manager caused by INT instructions, this API must be invoked with
an actual INT 2F instruction instead of some simulation such as a
far call to the address in the interrupt vector table
SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
--------m-2F2780CL06-------------------------
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DPMI SERVICES
AX = 2780h
CL = 06h
CH = function
00h "F_InitDPMI" used for internal initialization
01h "F_DescAllocLDT" allocate LDT descriptor
02h "F_DescFreeLDT" free LDT descriptor
03h "F_DescGetLDT" get details on LDT descriptor
04h "F_DescSetLDT" set up LDT descriptor
05h "F_DescAllocInt21" allocate descriptor for PM INT 21
06h "F_WhereIsDPMI" get address of DPMI global data
Return: ???
Notes: called by DPMS.EXE and EMM386.EXE
the handler for this function may be set by one of the subfunctions
of AX=2780h/CL=01h; the default handler returns AX=BX=FFFFh and
CX=0001h (see #02739)
this API is only available if AX=12FFh/BX=0EDCh returns successfully;
because the request is handled on the initial trap to the memory
manager caused by INT instructions, this API must be invoked with
an actual INT 2F instruction instead of some simulation such as a
far call to the address in the interrupt vector table
SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
--------m-2F2780-----------------------------
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - AVAILABLE FOR APPS
AX = 2780h
CL = function (07h-0Fh)
???
Return: ???
Notes: called by DPMS.EXE and EMM386.EXE
the handlers for each of these functions may be set individually by
one of the subfunctions of AX=2780h/CL=01h; the default handlers
return with all registers unchanged
this API is only available if AX=12FFh/BX=0EDCh returns successfully;
because the request is handled on the initial trap to the memory
manager caused by INT instructions, this API must be invoked with
an actual INT 2F instruction instead of some simulation such as a
far call to the address in the interrupt vector table
SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
--------T-2F2781-----------------------------
INT 2F U - Novell DOS 7 TaskMGR - BEGIN CRITICAL SECTION???
AX = 2781h
Return: ???
SeeAlso: AX=2782h
--------T-2F2782-----------------------------
INT 2F U - Novell DOS 7 TaskMGR - END CRITICAL SECTION???
AX = 2782h
Return: ???
SeeAlso: AX=2781h
--------m-2F2783-----------------------------
INT 2F U - Novell DOS 7 - EMM386.EXE - GET ???
AX = 2783h
Return: AX = ???
BX = ???
--------T-2F278F-----------------------------
INT 2F U - Novell DOS 7 TaskMGR - ??? API
AX = 278Fh
as for INT 2F/AX=2780h
Return: as for INT 2F/AX=2780h
Note: Novell DOS 7 TaskMGR passes this call through to INT 2F/AX=2780h
without changing any other registers
SeeAlso: AX=2780h/CL=01h,AX=2782h
--------F-2F2A-------------------------------
INT 2F - Gammafax DOS Dispatcher INTERFACE
AH = 2Ah
Note: details not available at this time
SeeAlso: AX=8000h"FaxBIOS",AX=C000h/BX=444Bh,AX=CB00h,AX=CBDDh,INT 66"BitFax"
--------V-2F2E00-----------------------------
INT 2F U - Novell DOS 7 - GRAFTABL - INSTALLATION CHECK
AX = 2E00h
Return: AH = FFh if installed
Note: this installation check does not follow the usual format of setting
AL to FFh
SeeAlso: AX=2300h,AH=2Eh"GRAFTABL"
--------V-2F2E-------------------------------
INT 2F U - Novell DOS 7 - GRAFTABL - GET FONT TABLE
AH = 2Eh
AL nonzero
Return: AH = FFh if installed
ES:BX -> graphics data (8 bytes per character from 80h to FFh)
SeeAlso: AX=2E00h,AH=23h"GRAFTABL"
--------t-2F3900-----------------------------
INT 2F - Kingswood TSR INTERFACE - COMPATIBILITY MODE
AX = 3900h
Return: AL = status
00h not installed
FFh one or more TSRs using this interface is installed
DX may be destroyed
Note: this function is provided to that the multiplex number will appear used
to other programs
SeeAlso: AH=39h/BL=00h
--------t-2F39--BL00-------------------------
INT 2F - Kingswood TSR INTERFACE - INSTALLATION CHECK
AH = 39h
BL = 00h
AL = TSR ID number (01h-FFh, currently only 01h-1Bh used) (see #02742)
Return: AL = status
00h not installed
FFh installed
DX = segment address of resident module
Note: All of Kingswood Software's TSRs use this interface. Usually the
resident module is installed by allocating a block of upper memory,
setting its owner ID to 000Ah (used by DOS), and filling the MCB name
field with the TSR's name.
SeeAlso: #02743,AX=3900h,AH=39h/BL=01h
(Table 02742)
Values for Kingswood TSR ID number:
01h TSR Windows
02h NOBUSY
03h CD STACK
04h DISK WATCH
05h PUSHBP
06h ALIAS
07h KEYMACRO
08h SLOWDOWN
09h ANSIGRAB
0Ah TEE
0Bh FASTMOUS
0Ch EXTWILD
0Dh BREAKOUT
0Eh STOPDISK
0Fh MEMINIT
10h JANUSEXT
11h CAPS
12h ANSI
13h TRAPPER
14h EATMEM
15h WPJOKE
16h SHOWDOS
17h LOGINTS
18h BLANKVGA
19h SWAPEXEC
1Ah SHELL
1Bh TSRGAMES
Format of Kingswood TSR modules:
Offset Size Description (Table 02743)
00h 4 BYTEs signature "FTSR"
04h WORD segment address of this module (used to check validity)
06h WORD number of words to skip (usually 0000h if no PSP present)
08h N WORDs module-defined data that must be at a fixed segment offset
(usually only a PSP if file access is required)
5N BYTEs interrupt list (see #02744)
BYTE FFh terminator
Format of Kingswood TSR interrupt list entry:
Offset Size Description (Table 02744)
00h BYTE interrupt number (00h-FEh)
01h WORD offset within segment of DWORD pointer to previous interrupt
03h WORD offset within segment of begin of interrupt handler code
--------t-2F39--BL01-------------------------
INT 2F - Kingswood TSR INTERFACE - REMOVAL CHECK
AH = 39h
BL = 01h
AL = TSR ID number (01h-FFh) (see #02742)
Return: AL = status
00h not ready to be removed
FFh resident module may be removed by deassigning the interrupts
hooked by the TSR and deallocating the TSR's memory block
AH,BX,CX,DX,ES may be destroyed
SeeAlso: AX=3900h,AH=39h/BL=00h
--------t-2F39-------------------------------
INT 2F - Kingswood TSR INTERFACE - APPLICATION-SPECIFIC FUNCTION C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -