Rev 2014 | Rev 3487 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | ha | 1 | ; |
2 | ; MEMORY MAP |
||
3 | ; |
||
4 | ; Boot: |
||
5 | ; |
||
1940 | art_zh | 6 | ; 0:7C00->7CFF boot_code |
7 | ; |
||
1 | ha | 8 | ; 0:9000 byte bits per pixel |
9 | ; 0:9001 word scanline length |
||
10 | ; 0:9008 word vesa video mode |
||
11 | ; 0:900A word X res |
||
12 | ; 0:900C word Y res |
||
13 | ; 0:9010 byte mouse port - not used |
||
14 | ; 0:9014 dword Vesa 1.2 pm bank switch |
||
15 | ; 0:9018 dword Vesa 2.0 LFB address |
||
16 | ; 0:901C byte 0 or 1 : enable MTRR graphics acceleration |
||
17 | ; 0:901D byte not used anymore (0 or 1 : enable system log display) |
||
18 | ; 0:901E byte 0 or 1 : enable direct lfb write, paging disabled |
||
346 | diamond | 19 | ; 0:901F byte DMA write : 1=yes, 2=no |
1 | ha | 20 | ; 0:9020 8bytes pci data |
21 | ; 0:9030 byte VRR start enabled 1, 2-no |
||
22 | ; 0:9031 word IDEContrRegsBaseAddr |
||
76 | mario79 | 23 | ; 0x9040 - dword - entry point of APM BIOS |
24 | ; 0x9044 - word - version (BCD) |
||
25 | ; 0x9046 - word - flags |
||
709 | diamond | 26 | ; 0:907F byte number of BIOS hard disks |
27 | ; 0:9080 Nbytes BIOS hard disks |
||
1103 | diamond | 28 | ; 0:9100 word available physical memory map: number of blocks |
29 | ; 0:9104 available physical memory map: blocks |
||
1 | ha | 30 | ; |
31 | ; Runtime: |
||
32 | ; |
||
465 | serge | 33 | ; 0x00000000 -> 0x7FFFFFFF application 2Gb |
34 | |||
1172 | diamond | 35 | ; 0x80000000 -> 0FFF physical page zero - do not write |
36 | ; (used by int 13h in some configurations) |
||
1 | ha | 37 | ; |
1172 | diamond | 38 | ; 0x80001000 -> 2FFF window_data - 256 entries |
39 | ; |
||
1 | ha | 40 | ; 0000 dword x start |
41 | ; 0004 dword y start |
||
42 | ; 0008 dword x size |
||
43 | ; 000C dword y size |
||
44 | ; 0010 dword color of work area |
||
45 | ; 0014 dword color of grab bar |
||
46 | ; 0018 dword color of frames |
||
47 | ; 001C dword window flags, +30 = window drawn, +31 redraw flag |
||
48 | ; |
||
49 | ; 3000 -> 4FFF task list - 256 entries |
||
50 | ; |
||
51 | ; 00 dword process count |
||
52 | ; 04 dword no of processes |
||
53 | ; 10 dword base of running process at 0x3000+ |
||
54 | ; |
||
55 | ; 20 dword application event mask |
||
56 | ; 24 dword PID - process identification number |
||
115 | poddubny | 57 | ; 2a byte slot state: 0=running, 1,2=suspended |
58 | ; 3=zombie, 4=terminate, |
||
59 | ; 5=waiting for event, 9 = not used |
||
1 | ha | 60 | ; 2e byte window number on screen |
61 | ; 30 dword exact position in memory |
||
62 | ; 34 dword counter sum |
||
63 | ; 38 dword time stamp counter add |
||
64 | ; 3c dword cpu usage in cpu timer tics |
||
65 | ; |
||
66 | ; |
||
1941 | art_zh | 67 | ; 5000 -> 73FF << FLOPPY buffer (9k) - fs/fat12.inc |
68 | |||
69 | ; 7400 -> 78ff << IDT for int_0x00..int_0x40 + reserv |
||
70 | |||
71 | ; 7900 -> 7EFF << saved picture under mouse pointer (1k5) |
||
1 | ha | 72 | ; |
1941 | art_zh | 73 | ; 7F00 -> 7FFF << SB16_Status (256) |
1 | ha | 74 | ; |
1941 | art_zh | 75 | ; XX 8000 -> BFFF free (16k) XX |
76 | ; 0x80008000 -> 9FFF ramdisk fat (8k) |
||
77 | ; 0x8000A000 -> BFFF floppy fat (8k) |
||
8 | poddubny | 78 | |
1 | ha | 79 | ; C000 -> C3FF window stack C000 no of windows - all in words |
80 | ; C402 -> C7FF window position in stack |
||
81 | ; D000 -> D1FF FDC controller |
||
82 | ; D200 -> D3FF FDC controller for Fat12 |
||
1388 | art_zh | 83 | ; D400 -> DFFF free (3k) |
1941 | art_zh | 84 | |
85 | ; E000 -> F9FF free (6k5) |
||
86 | |||
87 | ; FA00 byte no of keys in buffer |
||
88 | ; FA01 byte 'buffer' |
||
89 | ; FA02 -> FAFF reserved for keys |
||
90 | |||
91 | ; FB00 byte no of buttons in buffer |
||
92 | ; FB01 dword 'buffer' |
||
93 | ; FB02 -> FBFF reserved for buttons |
||
94 | |||
95 | |||
1 | ha | 96 | ; FC00 -> FCFE com1/ps2 buffer |
97 | ; FCFF com1/ps2 buffer count starting from FC00 |
||
1941 | art_zh | 98 | |
1388 | art_zh | 99 | ; FD00 -> FDFF free (256) |
1941 | art_zh | 100 | |
101 | ; FE00 -> FE0F mouse memory 00 chunk count, that includes: |
||
102 | ; FE08 word -- mouse H-scroll |
||
103 | ; FE0A word -- mouse x |
||
104 | ; FE0C word -- mouse y |
||
105 | ; FE0E word -- mouse V-scroll |
||
106 | |||
107 | ; FE10 -> FB17 mouse color mem |
||
108 | ; FE21 x move |
||
109 | ; FE22 y move |
||
110 | ; FE28 high bits temp |
||
111 | ; FE30 color temp |
||
112 | ; FE40 byte buttons down |
||
113 | ; FE44 byte 0 mouse down -> do not draw |
||
114 | ; FE4A -> FE4D FE4A-B x-under - FE4C-D y-under |
||
115 | |||
116 | ; FEB8 dword putpixel address |
||
117 | ; FEBC dword getpixel address |
||
118 | ; FEC1 byte bits per pixel |
||
119 | ; FEC4 dword mouse appearance counter |
||
120 | ; FEC8 dword x & y temp for windowmove |
||
121 | ; FECC dword tsc / second |
||
122 | |||
123 | ; FED0 dword screen x size |
||
124 | ; FED4 dword screen y size |
||
125 | ; FED8 dword screen y multiplier |
||
126 | ; FEDC dword screen mode |
||
127 | |||
128 | ; FEE4 dword PCIe extended (memory-mappable) config space - physical address |
||
129 | ; FEE8 dword PCIe extended config space limit |
||
130 | ; FEEC word number of 4M-pages needed to map PCIe config space |
||
131 | ; FEEE word PCIe bus range (power-ow-two Mbytes) |
||
132 | |||
133 | ; FEF0 dword physical address of user-accessible static system buffer |
||
134 | ; FEF4 dword physical address of LFB |
||
135 | ; FEF8 dword address of button list |
||
136 | ; FEFC dword memory to use |
||
1 | ha | 137 | ; FF00 byte 1 = system shutdown request |
1388 | art_zh | 138 | ; FF01 byte task activation request? |
1941 | art_zh | 139 | |
140 | ; FFE4 -> FFEF background info |
||
1393 | art_zh | 141 | ; FFF0 byte >0 if redraw background request from app |
142 | ; FFF1 byte >0 if background changed |
||
1 | ha | 143 | ; FFF2 write and read bank in screen |
144 | ; FFF4 byte 0 if first mouse draw & do not return picture under |
||
145 | ; FFF5 byte 1 do not draw pointer |
||
146 | ; FFFF byte do not change task for 1/100 sec. |
||
147 | ; |
||
1941 | art_zh | 148 | ; 0x80010000 -> 6CBFF the kernel (up to 371 Kb) |
1683 | art_zh | 149 | ; in the current version: |
1899 | art_zh | 150 | ; -> 00B3C 16-bit code end |
1707 | art_zh | 151 | ; -> 00C40 16-bit data end |
2014 | art_zh | 152 | ; -> 105F0 32-bit code start |
153 | ; -> 2C889 32-bit code end |
||
154 | ; -> 2FC28..end_of_kernel zero-filled zone after preinit_mem |
||
155 | ; -> 33563 uninitialized globals start |
||
156 | ; -> 3B752 end_of_kernel |
||
1941 | art_zh | 157 | ; -> 3C000 not used (>200k) |
158 | ; 0x80050000 -> 090000 zero-filled zone after preinit_mem |
||
516 | serge | 159 | ; 0x8006CC00 -> 6DBFF stack at boot time (4Kb) |
160 | ; |
||
161 | ; 0x8006DC00 -> 6E5FF basic text font II |
||
162 | ; 0x8006E600 -> 6Efff basic text font I |
||
163 | ; 0x8006F000 -> 6FFFF main page directory |
||
22 | poddubny | 164 | |
516 | serge | 165 | ; 0x80070000 -> 7FFFF data of retrieved disks and partitions (Mario79) |
465 | serge | 166 | ; 0x80080000 -> 8FFFF additional app info, in 256 byte steps - 256 entries |
1 | ha | 167 | ; |
465 | serge | 168 | ; 00 11db name of app running |
169 | ; 0x10 dword pointer to fpu save area |
||
170 | ; 0x14 dword event count |
||
171 | ; 0x18 dword user fpu exceptoins handler |
||
172 | ; 0x1c dword user sse exceptions handler |
||
173 | ; 20 dword PL0 stack base |
||
174 | ; 24 dword user heap base |
||
175 | ; 28 dword user heap top |
||
176 | ; 2c dword window cursor handle |
||
177 | ; 30 dword first event in list |
||
178 | ; 34 dword last event in list |
||
179 | ; 38 dword first kernel object in list |
||
180 | ; 3c dword last kernel object in list |
||
181 | ; 40 dword thread esp |
||
182 | ; 44 dword io permission map page 0 |
||
183 | ; 48 dword io permission map page 1 |
||
540 | victor | 184 | ; 4c dword debug state: 1= load debug registers |
709 | diamond | 185 | ; 50 dword current directory ptr |
186 | ; 54 dword wait timeout |
||
187 | ; 58 dword thread TSS._esp0 (= pl0 stack base + size except for V86) |
||
188 | ; 5C-7F unused |
||
1 | ha | 189 | ; |
465 | serge | 190 | ; 80 dword address of random shaped window area |
191 | ; 84 byte shape area scale |
||
192 | ; 88 dword free |
||
193 | ; 8C dword application memory size |
||
194 | ; 90 dword window X position save |
||
195 | ; 94 dword window Y position save |
||
196 | ; 98 dword window X size save |
||
197 | ; 9C dword window Y size save |
||
198 | ; A0 dword IPC memory start |
||
199 | ; A4 dword IPC memory size |
||
200 | ; A8 dword event bits: mouse, stack,.. |
||
201 | ; AC dword 0 or debugger slot |
||
202 | ; B0 dword free |
||
203 | ; B4 byte keyboard mode: 0 = keymap, 1 = scancodes |
||
204 | ; B8 dword physical address of directory table |
||
205 | ; BC dword address of debug event memory |
||
206 | ; C0 5 dd thread debug registers: DR0,DR1,DR2,DR3,DR7 |
||
1 | ha | 207 | ; |
1941 | art_zh | 208 | ; 0x80090000 -> 9FFFF wav device buffer (64k) ; << SB16Buffer |
209 | ; 0x800A0000 -> AFFFF screen access area << VGA legacy buffer |
||
210 | ; 0x800B0000 -> FFFFF bios rest in peace -area (320k), << purpose unknown |
||
211 | ; 0x80100000 -> 283FFF diskette image (1m5) |
||
1683 | art_zh | 212 | |
1941 | art_zh | 213 | ; 0x80284000 -> HEAP_BASE zero-filled zone after preinit_mem |
1 | ha | 214 | ; |
1941 | art_zh | 215 | ; 0x80284000 -> 28BFFF HDD DMA AREA (32k) |
1388 | art_zh | 216 | ; 0x8028C000 -> 297FFF free (48k) |
1 | ha | 217 | ; |
1388 | art_zh | 218 | ; 0x80298000 -> 29ffff auxiliary table for background smoothing code (32k) |
555 | diamond | 219 | ; |
1941 | art_zh | 220 | ; 0x802A0000 -> 2Bffff free (128k) |
221 | ; 0x80328000 -> 32FFFF !vrr driver (32k) |
||
222 | |||
223 | |||
224 | ; 0x80338000 -> 338FFF draw data - 256 entries (4k) |
||
225 | ; 00 dword draw limit - x start |
||
226 | ; 04 dword draw limit - y start |
||
227 | ; 08 dword draw limit - x end |
||
228 | ; 0C dword draw limit - y end |
||
229 | ; 0x80339000 -> 3BFFF3 free (12k) |
||
230 | |||
1388 | art_zh | 231 | ; 0x802C0000 -> 2C3fff button info (8k) |
465 | serge | 232 | ; |
233 | ; 0000 word number of buttons |
||
1 | ha | 234 | ; first button entry at 0x10 |
465 | serge | 235 | ; +0000 word process number |
236 | ; +0002 word button id number : bits 00-15 |
||
237 | ; +0004 word x start |
||
238 | ; +0006 word x size |
||
239 | ; +0008 word y start |
||
240 | ; +000A word y size |
||
241 | ; +000C word button id number : bits 16-31 |
||
1 | ha | 242 | ; |
1388 | art_zh | 243 | ; 0x802C4000 -> 2CFFFF free (48k) |
22 | poddubny | 244 | ; |
1388 | art_zh | 245 | ; 0x802D0000 -> 2DFFFF reserved port area (64k) |
1 | ha | 246 | ; |
465 | serge | 247 | ; 0000 dword no of port areas reserved |
248 | ; 0010 dword process id |
||
249 | ; dword start port |
||
250 | ; dword end port |
||
251 | ; dword 0 |
||
1 | ha | 252 | ; |
1941 | art_zh | 253 | ; 0x80370000 -> 37FFFF irq data area (64k) |
254 | ; 0x80380000 -> 38FFFF low memory save (64k) |
||
1 | ha | 255 | ; |
1941 | art_zh | 256 | ; 0x80390000 -> 3AFFFF tcp memory (128k) |
257 | ; 0x803B0000 -> 3B7FFF tcp memory (32k) |
||
513 | serge | 258 | |
1941 | art_zh | 259 | ; 0x803B8000 -> 3BFFFF skin data (32k) |
513 | serge | 260 | |
1941 | art_zh | 261 | ; 0x803C0000 page map (length b = memsize shr 15) |
262 | ; 0x803C0000 + b start of static pagetables |
||
1487 | art_zh | 263 | |
264 | ; 0x803FFFFF <- no direct address translation beyond this point |
||
1941 | art_zh | 265 | ; ============================================================= |
1487 | art_zh | 266 | |
1941 | art_zh | 267 | ; 0x805FF000 -> 5FFF80 TSS |
1487 | art_zh | 268 | ; 0x80600000 -> 601FFF i/o maps |
269 | |||
3168 | art_zh | 270 | ; 0x80800000 ->827FFFFF kernel heap |
1 | ha | 271 | |
1487 | art_zh | 272 | ; 0xF0000000 -> 0xF1FFFFFF PCI-express extended config space |
1508 | art_zh | 273 | ; 0xFD000000 -> 0xFD3FFFFF static system buffer 4Mb |
465 | serge | 274 | ; 0xFDC00000 -> 0xFDFFFFFF page tables 4Mb |
275 | ; 0xFE000000 -> 0xFFFFFFFF LFB 32Mb |
||
276 | ; 0xFE000000 -> 0xFE7FFFFF application available LFB 8Mb |
||
277 | ; 0xFE800000 -> 0xFFFFFFFF kernel LFB part 24 Mb->><>><>><>><>><>><>><> |
||
1 | ha | 278 |