INT 15 - TopViewTopView, DESQview, TaskView, OmniView, other compatibles - "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) SeeAlso: 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. object handle to return to caller 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to field table for window 74h BYTE ??? 75h 2 BYTEs ??? 77h BYTE number of last-visited field 78h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. notification function (manager stream opcode 8Ah) no notification if segment = 0000h 86h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. 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 EMSsee Expanded Memory Specification handle of virtualization buffer, 0000h if no virtualization F1h 12 BYTEs ??? FBh WORD ??? FDh BYTE ??? FFh 12 BYTEs ??? 10Bh DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to process record (see #00418,#00419) 10Dh 10 BYTEs ??? 119h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. SS:SP for ??? 11Dh 4 BYTEs ??? 121h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ??? 125h 25 BYTEs ??? 13Eh DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ??? in system memory ---v2.22 142h 3 BYTEs ??? 145h task's default keyboard object ---v2.42 142h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to first task instance data record in system memory 148h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. 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(Central Processing Unit) The microprocessor which executes programs on your computer. also has 0000h here) E9h WORD segment of ??? EBh 4 BYTEs ??? EFh WORD EMSsee Expanded Memory Specification handle of virtualization buffer, 0 if no virtualization F3h 12 BYTEs ??? FDh WORD ??? FFh BYTE ??? 101h 8 BYTEs ??? 109h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to process record in system memory 10Dh 14 BYTEs ??? 11Bh DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. SS:SP for ??? 11Fh 4 BYTEs ??? 123h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ??? 127h 25 BYTEs ??? 140h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ??? in system memory 144h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to first task instance data record in system memory 148h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 EMSsee Expanded Memory Specification 06h 2 BYTEs ??? 08h WORD EMSsee Expanded Memory Specification handle if in EMSsee Expanded Memory Specification, 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 MCBsee Memory Control Block 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 PSPsee Program Segment Prefix in process 02h 5 BYTEs ??? 07h WORD segment of current PSPsee Program Segment Prefix in process 09h WORD segment of first MCBsee Memory Control Block in process 0Bh 13 BYTEs ??? 18h 1024 BYTEs process's interrupt vector table 418h 376 BYTEs ??? 590h first MCBsee Memory Control Block in process SeeAlso: #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 ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. filename of last program run (EXE/COM) 11Ch WORD segment of parent PSPsee Program Segment Prefix in process 11Eh 4 BYTEs ??? 122h WORD segment of current PSPsee Program Segment Prefix 124h WORD segment of current PSPsee Program Segment Prefix 126h WORD segment of first MCBsee Memory Control Block in process 128h 4 BYTEs ??? 12Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to first process instance data record in system memory 130h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 PSPsee Program Segment Prefix 142h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. entry point of current program 146h 10 BYTEs ??? ---v2.52 (v2.5x???) 150h BYTE ??? 151h WORD segment of parent PSPsee Program Segment Prefix in process 153h WORD ??? 155h WORD ??? 157h WORD ??? 159h 4 BYTEs ??? 15Dh WORD segment of current environment 15Fh WORD segment of current PSPsee Program Segment Prefix 161h WORD segment of ??? 162h WORD ??? 164h 3 BYTEs ??? 168h 1024 BYTEs process's interrupt vector table 568h 120 BYTEs ??? 5E0h first MCBsee Memory Control Block in process ---v2.60 150h WORD segment of parent PSPsee Program Segment Prefix in process 152h WORD ??? 154h WORD ??? 156h WORD ??? 158h 4 BYTEs ??? 15Ch WORD segment of current environment 15Eh WORD segment of current PSPsee Program Segment Prefix 160h WORD segment of ??? 162h WORD ??? 164h 1024 BYTEs process's interrupt vector table 564h 108 BYTEs ??? 5D0h first MCBsee Memory Control Block in process SeeAlso: #00418 Format of DESQview task or process instance data record (v2.5x???, v2.60): Offset Size Description (Table 00420) 00h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to next record of same type or 00000000 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to previous record of same type or 00000000 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to source area of memory during restore state 0Ch WORD number of bytes to save/restore 0Eh DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. 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) SeeAlso: #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 SeeAlso: #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 SeeAlso: #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 SeeAlso: #00423,#00424