Int 15/AX=1016h

lup.gif ldown.gif Interrups Categories Contents

rbline.gif

TopView - ISOBJ - VERIFY OBJECT HANDLE

AX = 1016h
ES:DI = possible object handle

Return:
BX = status FFFFh if ES:DI is a valid object handle (see #00414) 0000h if ES:DI is not

Note: Under DESQview versions prior to 2.50, an object handle is always a pointer to the object; for versions 2.50 and up, only task handles are always pointers--other handles may consist of a unique object number and offset into DESQview's common memory (see #00423)

See Also: AX=DE14h - AX=DE2Bh - AX=DE2Ch

(Table 00413) Values for DESQview object type: 00h window/task 01h mailbox 02h keyboard 03h timer 04h pointer 05h panel 06h objectq

Format of DESQview object: Offset Size Description (Table 00414) 00h WORD offset in common memory of previous object of same type 02h WORD offset in common memory of next object of same type 04h WORD signature FEDCh (DV 2.42-) signature FEDCh or object number (DV 2.50+) 06h WORD object type (see #00413) 08h DWORD object handle to return to caller 0Ch DWORD canonicalized object address (segment = common memory) 10h WORD offset in common memory of owning task (0000h for unowned OBJECTQs) 12h WORD mapping context offset in common memory of mapping context record (see #00416). Remainder varies by object type and DESQview version ---v2.42 keyboard object--- 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")

bit 15:
Keyboard opened 16h 4 BYTEs ??? 1Ah WORD priority in OBJECTQ??? 1Ch ... 25h WORD offset in common memory of ??? task 27h 4 BYTEs ??? ---v2.42 objectq object--- 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")

bit 15:
OBJECTQ opened 16h 2 BYTEs ??? 18h WORD offset in common memory of ??? task 1Ah 6 BYTEs ??? ---v2.42 mailbox object--- 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")

bit 15:
Mailbox opened 1Ah WORD priority in OBJECTQ??? 1Ch 6 BYTEs ??? 22h WORD offset in common memory of mailbox name (counted string) 0000h if no name <= 5 BYTEs ??? ---v2.22-2.42,2.52,2.60 window/task object--- 14h BYTE 00h window, 01h task 15h BYTE internal (not Switch menu) window number??? 16h BYTE internal (not Switch menu) window number??? 17h WORD segment of internal window record (see #00417) 19h 2 BYTEs ??? 1Bh BYTE cursor row 1Ch BYTE cursor column 1Dh BYTE visible window origin, row 1Eh BYTE visible window origin, column 1Fh BYTE window height (logical) 20h BYTE window width (logical) 21h BYTE window position, row 22h BYTE window position, column 23h BYTE window height (visible) 24h BYTE window width (visible) 25h BYTE row of top of frame (or window if unframed) 26h BYTE column of left of frame (or window if unframed) 27h BYTE window height (physical, including frame) 28h BYTE window width (physical, including frame) 29h BYTE unzoomed visible origin, row (00h before first zoom) 2Ah BYTE unzoomed visible origin, column (00h before first zoom) 2Bh BYTE unzoomed window position, row (00h before first zoom) 2Ch BYTE unzoomed window position, column (00h before first zoom) 2Dh BYTE unzoomed window height (00h before first zoom) 2Eh BYTE unzoomed window width (00h before first zoom) unzoomed parameters above are updated when window is zoomed to full screen 2Fh BYTE ??? initially logical window height 30h BYTE ??? initially logical window width 31h 2 BYTEs ??? 33h BYTE minimum height of window 34h BYTE minimum width of window 35h BYTE maximum height of window 36h BYTE maximum width of window 37h 3 BYTEs ???

3Ah 8 BYTEs window frame characters:
Ul,ur,ll,lr,t,b,l,r 42h 24 BYTEs attributes???

5Ah 8 BYTEs window frame characters:
Ul,ur,ll,lr,t,b,l,r 62h 3 BYTEs ??? 65h BYTE ??? bitflags

66h BYTE bit 0:
Window is zoomed 67h BYTE ??? 68h WORD offset in common memory of window name or 0000h if untitled 6Ah WORD length of window name 6Ch 2 BYTEs ??? 6Eh WORD offset of logical cursor in window (in character cells) 70h DWORD pointer to field table for window 74h BYTE ??? 75h 2 BYTEs ??? 77h BYTE number of last-visited field 78h DWORD pointer to field table entry for last-visited field 7Ch 3 BYTEs ??? 7Fh BYTE select field marker character 80h BYTE ??? bit flags

bit 0:
Allow ECh window stream opcode to change reverse logattr

bit 1:
Alternate field processing mode selected 81h BYTE ??? 82h DWORD notification function (manager stream opcode 8Ah) no notification if segment = 0000h 86h DWORD notification argument (manager stream opcode 8Bh) 8Ah WORD offset in common memory of ??? window object or 0000h 8Ch WORD offset in common memory of ??? window object or 0000h 8Eh WORD offset in common memory of ??? window object or 0000h 90h BYTE ??? bitflags 91h BYTE ??? ---task object only 92h BYTE bit flags (bits 0-4) 93h BYTE character for ??? (default 20h) 94h BYTE ??? flag 95h WORD offset in common memory of ??? 97h 2 BYTEs ??? 99h WORD ??? 9Bh BYTE ??? bit flags

bit 3:
???

bit 6:
Perform protected-attribute processing on select fields 9Ch BYTE ??? 9Dh WORD offset in common memory of current register save record (see #00415). No register save record in use if < 01C0h 9Fh WORD offset in common memory of task's keyboard object A1h WORD offset in common memory of task's OBJECTQ object A3h WORD offset in common memory of task's mailbox object

A5h WORD semaphore:
FFFFh if on user stack, else on task's private stack A7h DWORD user's SS:SP ABh WORD task's private SP (SS read from offset 0Ah) ADh 6 BYTEs ??? B3h BYTE ??? bit flags

bit 0:
Run in foreground only B4h BYTE ??? B5h BYTE ??? bitflags B6h BYTE task status (see #00555 at AX=DE2Ch) B7h 9 BYTEs ??? C0h WORD head pointer for keyboard buffer (wraps back to 00h after 80h) C2h WORD tail pointer for keyboard buffer (wraps back to 00h after 80h) C4h 2 BYTEs ??? (0000h) C6h WORD segment of keyboard buffer for task C8h WORD offset in common memory of ??? keyboard object CAh BYTE ??? ---v2.22-2.42 CBh WORD offset in common memory of ??? object CEh BYTE ??? flag CFh WORD offset in common memory of default notify window for task or 0000h if none D1h 4 BYTEs ??? D5h BYTE window number on Switch Window menu D6h 5 BYTEs ??? DBh WORD offset in common memory of ??? object DDh 2 BYTEs ??? DFh WORD API level for task E1h WORD offset in common memory of object task is waiting on if task status is 'waiting', else 0000h E7h WORD segment of ??? E9h 4 BYTEs ??? EDh WORD EMS handle of virtualization buffer, 0000h if no virtualization F1h 12 BYTEs ??? FBh WORD ??? FDh BYTE ??? FFh 12 BYTEs ??? 10Bh DWORD pointer to process record (see #00418,#00419) 10Dh 10 BYTEs ??? 119h DWORD SS:SP for ??? 11Dh 4 BYTEs ??? 121h DWORD pointer to ??? 125h 25 BYTEs ??? 13Eh DWORD pointer to ??? in system memory ---v2.22 142h 3 BYTEs ??? 145h task's default keyboard object ---v2.42 142h DWORD pointer to first task instance data record in system memory 148h DWORD pointer to last task instance data record in system memory (see #00420) 14Ah BYTE ??? 14Dh 42 BYTEs task's default keyboard object 177h 32 BYTEs task's ObjectQ object 197h 41 BYTEs task's default mailbox object 1C0h 24 BYTEs first register save record 450h -- default top of private stack ---v2.52 (probably all DV/X) Same as v2.60 below except there is an extra 29 bytes inserted somewhere before offset 9Fh, but not yet known exactly where. Also, for the WAIT_ON field (v2.60 offset E3h), some X apps (probably waiting on a socket) have 0000h even when waiting. ---v2.60 CBh WORD ??? (added in 2.50 - rest is same as 2.42) CDh WORD offset in common memory of ??? object D0h BYTE ??? flag D1h WORD offset in common memory of default notify window for task or 0000h if none D3h 4 BYTEs ??? D7h BYTE window number on Switch Window menu D8h 5 BYTEs ??? DDh WORD offset in common memory of ??? object DFh 2 BYTEs ??? E1h WORD API level for task E3h WORD If status at B6h=waiting, offset in common memory of object that task is waiting on, else 0000h. (Task with CPU also has 0000h here) E9h WORD segment of ??? EBh 4 BYTEs ??? EFh WORD EMS handle of virtualization buffer, 0 if no virtualization F3h 12 BYTEs ??? FDh WORD ??? FFh BYTE ??? 101h 8 BYTEs ??? 109h DWORD pointer to process record in system memory 10Dh 14 BYTEs ??? 11Bh DWORD SS:SP for ??? 11Fh 4 BYTEs ??? 123h DWORD pointer to ??? 127h 25 BYTEs ??? 140h DWORD pointer to ??? in system memory 144h DWORD pointer to first task instance data record in system memory 148h DWORD pointer to last task instance data record in system memory (from INT 15/AX=DE27h) (see #00420) 14Ch BYTE ??? 14Eh 42 BYTEs task's default keyboard object 179h 32 BYTEs task's ObjectQ object 199h 41 BYTEs task's default mailbox object 1C2h 24 BYTEs first register save record 452h -- default top of private stack

Format of DESQview Register Save Record: Offset Size Description (Table 00415) 00h WORD AX 02h WORD BX 04h WORD CX 06h WORD DX 08h WORD DI 0Ah WORD SI 0Eh WORD DS 10h WORD ES 12h DWORD return address 16h WORD original flags

Format of DESQview mapping context record: Offset Size Description (Table 00416) 00h WORD lowest segment in process's memory (often start of system memory chain) 02h WORD size of process's memory in paragraphs

04h BYTE flag:
00h if process swapped out, 01h otherwise

05h BYTE flag:
00h if allocated in conventional memory, 01h if EMS 06h 2 BYTEs ??? 08h WORD EMS handle if in EMS, else 0 0Ah 2 BYTEs ??? (nonzero if system memory resides in shared mem???) 0Ch WORD segment of system memory block that contains process record, referenced from segment of start of system memory chain 0Eh BYTE ??? 0Fh WORD size of system memory block that contains process record and DOS memory in paragraphs 11h BYTE bit flags

Bit 0:
Swapped out???

Bit 1:
???

Bit 2:
Swapped out??? 12h BYTE ??? 13h BYTE reference count ---v2.31 14h 10 BYTEs ??? 1Eh WORD segment of process record 20h 2 BYTEs ??? 22h WORD segment of ??? (in first free system memory block???) 24h WORD segment of end of system memory chain 26h WORD segment of start of system memory chain 28h 8 BYTEs ??? 2Ah DWORD pointer to ??? (process record???) 2Dh 10 BYTEs ??? 37h BYTE lowest interrupt vector to save on context switch 38h BYTE highest interrupt vector to save on context switch 39h WORD offset in common memory of main task with this context 3Ah 12 BYTEs ??? 46h BYTE internal mapping context number 47h 12 BYTEs ??? ---v2.5x-2.60 14h 6 BYTEs ??? 1Ah WORD segment of process record 1Ch 2 BYTEs ??? 1Eh WORD segment of first free system memory block 20h WORD segment of start of system memory chain 22h WORD segment of end of system memory chain 24h 8 BYTEs ??? 2Ch DWORD pointer to ??? (1 segment into process record???) 30h 3 BYTEs ??? 33h WORD Offset in common memory of main task with this context 35h 7 BYTEs ??? 3Ch BYTE internal mapping context number 3Dh 14 BYTEs ??? 4Bh WORD first DOS memory segment (first MCB segment+1) 4Dh BYTE ??? (flag???) ---v2.53 (2.5x???) 4Eh 12 BYTEs ??? ---v2.60 4Eh WORD segment of script buffer (see #00421) 50h 6 BYTEs ???

Format of DESQview Internal Window Record (v2.31-2.60): Offset Size Description (Table 00417) 00h BYTE internal window number??? 01h BYTE display page??? 02h BYTE video mode 03h 3 BYTEs ??? 06h BYTE logical window height 07h BYTE logical window width 08h DWORD pointer to text video buffer 0Ch 116 BYTEs ???

Format of DESQview process record (v2.31): Offset Size Description (Table 00418) -470h 13 BYTEs filename of ??? Script -463h 1117 BYTEs ??? (script buffer???) -6h 6 BYTEs ??? 00h WORD segment of parent PSP in process 02h 5 BYTEs ??? 07h WORD segment of current PSP in process 09h WORD segment of first MCB in process 0Bh 13 BYTEs ??? 18h 1024 BYTEs process's interrupt vector table 418h 376 BYTEs ??? 590h first MCB in process

See Also: #00419

Format of DESQview process record (v2.52-v2.60) (probably also 2.5x): Offset Size Description (Table 00419) 00h 28 BYTEs EXE header of last EXE, ??? if last program run was COM 1Ch ??? BYTEs overwritten with ASCIZ filename of last program run (EXE/COM) 11Ch WORD segment of parent PSP in process 11Eh 4 BYTEs ??? 122h WORD segment of current PSP 124h WORD segment of current PSP 126h WORD segment of first MCB in process 128h 4 BYTEs ??? 12Ch DWORD pointer to first process instance data record in system memory 130h DWORD pointer to last process instance data record in system memory (from INT 15/AX=DE27h) (see #00420) 134h 8 BYTEs ??? 13Ch WORD size of current environment 13Eh WORD segment of current environment 140h WORD segment of current PSP 142h DWORD entry point of current program 146h 10 BYTEs ??? ---v2.52 (v2.5x???) 150h BYTE ??? 151h WORD segment of parent PSP in process 153h WORD ??? 155h WORD ??? 157h WORD ??? 159h 4 BYTEs ??? 15Dh WORD segment of current environment 15Fh WORD segment of current PSP 161h WORD segment of ??? 162h WORD ??? 164h 3 BYTEs ??? 168h 1024 BYTEs process's interrupt vector table 568h 120 BYTEs ??? 5E0h first MCB in process ---v2.60 150h WORD segment of parent PSP in process 152h WORD ??? 154h WORD ??? 156h WORD ??? 158h 4 BYTEs ??? 15Ch WORD segment of current environment 15Eh WORD segment of current PSP 160h WORD segment of ??? 162h WORD ??? 164h 1024 BYTEs process's interrupt vector table 564h 108 BYTEs ??? 5D0h first MCB in process

See Also: #00418

Format of DESQview task or process instance data record (v2.5x???, v2.60): Offset Size Description (Table 00420) 00h DWORD pointer to next record of same type or 00000000 04h DWORD pointer to previous record of same type or 00000000 08h DWORD pointer to source area of memory during restore state 0Ch WORD number of bytes to save/restore 0Eh DWORD pointer to destination area of memory during restore state 12h WORD ??? (0) 14h N BYTEs source memory buffer during restore state

Format of DESQview script buffer (v2.60): Offset Size Description (Table 00421) 00h 13 BYTEs ASCIZ Script filename 0Dh 80 BYTEs ??? 5Eh N BYTEs script records (see #00422)

Format of one DESQview script record (v2.60): Offset Size Description (Table 00422) 00h BYTE signature 12h 01h 18 BYTEs blank-padded script name 13h BYTE ASCII code of key attached to script or 0 if non-ASCII key 14h BYTE scan code of key attached to script if non-ASCII, else 0 15h BYTE ??? 16h WORD size of script in bytes 18h N BYTEs script (ASCII code of each keystroke; if 0, next byte is scan code of non-ASCII key)

See Also: #00421

Format of DESQview Common Memory Header (v2.31-2.60): Offset Size Description (Table 00423) 00h WORD offset of lowest used block 02h WORD bytes of commom memory, including header 04h WORD offset of first free block 06h N BYTEs size depends of DV version, ??? (DVP buffer???)

Note: The above is located at the beginning of the commom memory segment

See Also: #00424 - #00425 - #00433

Format of DESQview Free block header: Offset Size Description (Table 00424) 00h WORD size of block in bytes including header 02h WORD offset of next free block 04h N BYTEs free block

See Also: #00423 - #00425

Format of DESQview Used block header: Offset Size Description (Table 00425) 00h WORD size of block in bytes including header 02h N BYTEs used block

See Also: #00423 - #00424

Category: DESQview/TopView and Quarterdeck Programs - Int 15h - T

rbline.gif

lup.gif ldown.gif Interrups Categories Contents