Int E0 - Real/32 - "s_sysdat" - Get System Data Area [O]

CL = 9Ah

Return: ES:AX -> system data area (see #3780)
may destroy SI,DI

Format of REAL/32 system data area:
Offset Size Description (Table 3780)
00h DWORD address of supervisor entry point
04h 36 BYTEs reserved
28h DWORD address of XIOS entry point
2Ch DWORD address of XIOS initialization point
30h 8 BYTEs reserved
38h DWORD address of IRET dispatcher entry point
3Ch DWORD address of RETF dispatcher entry point
40h WORD segment of operating system code
42h WORD paragraph address of first Resident System Process (RSP)
44h WORD paragraph after OS system area
46h BYTE reserved
47h BYTE number of system console devices
48h BYTE number of system list (printer) devices
49h BYTE number of Character Control blocks
4Ah BYTE number of system flags
4Bh BYTE current search disk
4Ch WORD maximum memory per process
4Eh BYTE reserved
4Fh BYTE "dayfile" (flag, true if FFh)
50h BYTE default disk for temporary files
51h BYTE system ticks per second (typically 60)
52h WORD offset of Locked Unused list
54h WORD offset of CCB table
56h WORD offset of system flag table
58h WORD offset of root of Memory Descriptor Unused list
5Ah WORD offset of Memory Free list
5Ch WORD offset of Process Unused list
5Eh WORD offset of Queue Unused list
60h 4 WORDs (no longer used) QMAU
68h WORD offset of root of Ready List
6Ah WORD offset of root of Delay List
6Ch WORD offset of Dispatcher Ready list
6Eh WORD offset of root of Poll List
70h WORD reserved
72h WORD offset of root of Thread List
74h WORD offset of root of Queue List
76h WORD offset of Memory Allocation list
78h WORD segment of version string
7Ah WORD BDOS version number
7Ch WORD OS version number
7Eh WORD number of days since 01jan1978
80h BYTE current time: hour
81h BYTE current time: minute
82h BYTE current time: second
83h BYTE number of XIOS consoles
84h BYTE number of XIOS list (printer) devices
85h BYTE total number of character devices
86h WORD offset of LCB table
88h WORD bitmap of open files
8Ah BYTE maximum locked records per process
8Bh BYTE maximum open files per process
8Ch WORD offset of process descriptor for math coprocessor's owner
8Eh WORD offset of Auxiliary Control Block
90h 8 BYTEs reserved
98h WORD offset of root Memory Window Descriptor
9Ah WORD reserved
9Ch BYTE number of Auxiliary Control Blocks
9Dh BYTE default search disk
9Eh BYTE reserved
9Fh BYTE number of physical consoles
A0h DWORD address of 8087 interrupt handler
A4h DWORD address of default 8087 exception handler
... reserved
C00h 82 BYTEs XIOS header structure (see #3781)

Format of REAL/32 XIOS header structure:
Offset Size Description (Table 3781)
00h 3 BYTEs XIOS initialization entry point
03h 3 BYTEs XIOS service entry point
06h WORD segment address of system data
08h DWORD address of supervisor entry point
0Ch BYTE set tick flag
0Dh BYTE ticks per second
0Eh BYTE global Door Open interrupt flag
0Fh BYTE number of Auxiliary Control Blocks
10h BYTE number of physical consoles
11h BYTE number of virtual consoles
12h BYTE number of logical consoles
13h BYTE number of list control blocks
14h WORD offset of CCB table
16h WORD offset of LCB table
18h 16 WORDs offsets into DPH for drives A-P
38h WORD buffer size in paragraphs
3Ah WORD offset of ACB table
3Ch WORD used by OEM
3Eh WORD offset of CCB pointer array
40h WORD offset of LCB pointer array
42h WORD offset of ACB pointer array
44h BYTE 'first' flag
45h BYTE unused
46h WORD offset of print device support table
48h WORD offset of aux device support table
4Ah WORD XIOS extra segment
4Ch WORD segment of save end address for debug
4Eh WORD segment of save start address for debug
50h BYTE number of main virtual console
51h WORD segment of XIOS code

See Also: #3780