Format of DESQview object:
Offset Size Description )
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