📄 interrup.c
字号:
ES = segment of object handle for window to be positioned
DL = general window position (see #00426)
CH = number of columns to offset from position specified by DL
CL = number of rows to offset from position specified by DL
Return: nothing
Bitfields for TopView general window position:
Bit(s) Description (Table 00426)
0,1 horizontal position
00 = current, 01 = center, 10 = left, 11 = right
2,3 vertical position
00 = current, 01 = center, 10 = top, 11 = bottom
4 don't redraw screen if set
5-7 not used
--------Q-151024-----------------------------
INT 15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO
AX = 1024h
BX = segment of object handle for window (0000h = use default)
Return: ES:DI -> virtual screen
CX = size of virtual screen in bytes
DL = screen type
00h text screen
01h graphics screen
SeeAlso: INT 10/AH=FEh,INT 21/AH=2Bh/CX=4445h
--------Q-151025-----------------------------
INT 15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK
AX = 1025h
Return: stack switched back
Notes: call only after having switched to internal stack with AX=101Ah
while TopView requires many API calls to be executed while on the
task's private stack, DESQview allows those calls to be executed
regardless of the current stack
SeeAlso: AX=101Ah
--------Q-1510-------------------------------
INT 15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x
AH = 10h
AL = 26h thru 2Ah
Return: pops up "Programming error" window in DV 2.x
--------Q-15102B-----------------------------
INT 15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK
AX = 102Bh
BX = segment of object handle for task
Return: nothing
Note: forces a task which is waiting on its objectq to continue by placing
the handle for the task on the objectq
SeeAlso: AX=101Dh,AX=101Eh,INT 21/AH=82h
--------Q-15102C-----------------------------
INT 15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS
AX = 102Ch
ES:DI -> contents of .PIF/.DVP file (see #00427)
BX = size of .PIF/.DVP info
Return: BX = segment of object handle for new task
0000h on error
SeeAlso: AX=DE24h,INT 21/AH=4Bh
Format of .PIF/.DVP file:
Offset Size Description (Table 00427)
00h BYTE reserved (0)
01h BYTE checksum of bytes 02h through 170h
02h 30 BYTEs blank-padded program title
20h WORD maximum memory to allocate to partition in KB
22h WORD minimum memory required in KB
24h 64 BYTEs ASCIZ program pathname
64h BYTE default drive letter ('A',...)
65h 64 BYTEs ASCIZ default directory name
A5h 64 BYTEs ASCIZ program parameters
E5h BYTE initial screen mode (0-7) (also see offset 189h)
E6h BYTE number of text pages used
E7h BYTE number of first interrupt to save
E8h BYTE number of last interrupt to save
E9h BYTE rows in virtual screen buffer
EAh BYTE columns in virtual screen buffer
EBh BYTE initial window position, row
ECh BYTE initial window position, column
EDh WORD system memory in KB
EFh 64 BYTEs ASCIZ shared program name
12Fh 64 BYTEs ASCIZ shared program data file
16Fh BYTE program flags 1 (see #00428)
170h BYTE flags2
bit 6: uses command-line parameters in field at A5h
bit 5: swaps interrupt vectors
---information unique to .DVP files---
171h 2 BYTEs keys to use on open menu
173h WORD size of script buffer in bytes
175h WORD automatically give up CPU after this many tests for keyboard
input in one clock tick (default 0 = never)
177h BYTE nonzero = "uses own colors"
178h BYTE nonzero if application swappable
179h 3 BYTEs reserved (0) according to Quarterdeck documentation
in actual .DVP files, frequently 01h
17Ch BYTE nonzero to automatically close on exit (see also #00430)
17Dh BYTE nonzero if copy-protect floppy is required
---information unique to DESQview 2.0+---
17Eh BYTE .DVP version number
00h DESQview v1.2+
01h DESQview v2.0+
02h DESQview v2.2+
17Fh BYTE reserved (0)
180h BYTE initial number of rows in physical window
181h BYTE initial number of columns in physical window
182h WORD maximum expanded memory to allow, in KB
184h BYTE DVP program flags 3 (see #00429)
185h BYTE keyboard conflict level (0-4 for DV<2.26, 00h-0Fh for DV2.26+)
(see #00431)
186h BYTE number of graphics pages used
187h WORD extra system memory size
189h BYTE initial screen mode (FFh = default) (overrides offset E5h)
---information unique to DESQview 2.2+---
18Ah BYTE serial port usage
FFh uses all serial ports
00h no serial ports
01h only COM1
02h only COM2
18Bh BYTE DVP program flags 4 (see #00430)
18Ch BYTE protection level for 386 machines
18Dh 19 BYTEs reserved (0) for regular DESQview
---information unique to DESQview/X 1.0---
18Dh BYTE X flags
bits 3-7: unused (0)
bit 2: don't display wait message when opening window
bit 1: don't display DOS window
bit 0: (XNEWPROC) use DOS client layer (DOS-to-X)
(NEWPROC) inherit DOS client layer usage
18Eh BYTE X keyboard behavior (0-3)
18Fh BYTE font scaling
00h fixed fonts
01h scalable fonts
190h 10 BYTEs reserved (0)
19Ah WORD length of data follownig XDVP signature
19Ch 4 BYTEs signature "XDVP"
1A0h N BYTEs list of variable length records (see #00432)
Bitfields for .PIF/.DVP program flags 1:
Bit(s) Description (Table 00428)
7 writes text directly to screen
6 runs in foreground only (see also #00427 offset 184h)
5 uses math coprocessor
4 accesses system keyboard buffer directly
3-1 reserved (0)
0 swappable
SeeAlso: #00427,#00429,#00430
Bitfields for .DVP program flags 3:
Bit(s) Description (Table 00429)
7 automatically assign window position
5 maximum memory value has been specified
4 disallow "Close" command
3 foreground-only when doing graphics
set by DV 2.3+ when "Runs in Background" = "D" (undoc)
2 don't virtualize (see also #00430)
1 foreground-only during DOS calls
set by DV 2.3+ when "Runs in Background" = "D" (undoc)
SeeAlso: #00427,#00428,#00430
Bitfields for .DVP program flags 4:
Bit(s) Description (Table 00430)
7 automatically close application on exit if .COM or .EXE specified
(see also #00427 offset 17Ch)
6 swappable if not using serial ports
5 start program with window hidden (v2.26+)
4 start program in background (v2.26+)
3 virtualize text (see also #00429)
2 virtualize graphics (see also #00429)
1 share CPU when foreground
0 share EGA when foreground and zoomed
SeeAlso: #00427,#00428,#00429
Bitfields for DESQview keyboard conflict level:
Bit(s) Description (Table 00431)
3 save/restore entire INT 09 handler state every taskswtch
2 take special precautions for programs which read the BIOS keyboard
buffer directly from memory
1 never indicate keystroke available during scripts/xfers
0 only indicate keystroke available every sixth poll
SeeAlso: #00427
Format of DESQview/X variable length record:
Offset Size Description (Table 00432)
00h WORD length of following record, 0000h if end of record list
02h BYTE record type
01h script filename, up to 64 characters
02h command-line parameters (allows >64 characters on cmdline)
03h environment inheritance
04h environment string
05h starting window position
---types 01h,02h,04h---
03h N BYTEs ASCII data
---type 03h---
03h BYTE inheritance
00h do not inherit
01h inherit environment
---type 05h---
03h N BYTEs ASCII copy of fields as typed into DVPMAN, separated by commas:
starting row, starting column, starting height, starting width
Note: if there are multiple occurrences of record types 01h, 02h, or 03h,
only the last instance of each type is used; multiple occurrences of
type 04h are concatenated
SeeAlso: #00427
--------Q-15102D-----------------------------
INT 15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL
AX = 102Dh
BL = subfunction
00h determine whether using keyboard mouse
Return: BL = 00h using real mouse
01h using keyboard mouse
01h turn keyboard mouse on
02h turn keyboard mouse off
SeeAlso: INT 33/AX=0024h
--------Q-15102E-----------------------------
INT 15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY
AX = 102Eh
BX = number of bytes
Return: AX = status
0000h successful
ES:DI -> allocated system memory (see #00433)
0001h failed
ES:DI = 0000h:0000h
Note: under DV 2.42, this call is identical to AX=1001h
SeeAlso: AX=1001h,AX=1002h,AX=DE0Ch
Format of DESQview system memory block header:
Offset Size Description (Table 00433)
00h WORD segment of next header or 0000h
02h WORD segment of previous header or 0000h
04h WORD size of block in paragraphs, including header
06h BYTE availability flag (00h in use, 01h free)
Note: this header is located one paragraph before the memory block proper
SeeAlso: #00423
--------Q-1511-------------------------------
INT 15 - TopView commands
AH = 11h
AL = various (except 17h)
Return: varies by function
Note: in DESQview 2.x, these function calls are identical to AH=DEh, so
see those below
SeeAlso: AX=DE00h,AX=DE22h,AX=DE30h
--------T-1511-------------------------------
INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS
AH = 11h
STACK: DWORD pointer to ASCIZ string containing a VMiX shell
request (max len = 127)
Return: AX = status (SYS_OK or SYS_ERROR)
SeeAlso: AH=0Ch"VMiX"
--------T-1511-------------------------------
INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE
AH = 11h
Note: disables the Alt-Z MultiDOS command/program-selection hotkey
SeeAlso: AH=12h"MultiDOS"
Index: hotkeys;MultiDOS Plus
--------Q-151117BX0000-----------------------
INT 15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
AX = 1117h
BX = 0000h get current mapping context without setting
nonzero set new mapping context
Return: BX = mapping context in effect before call
interrupts enabled
Notes: this function differs from AX = DE17h for DESQview v2.20 through 2.25
mapping contexts determine conventional-memory addressability; setting
a mapping context ensures that the associated program and data areas
are in memory for access. Usable by drivers, TSRs and shared
programs.
caller need not be running under DESQview, but must ensure that the
stack in use will not be mapped out by the call
SeeAlso: AX=DE17h,INT 2F/AX=1685h
--------m-1511DE-----------------------------
INT 15 - DESQview - QEXT.SYS - INSTALLATION CHECK
AX = 11DEh
Return: CF clear if installed
AX = segment at which QEXT.SYS is located
Desc: QEXT.SYS is Quarterdeck's HMA manager for DESQview; more recent
versions also implement the XMS standard
Note: a private entry point (see #00434) may be found by searching the
beginning of the returned segment for the signature string
"QUARTERDECK EXTENDED MEMORY MANAGER 286"; the word immediately
prior to the signature contains the QEXT version number in BCD,
and the word prior to that contains the offset within the QEXT
code segment of the private entry point
SeeAlso: INT 2F/AX=4310h"XMS",INT 67/AH=3Fh
(Table 00434)
Call QEXT.SYS private entry point with:
AH = 00h ???
AH = nonzero ???
--------T-1512-------------------------------
INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP
AH = 12h
STACK: WORD process ID
Return: AX = status (SYS_OK or SYS_ERROR)
SeeAlso: AH=03h"MultiDOS",AX=101Dh,AH=13h"VMiX"
--------T-1512-------------------------------
INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE
AH = 12h
Note: enables the Alt-Z MultiDOS command/program-selection hotkey
SeeAlso: AH=11h"MultiDOS"
Index: hotkeys;MultiDOS Plus
--------Q-1512--BH00-------------------------
INT 15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE
AH = 12h
BH = 00h
BL = which handle to return
00h handle in DWORD on top of stack
01h current task's window handle
02h given task's mailbox handle (task's handle on stack)
03h current task's mailbox handle
04h given task's keyboard handle (task's handle on stack)
05h current task's keyboard object handle
06h given task's OBJECTQ handle (task's handle on stack)
07h current task's OBJECTQ handle
08h \
thru > return 0000:0000 under DV < 2.26
10h /
0Ch (2.26+) task owning object with handle in DWORD on top of stack
0Dh (2.26+) task handle of owner (parent) of current task
Return: DWORD on top of stack is object handle
Note: BL=0Ch,0Dh returns 00000000h if the object is not open (keyboard,
mailbox, panel, pointer, and timer objects) or is an orphan (task,
window)
SeeAlso: AH=12h/BH=02h,AH=12h/BH=80h
--------Q-1512--BH01-------------------------
INT 15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT
AH = 12h
BH = 01h
BL = object type to create (see #00435)
STACK: (only if window object or WINDOW class)
DWORD address to jump to (no new task if high word == 0)
DWORD (reserved) 0 = non-task window, FFFFh = task window
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -