Rev 1056 | Rev 1172 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1056 | Rev 1103 | ||
---|---|---|---|
1 | ; |
1 | ; |
2 | ; MEMORY MAP |
2 | ; MEMORY MAP |
3 | ; |
3 | ; |
4 | ; Boot: |
4 | ; Boot: |
5 | ; |
5 | ; |
6 | ; 0:9000 byte bits per pixel |
6 | ; 0:9000 byte bits per pixel |
7 | ; 0:9001 word scanline length |
7 | ; 0:9001 word scanline length |
8 | ; 0:9008 word vesa video mode |
8 | ; 0:9008 word vesa video mode |
9 | ; 0:900A word X res |
9 | ; 0:900A word X res |
10 | ; 0:900C word Y res |
10 | ; 0:900C word Y res |
11 | ; 0:9010 byte mouse port - not used |
11 | ; 0:9010 byte mouse port - not used |
12 | ; 0:9014 dword Vesa 1.2 pm bank switch |
12 | ; 0:9014 dword Vesa 1.2 pm bank switch |
13 | ; 0:9018 dword Vesa 2.0 LFB address |
13 | ; 0:9018 dword Vesa 2.0 LFB address |
14 | ; 0:901C byte 0 or 1 : enable MTRR graphics acceleration |
14 | ; 0:901C byte 0 or 1 : enable MTRR graphics acceleration |
15 | ; 0:901D byte not used anymore (0 or 1 : enable system log display) |
15 | ; 0:901D byte not used anymore (0 or 1 : enable system log display) |
16 | ; 0:901E byte 0 or 1 : enable direct lfb write, paging disabled |
16 | ; 0:901E byte 0 or 1 : enable direct lfb write, paging disabled |
17 | ; 0:901F byte DMA write : 1=yes, 2=no |
17 | ; 0:901F byte DMA write : 1=yes, 2=no |
18 | ; 0:9020 8bytes pci data |
18 | ; 0:9020 8bytes pci data |
19 | ; 0:9030 byte VRR start enabled 1, 2-no |
19 | ; 0:9030 byte VRR start enabled 1, 2-no |
20 | ; 0:9031 word IDEContrRegsBaseAddr |
20 | ; 0:9031 word IDEContrRegsBaseAddr |
21 | ; 0x9040 - dword - entry point of APM BIOS |
21 | ; 0x9040 - dword - entry point of APM BIOS |
22 | ; 0x9044 - word - version (BCD) |
22 | ; 0x9044 - word - version (BCD) |
23 | ; 0x9046 - word - flags |
23 | ; 0x9046 - word - flags |
24 | ; 0:907F byte number of BIOS hard disks |
24 | ; 0:907F byte number of BIOS hard disks |
25 | ; 0:9080 Nbytes BIOS hard disks |
25 | ; 0:9080 Nbytes BIOS hard disks |
- | 26 | ; 0:9100 word available physical memory map: number of blocks |
|
- | 27 | ; 0:9104 available physical memory map: blocks |
|
26 | ; |
28 | ; |
27 | ; Runtime: |
29 | ; Runtime: |
28 | ; |
30 | ; |
29 | ; 0x00000000 -> 0x7FFFFFFF application 2Gb |
31 | ; 0x00000000 -> 0x7FFFFFFF application 2Gb |
30 | 32 | ||
31 | ; 0x80000000 -> 1FFF window_data - 256 entries |
33 | ; 0x80000000 -> 1FFF window_data - 256 entries |
32 | ; |
34 | ; |
33 | ; 0000 dword x start |
35 | ; 0000 dword x start |
34 | ; 0004 dword y start |
36 | ; 0004 dword y start |
35 | ; 0008 dword x size |
37 | ; 0008 dword x size |
36 | ; 000C dword y size |
38 | ; 000C dword y size |
37 | ; 0010 dword color of work area |
39 | ; 0010 dword color of work area |
38 | ; 0014 dword color of grab bar |
40 | ; 0014 dword color of grab bar |
39 | ; 0018 dword color of frames |
41 | ; 0018 dword color of frames |
40 | ; 001C dword window flags, +30 = window drawn, +31 redraw flag |
42 | ; 001C dword window flags, +30 = window drawn, +31 redraw flag |
41 | ; |
43 | ; |
42 | ; 2000 -> 2FFF free |
44 | ; 2000 -> 2FFF free |
43 | ; |
45 | ; |
44 | ; 3000 -> 4FFF task list - 256 entries |
46 | ; 3000 -> 4FFF task list - 256 entries |
45 | ; |
47 | ; |
46 | ; 00 dword process count |
48 | ; 00 dword process count |
47 | ; 04 dword no of processes |
49 | ; 04 dword no of processes |
48 | ; 10 dword base of running process at 0x3000+ |
50 | ; 10 dword base of running process at 0x3000+ |
49 | ; |
51 | ; |
50 | ; 20 dword application event mask |
52 | ; 20 dword application event mask |
51 | ; 24 dword PID - process identification number |
53 | ; 24 dword PID - process identification number |
52 | ; 2a byte slot state: 0=running, 1,2=suspended |
54 | ; 2a byte slot state: 0=running, 1,2=suspended |
53 | ; 3=zombie, 4=terminate, |
55 | ; 3=zombie, 4=terminate, |
54 | ; 5=waiting for event, 9 = not used |
56 | ; 5=waiting for event, 9 = not used |
55 | ; 2e byte window number on screen |
57 | ; 2e byte window number on screen |
56 | ; 30 dword exact position in memory |
58 | ; 30 dword exact position in memory |
57 | ; 34 dword counter sum |
59 | ; 34 dword counter sum |
58 | ; 38 dword time stamp counter add |
60 | ; 38 dword time stamp counter add |
59 | ; 3c dword cpu usage in cpu timer tics |
61 | ; 3c dword cpu usage in cpu timer tics |
60 | ; |
62 | ; |
61 | ; |
63 | ; |
62 | ; 5000 -> 68FF free |
64 | ; 5000 -> 68FF free |
63 | ; 6900 -> 6EFF saved picture under mouse pointer |
65 | ; 6900 -> 6EFF saved picture under mouse pointer |
64 | ; |
66 | ; |
65 | ; 6F00 -> 6FFF free |
67 | ; 6F00 -> 6FFF free |
66 | ; |
68 | ; |
67 | ; 7000 -> 7FFF used CD driver |
69 | ; 7000 -> 7FFF used CD driver |
68 | ; |
70 | ; |
69 | ; 8000 -> A3FF used FLOPPY driver |
71 | ; 8000 -> A3FF used FLOPPY driver |
70 | ; |
72 | ; |
71 | ; A400 -> B0FF free |
73 | ; A400 -> B0FF free |
72 | 74 | ||
73 | ; B100 -> B307 IDT for int_0x00..int_0x40 |
75 | ; B100 -> B307 IDT for int_0x00..int_0x40 |
74 | 76 | ||
75 | ; B308 -> BFFF free |
77 | ; B308 -> BFFF free |
76 | 78 | ||
77 | ; C000 -> C3FF window stack C000 no of windows - all in words |
79 | ; C000 -> C3FF window stack C000 no of windows - all in words |
78 | ; C402 -> C7FF window position in stack |
80 | ; C402 -> C7FF window position in stack |
79 | ; D000 -> D1FF FDC controller |
81 | ; D000 -> D1FF FDC controller |
80 | ; D200 -> D3FF FDC controller for Fat12 |
82 | ; D200 -> D3FF FDC controller for Fat12 |
81 | ; D400 -> DFFF free |
83 | ; D400 -> DFFF free |
82 | ; E000 byte multitasking started |
84 | ; E000 byte multitasking started |
83 | ; E020 dword putpixel address |
85 | ; E020 dword putpixel address |
84 | ; E024 dword getpixel address |
86 | ; E024 dword getpixel address |
85 | ; E030 dword Vesa 1.2 pm bank switch address |
87 | ; E030 dword Vesa 1.2 pm bank switch address |
86 | ; F200 dword mousepicture -pointer |
88 | ; F200 dword mousepicture -pointer |
87 | ; F204 dword mouse appearance counter |
89 | ; F204 dword mouse appearance counter |
88 | ; F300 dword x & y temp for windowmove |
90 | ; F300 dword x & y temp for windowmove |
89 | ; F400 byte no of keys in buffer |
91 | ; F400 byte no of keys in buffer |
90 | ; F401 byte 'buffer' |
92 | ; F401 byte 'buffer' |
91 | ; F402 -> F4FF reserved for keys |
93 | ; F402 -> F4FF reserved for keys |
92 | ; F500 byte no of buttons in buffer |
94 | ; F500 byte no of buttons in buffer |
93 | ; F501 dword 'buffer' |
95 | ; F501 dword 'buffer' |
94 | ; F502 -> F5FF reserved for buttons |
96 | ; F502 -> F5FF reserved for buttons |
95 | ; F600 dword tsc / second |
97 | ; F600 dword tsc / second |
96 | ; F604 byte mouse port: 1 ps2, 2 com1, 3 com2 |
98 | ; F604 byte mouse port: 1 ps2, 2 com1, 3 com2 |
97 | ; FB00 -> FB0F mouse memory 00 chunk count - FB0A-B x - FB0C-D y |
99 | ; FB00 -> FB0F mouse memory 00 chunk count - FB0A-B x - FB0C-D y |
98 | ; FB10 -> FB17 mouse color mem |
100 | ; FB10 -> FB17 mouse color mem |
99 | ; FB21 x move |
101 | ; FB21 x move |
100 | ; FB22 y move |
102 | ; FB22 y move |
101 | ; FB28 high bits temp |
103 | ; FB28 high bits temp |
102 | ; FB30 color temp |
104 | ; FB30 color temp |
103 | ; FB40 byte buttons down |
105 | ; FB40 byte buttons down |
104 | ; FB44 byte 0 mouse down -> do not draw |
106 | ; FB44 byte 0 mouse down -> do not draw |
105 | ; FB4A -> FB4D FB4A-B x-under - FB4C-D y-under |
107 | ; FB4A -> FB4D FB4A-B x-under - FB4C-D y-under |
106 | ; FBF1 byte bits per pixel |
108 | ; FBF1 byte bits per pixel |
107 | ; FC00 -> FCFE com1/ps2 buffer |
109 | ; FC00 -> FCFE com1/ps2 buffer |
108 | ; FCFF com1/ps2 buffer count starting from FC00 |
110 | ; FCFF com1/ps2 buffer count starting from FC00 |
109 | ; FE00 dword screen x size |
111 | ; FE00 dword screen x size |
110 | ; FE04 dword screen y size |
112 | ; FE04 dword screen y size |
111 | ; FE08 dword screen y multiplier |
113 | ; FE08 dword screen y multiplier |
112 | ; FE0C dword screen mode |
114 | ; FE0C dword screen mode |
113 | ; FE80 dword address of LFB in physical |
115 | ; FE80 dword address of LFB in physical |
114 | ; FE84 dword address of applications memory start in physical |
116 | ; FE84 dword address of applications memory start in physical |
115 | ; FE88 dword address of button list |
117 | ; FE88 dword address of button list |
116 | ; FE8C dword memory to use |
118 | ; FE8C dword memory to use |
117 | ; FF00 byte 1 = system shutdown request |
119 | ; FF00 byte 1 = system shutdown request |
118 | ; FF01 dword free |
120 | ; FF01 dword free |
119 | ; FFF0 byte 1 = redraw background request from app |
121 | ; FFF0 byte 1 = redraw background request from app |
120 | ; FFF1 byte 1 = diskette int occur |
122 | ; FFF1 byte 1 = diskette int occur |
121 | ; FFF2 write and read bank in screen |
123 | ; FFF2 write and read bank in screen |
122 | ; FFF4 byte 0 if first mouse draw & do not return picture under |
124 | ; FFF4 byte 0 if first mouse draw & do not return picture under |
123 | ; FFF5 byte 1 do not draw pointer |
125 | ; FFF5 byte 1 do not draw pointer |
124 | ; FFFF byte do not change task for 1/100 sec. |
126 | ; FFFF byte do not change task for 1/100 sec. |
125 | ; |
127 | ; |
126 | ; 0x80010000 -> 6CBFF kernel, 32-bit run-time code (up to 371 Kb) |
128 | ; 0x80010000 -> 6CBFF kernel, 32-bit run-time code (up to 371 Kb) |
127 | 129 | ||
128 | ; 0x8006CC00 -> 6DBFF stack at boot time (4Kb) |
130 | ; 0x8006CC00 -> 6DBFF stack at boot time (4Kb) |
129 | ; |
131 | ; |
130 | ; 0x8006DC00 -> 6E5FF basic text font II |
132 | ; 0x8006DC00 -> 6E5FF basic text font II |
131 | ; 0x8006E600 -> 6Efff basic text font I |
133 | ; 0x8006E600 -> 6Efff basic text font I |
132 | ; 0x8006F000 -> 6FFFF main page directory |
134 | ; 0x8006F000 -> 6FFFF main page directory |
133 | 135 | ||
134 | ; 0x80070000 -> 7FFFF data of retrieved disks and partitions (Mario79) |
136 | ; 0x80070000 -> 7FFFF data of retrieved disks and partitions (Mario79) |
135 | ; 0x80080000 -> 8FFFF additional app info, in 256 byte steps - 256 entries |
137 | ; 0x80080000 -> 8FFFF additional app info, in 256 byte steps - 256 entries |
136 | ; |
138 | ; |
137 | ; 00 11db name of app running |
139 | ; 00 11db name of app running |
138 | ; 0x10 dword pointer to fpu save area |
140 | ; 0x10 dword pointer to fpu save area |
139 | ; 0x14 dword event count |
141 | ; 0x14 dword event count |
140 | ; 0x18 dword user fpu exceptoins handler |
142 | ; 0x18 dword user fpu exceptoins handler |
141 | ; 0x1c dword user sse exceptions handler |
143 | ; 0x1c dword user sse exceptions handler |
142 | ; 20 dword PL0 stack base |
144 | ; 20 dword PL0 stack base |
143 | ; 24 dword user heap base |
145 | ; 24 dword user heap base |
144 | ; 28 dword user heap top |
146 | ; 28 dword user heap top |
145 | ; 2c dword window cursor handle |
147 | ; 2c dword window cursor handle |
146 | ; 30 dword first event in list |
148 | ; 30 dword first event in list |
147 | ; 34 dword last event in list |
149 | ; 34 dword last event in list |
148 | ; 38 dword first kernel object in list |
150 | ; 38 dword first kernel object in list |
149 | ; 3c dword last kernel object in list |
151 | ; 3c dword last kernel object in list |
150 | ; 40 dword thread esp |
152 | ; 40 dword thread esp |
151 | ; 44 dword io permission map page 0 |
153 | ; 44 dword io permission map page 0 |
152 | ; 48 dword io permission map page 1 |
154 | ; 48 dword io permission map page 1 |
153 | ; 4c dword debug state: 1= load debug registers |
155 | ; 4c dword debug state: 1= load debug registers |
154 | ; 50 dword current directory ptr |
156 | ; 50 dword current directory ptr |
155 | ; 54 dword wait timeout |
157 | ; 54 dword wait timeout |
156 | ; 58 dword thread TSS._esp0 (= pl0 stack base + size except for V86) |
158 | ; 58 dword thread TSS._esp0 (= pl0 stack base + size except for V86) |
157 | ; 5C-7F unused |
159 | ; 5C-7F unused |
158 | ; |
160 | ; |
159 | ; 80 dword address of random shaped window area |
161 | ; 80 dword address of random shaped window area |
160 | ; 84 byte shape area scale |
162 | ; 84 byte shape area scale |
161 | ; 88 dword free |
163 | ; 88 dword free |
162 | ; 8C dword application memory size |
164 | ; 8C dword application memory size |
163 | ; 90 dword window X position save |
165 | ; 90 dword window X position save |
164 | ; 94 dword window Y position save |
166 | ; 94 dword window Y position save |
165 | ; 98 dword window X size save |
167 | ; 98 dword window X size save |
166 | ; 9C dword window Y size save |
168 | ; 9C dword window Y size save |
167 | ; A0 dword IPC memory start |
169 | ; A0 dword IPC memory start |
168 | ; A4 dword IPC memory size |
170 | ; A4 dword IPC memory size |
169 | ; A8 dword event bits: mouse, stack,.. |
171 | ; A8 dword event bits: mouse, stack,.. |
170 | ; AC dword 0 or debugger slot |
172 | ; AC dword 0 or debugger slot |
171 | ; B0 dword free |
173 | ; B0 dword free |
172 | ; B4 byte keyboard mode: 0 = keymap, 1 = scancodes |
174 | ; B4 byte keyboard mode: 0 = keymap, 1 = scancodes |
173 | ; B8 dword physical address of directory table |
175 | ; B8 dword physical address of directory table |
174 | ; BC dword address of debug event memory |
176 | ; BC dword address of debug event memory |
175 | ; C0 5 dd thread debug registers: DR0,DR1,DR2,DR3,DR7 |
177 | ; C0 5 dd thread debug registers: DR0,DR1,DR2,DR3,DR7 |
176 | ; |
178 | ; |
177 | ; 0x80090000 -> 9FFFF tmp |
179 | ; 0x80090000 -> 9FFFF tmp |
178 | ; 0x800A0000 -> AFFFF screen access area |
180 | ; 0x800A0000 -> AFFFF screen access area |
179 | ; 0x800B0000 -> FFFFF bios rest in peace -area |
181 | ; 0x800B0000 -> FFFFF bios rest in peace -area |
180 | ; 0x80100000 -> 27FFFF diskette image |
182 | ; 0x80100000 -> 27FFFF diskette image |
181 | ; 0x80280000 -> 281FFF ramdisk fat |
183 | ; 0x80280000 -> 281FFF ramdisk fat |
182 | ; 0x80282000 -> 283FFF floppy fat |
184 | ; 0x80282000 -> 283FFF floppy fat |
183 | ; |
185 | ; |
184 | ; 0x80284000 -> 28BFFF HDD DMA AREA |
186 | ; 0x80284000 -> 28BFFF HDD DMA AREA |
185 | ; 0x8028C000 -> 297FFF free (48 Kb) |
187 | ; 0x8028C000 -> 297FFF free (48 Kb) |
186 | ; |
188 | ; |
187 | ; 0x80298000 -> 29ffff auxiliary table for background smoothing code |
189 | ; 0x80298000 -> 29ffff auxiliary table for background smoothing code |
188 | ; |
190 | ; |
189 | ; 0x802A0000 -> 2B00ff wav device data |
191 | ; 0x802A0000 -> 2B00ff wav device data |
190 | ; 0x802C0000 -> 2C3fff button info |
192 | ; 0x802C0000 -> 2C3fff button info |
191 | ; |
193 | ; |
192 | ; 0000 word number of buttons |
194 | ; 0000 word number of buttons |
193 | ; first button entry at 0x10 |
195 | ; first button entry at 0x10 |
194 | ; +0000 word process number |
196 | ; +0000 word process number |
195 | ; +0002 word button id number : bits 00-15 |
197 | ; +0002 word button id number : bits 00-15 |
196 | ; +0004 word x start |
198 | ; +0004 word x start |
197 | ; +0006 word x size |
199 | ; +0006 word x size |
198 | ; +0008 word y start |
200 | ; +0008 word y start |
199 | ; +000A word y size |
201 | ; +000A word y size |
200 | ; +000C word button id number : bits 16-31 |
202 | ; +000C word button id number : bits 16-31 |
201 | ; |
203 | ; |
202 | ; 0x802C4000 -> 2CFFFF free (48Kb) |
204 | ; 0x802C4000 -> 2CFFFF free (48Kb) |
203 | ; |
205 | ; |
204 | ; 0x802D0000 -> 2DFFFF reserved port area |
206 | ; 0x802D0000 -> 2DFFFF reserved port area |
205 | ; |
207 | ; |
206 | ; 0000 dword no of port areas reserved |
208 | ; 0000 dword no of port areas reserved |
207 | ; 0010 dword process id |
209 | ; 0010 dword process id |
208 | ; dword start port |
210 | ; dword start port |
209 | ; dword end port |
211 | ; dword end port |
210 | ; dword 0 |
212 | ; dword 0 |
211 | ; |
213 | ; |
212 | ; 0x802E0000 -> 2EFFFF irq data area |
214 | ; 0x802E0000 -> 2EFFFF irq data area |
213 | ; 0x802F0000 -> 2FFFFF low memory save |
215 | ; 0x802F0000 -> 2FFFFF low memory save |
214 | ; |
216 | ; |
215 | ; 0x80300000 -> 31FFFF tcp memory 128 Kb |
217 | ; 0x80300000 -> 31FFFF tcp memory 128 Kb |
216 | ; 0x80320000 -> 327FFF tcp memory 32 Kb |
218 | ; 0x80320000 -> 327FFF tcp memory 32 Kb |
217 | ; |
219 | ; |
218 | ; 0x80328000 -> 32FFFF !vrr driver 32 Kb |
220 | ; 0x80328000 -> 32FFFF !vrr driver 32 Kb |
219 | 221 | ||
220 | ; 0x80330000 -> 377FFF skin data |
222 | ; 0x80330000 -> 377FFF skin data |
221 | 223 | ||
222 | ; 0x80338000 -> 33AFFF draw data - 256 entries |
224 | ; 0x80338000 -> 33AFFF draw data - 256 entries |
223 | ; 00 dword draw limit - x start |
225 | ; 00 dword draw limit - x start |
224 | ; 04 dword draw limit - y start |
226 | ; 04 dword draw limit - y start |
225 | ; 08 dword draw limit - x end |
227 | ; 08 dword draw limit - x end |
226 | ; 0C dword draw limit - y end |
228 | ; 0C dword draw limit - y end |
227 | 229 | ||
228 | ; 0x8033C000 -> 47BFFF display info |
230 | ; 0x8033C000 -> 47BFFF display info |
229 | 231 | ||
230 | ; 0x8047CF80 -> 47CFFF TSS 128 bytes |
232 | ; 0x8047CF80 -> 47CFFF TSS 128 bytes |
231 | ; 0x8047D000 -> 47EFFF IO map for (8192*8)=65536 ports |
233 | ; 0x8047D000 -> 47EFFF IO map for (8192*8)=65536 ports |
232 | 234 | ||
233 | ; 0x8047F000 -> 48FFFF page map max 128 Kb |
235 | ; 0x8047F000 -> 48FFFF page map max 128 Kb |
234 | ; |
236 | ; |
235 | 237 | ||
236 | ; 0x80800000 -> kernel heap |
238 | ; 0x80800000 -> kernel heap |
237 | ; 0x81FFFFFF heap min limit |
239 | ; 0x81FFFFFF heap min limit |
238 | ; 0xFDBFFFFF heap max limit |
240 | ; 0xFDBFFFFF heap max limit |
239 | 241 | ||
240 | ; 0xFDC00000 -> 0xFDFFFFFF page tables 4Mb |
242 | ; 0xFDC00000 -> 0xFDFFFFFF page tables 4Mb |
241 | ; 0xFE000000 -> 0xFFFFFFFF LFB 32Mb |
243 | ; 0xFE000000 -> 0xFFFFFFFF LFB 32Mb |
242 | ; 0xFE000000 -> 0xFE7FFFFF application available LFB 8Mb |
244 | ; 0xFE000000 -> 0xFE7FFFFF application available LFB 8Mb |
243 | ; 0xFE800000 -> 0xFFFFFFFF kernel LFB part 24 Mb |
245 | ; 0xFE800000 -> 0xFFFFFFFF kernel LFB part 24 Mb |