Rev 9715 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2455 | mario79 | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
||
9715 | Doczom | 3 | ;; Copyright (C) KolibriOS team 2004-2022. All rights reserved. ;; |
2455 | mario79 | 4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
||
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
2288 | clevermous | 7 | ; |
8 | ; MEMORY MAP |
||
9 | ; |
||
10 | ; Boot: |
||
11 | ; |
||
7132 | dunkaist | 12 | ; BOOT_LO / boot_data structure |
2288 | clevermous | 13 | ; 0:9000 byte bits per pixel |
14 | ; 0:9001 word scanline length |
||
15 | ; 0:9008 word vesa video mode |
||
16 | ; 0:900A word X res |
||
17 | ; 0:900C word Y res |
||
18 | ; 0:9014 dword Vesa 1.2 pm bank switch |
||
19 | ; 0:9018 dword Vesa 2.0 LFB address |
||
20 | ; 0:901C byte 0 or 1 : enable MTRR graphics acceleration |
||
7122 | dunkaist | 21 | ; 0:901D byte (0 or 1) start the first app (right now it's LAUNCHER) after kernel is loaded? |
22 | ; 0:901E byte If nonzero, duplicates debug output to the screen. |
||
2288 | clevermous | 23 | ; 0:901F byte DMA write : 1=yes, 2=no |
24 | ; 0:9020 8bytes pci data |
||
7121 | dunkaist | 25 | ; 0:9030 byte shutdown type (see sysfn 18.9) |
7122 | dunkaist | 26 | ; 0:9040 dword entry point of APM BIOS |
27 | ; 0:9044 word version (BCD) |
||
28 | ; 0:9046 word flags |
||
29 | ; 0:9050 word APM_CODE_32 |
||
30 | ; 0:9052 word APM_CODE_16 |
||
31 | ; 0:9054 word APM_DATA_16 |
||
2288 | clevermous | 32 | ; 0:907F byte number of BIOS hard disks |
33 | ; 0:9080 Nbytes BIOS hard disks |
||
34 | ; 0:9100 word available physical memory map: number of blocks |
||
35 | ; 0:9104 available physical memory map: blocks |
||
36 | ; |
||
37 | ; Runtime: |
||
38 | ; |
||
39 | ; 0x00000000 -> 0x7FFFFFFF application 2Gb |
||
40 | |||
41 | ; 0x80000000 -> 0FFF physical page zero - do not write |
||
42 | ; (used by int 13h in some configurations) |
||
43 | ; |
||
9930 | Doczom | 44 | ; 0x80001000 -> 8FFF window_data - 256 entries |
2288 | clevermous | 45 | ; |
46 | ; 0000 dword x start |
||
47 | ; 0004 dword y start |
||
48 | ; 0008 dword x size |
||
49 | ; 000C dword y size |
||
50 | ; 0010 dword color of work area |
||
51 | ; 0014 dword color of grab bar |
||
52 | ; 0018 dword color of frames |
||
53 | ; 001C dword window flags, +30 = window drawn, +31 redraw flag |
||
54 | ; |
||
55 | ; 8000 -> A3FF used FLOPPY driver |
||
56 | ; |
||
57 | ; A400 -> B0FF free (3k3), unused ACTIVE_PROC_STACK |
||
58 | |||
59 | ; B100 -> B307 IDT for int_0x00..int_0x40 |
||
60 | |||
61 | ; B308 -> BFFF free (3k3) |
||
62 | |||
63 | ; C000 -> C3FF window stack C000 no of windows - all in words |
||
64 | ; C402 -> C7FF window position in stack |
||
65 | ; D000 -> D1FF FDC controller |
||
66 | ; D200 -> D3FF FDC controller for Fat12 |
||
67 | ; D400 -> DFFF free (3k) |
||
68 | ; E000 byte multitasking started |
||
69 | ; E020 dword putpixel address |
||
70 | ; E024 dword getpixel address |
||
71 | ; E030 dword Vesa 1.2 pm bank switch address |
||
72 | ; E034 -> F1FF free (4k5) |
||
73 | ; F200 dword mousepicture -pointer |
||
74 | ; F204 dword mouse appearance counter |
||
75 | ; F208 -> F2FF free (248) |
||
76 | ; F300 dword x & y temp for windowmove |
||
77 | ; F304 -> F3FF free (252) |
||
78 | ; F400 byte no of keys in buffer |
||
79 | ; F401 byte 'buffer' |
||
80 | ; F402 -> F4FF reserved for keys |
||
81 | ; F500 byte no of buttons in buffer |
||
82 | ; F501 dword 'buffer' |
||
83 | ; F502 -> F5FF reserved for buttons |
||
84 | ; F600 dword tsc / second |
||
85 | ; F604 byte (unused?) mouse port: 1 ps2, 2 com1, 3 com2 |
||
86 | ; F605 -> FAFF free (1k2) |
||
87 | ; FB00 -> FB0F mouse memory 00 chunk count, that includes: |
||
88 | ; FB08 word -- mouse H-scroll |
||
89 | ; FB0A word -- mouse x |
||
90 | ; FB0C word -- mouse y |
||
91 | ; FB0E word -- mouse V-scroll |
||
92 | ; FB10 -> FB17 mouse color mem |
||
93 | ; FB21 x move |
||
94 | ; FB22 y move |
||
95 | ; FB28 high bits temp |
||
96 | ; FB30 color temp |
||
97 | ; FB40 byte buttons down |
||
98 | ; FB44 byte 0 mouse down -> do not draw |
||
99 | ; FB4A -> FB4D FB4A-B x-under - FB4C-D y-under |
||
100 | ; FBF1 byte bits per pixel |
||
101 | ; FC00 -> FCFE com1/ps2 buffer |
||
102 | ; FCFF com1/ps2 buffer count starting from FC00 |
||
103 | ; FD00 -> FDFF free (256) |
||
104 | ; FE00 dword screen x size |
||
105 | ; FE04 dword screen y size |
||
106 | ; FE08 dword screen y multiplier |
||
107 | ; FE0C dword screen mode |
||
108 | ; FE10 -> FE7F free (112) |
||
109 | ; FE80 dword address of LFB in physical |
||
110 | ; FE84 dword address of applications memory start in physical ? |
||
111 | ; FE88 dword address of button list |
||
112 | ; FE8C dword memory to use |
||
113 | ; FE90 -> FEFF free (112) |
||
114 | ; FF00 byte 1 = system shutdown request |
||
115 | ; FF01 byte task activation request? |
||
116 | ; FFF0 byte >0 if redraw background request from app |
||
2513 | mario79 | 117 | ; FFF1 byte free |
2288 | clevermous | 118 | ; FFF2 write and read bank in screen |
119 | ; FFF4 byte 0 if first mouse draw & do not return picture under |
||
120 | ; FFF5 byte 1 do not draw pointer |
||
121 | ; FFFF byte do not change task for 1/100 sec. |
||
122 | ; |
||
8085 | dunkaist | 123 | ; 0x80010000 -> 7BC00 kernel, 32-bit run-time code (up to 431k) |
2288 | clevermous | 124 | ; |
8085 | dunkaist | 125 | ; 0x8007CC00 -> 7DBFF stack at boot time (4k) |
126 | ; 0x8007E000 -> 7FFFF main page directory |
||
2288 | clevermous | 127 | ; 0x80080000 -> 8FFFF additional app info, in 256 byte steps - 256 entries |
128 | ; |
||
129 | ; 00 11db name of app running |
||
130 | ; 0x10 dword pointer to fpu save area |
||
131 | ; 0x14 dword event count |
||
132 | ; 0x18 dword user fpu exceptoins handler |
||
133 | ; 0x1c dword user sse exceptions handler |
||
134 | ; 20 dword PL0 stack base |
||
135 | ; 24 dword user heap base |
||
136 | ; 28 dword user heap top |
||
137 | ; 2c dword window cursor handle |
||
138 | ; 30 dword first event in list |
||
139 | ; 34 dword last event in list |
||
140 | ; 38 dword first kernel object in list |
||
141 | ; 3c dword last kernel object in list |
||
142 | ; 40 dword thread esp |
||
143 | ; 44 dword io permission map page 0 |
||
144 | ; 48 dword io permission map page 1 |
||
145 | ; 4c dword debug state: 1= load debug registers |
||
146 | ; 50 dword current directory ptr |
||
147 | ; 54 dword wait timeout |
||
148 | ; 58 dword thread TSS._esp0 (= pl0 stack base + size except for V86) |
||
149 | ; 5C-7F unused |
||
150 | ; |
||
151 | ; 80 dword address of random shaped window area |
||
152 | ; 84 byte shape area scale |
||
153 | ; 88 dword free |
||
154 | ; 8C dword application memory size |
||
155 | ; 90 dword window X position save |
||
156 | ; 94 dword window Y position save |
||
157 | ; 98 dword window X size save |
||
158 | ; 9C dword window Y size save |
||
159 | ; A0 dword IPC memory start |
||
160 | ; A4 dword IPC memory size |
||
161 | ; A8 dword event bits: mouse, stack,.. |
||
162 | ; AC dword 0 or debugger slot |
||
163 | ; B0 dword free |
||
164 | ; B4 byte keyboard mode: 0 = keymap, 1 = scancodes |
||
165 | ; B8 dword physical address of directory table |
||
166 | ; BC dword address of debug event memory |
||
167 | ; C0 5 dd thread debug registers: DR0,DR1,DR2,DR3,DR7 |
||
168 | ; |
||
8085 | dunkaist | 169 | ; 0x80090000 -> 9FFFF free (64k) |
2288 | clevermous | 170 | ; 0x800A0000 -> AFFFF screen access area |
171 | ; 0x800B0000 -> FFFFF bios rest in peace -area (320k) ? |
||
172 | ; 0x80100000 -> 27FFFF diskette image (1m5) |
||
4273 | clevermous | 173 | ; 0x80280000 -> 283FFF free (16k) |
2288 | clevermous | 174 | ; |
175 | ; 0x80284000 -> 28BFFF HDD DMA AREA (32k) |
||
176 | ; 0x8028C000 -> 297FFF free (48k) |
||
177 | ; |
||
2504 | mario79 | 178 | ; 0x80298000 -> 29FFFF auxiliary table for background smoothing code (32k) |
2288 | clevermous | 179 | ; |
2504 | mario79 | 180 | ; 0x802A0000 -> 2B00FF wav device buffer (64k) |
181 | ; 0x802A0000 -> 2B00FF wav device status (256) |
||
2288 | clevermous | 182 | ; |
2504 | mario79 | 183 | ; 0x802B0100 -> 2B3FFD free (15k7) |
184 | ; |
||
2525 | mario79 | 185 | ; 0x802B3FEE -> 2B3FEF button info (64K+ 16 + 2 byte) |
186 | ; 2B3FEE 0000 word number of buttons |
||
187 | ; 2B3FF0 first button entry |
||
2504 | mario79 | 188 | ; |
189 | ; button entry at 0x10 |
||
2288 | clevermous | 190 | ; +0000 word process number |
191 | ; +0002 word button id number : bits 00-15 |
||
192 | ; +0004 word x start |
||
193 | ; +0006 word x size |
||
194 | ; +0008 word y start |
||
195 | ; +000A word y size |
||
196 | ; +000C word button id number : bits 16-31 |
||
197 | ; |
||
2485 | mario79 | 198 | ; 0x802C4000 -> 2C9FFF area for fast getting offset to LFB (24k) |
199 | ; BPSLine_calc_area |
||
200 | ; 0x802CA000 -> 2CFFFF area for fast getting offset to _WinMapAddress (24k) |
||
201 | ; d_width_calc_area |
||
2288 | clevermous | 202 | ; |
203 | ; 0x802D0000 -> 2DFFFF reserved port area (64k) |
||
204 | ; |
||
205 | ; 0000 dword no of port areas reserved |
||
206 | ; 0010 dword process id |
||
207 | ; dword start port |
||
208 | ; dword end port |
||
209 | ; dword 0 |
||
210 | ; |
||
2485 | mario79 | 211 | ; 0x802E0000 -> 2EFFFF irq data area (64k) ;BOOT_VAR |
2288 | clevermous | 212 | ; |
7964 | hidnplayr | 213 | ; 0x802F0000 -> 317fff free (160k) |
2288 | clevermous | 214 | ; |
2485 | mario79 | 215 | ; 0x80318000 -> 31ffff skin_data (32k) |
216 | ; |
||
217 | ; 0x80320000 -> 323FF3 draw data - 256 entries (4k) |
||
2288 | clevermous | 218 | ; 00 dword draw limit - x start |
219 | ; 04 dword draw limit - y start |
||
220 | ; 08 dword draw limit - x end |
||
221 | ; 0C dword draw limit - y end |
||
2485 | mario79 | 222 | ; |
223 | ; 0x8032BFF4 -> 32BFFF background info |
||
224 | ; 0x80323FF4 BgrDrawMode |
||
225 | ; 0x80323FF8 BgrDataWidth |
||
226 | ; 0x80323FFC BgrDataHeight |
||
227 | ; |
||
228 | ; 0x80324000 page map (length b = memsize shr 15) |
||
229 | ; 0x80324000 + b start of static pagetables |
||
2288 | clevermous | 230 | |
231 | ; 0x803FFFFF <- no direct address translation beyond this point |
||
232 | ; ============================================================= |
||
233 | |||
234 | ; 0x805FF000 -> 5FFF80 TSS |
||
235 | ; 0x80600000 -> 601FFF i/o maps |
||
236 | |||
237 | ; 0x80800000 -> kernel heap |
||
238 | ; 0x80FFFFFF heap min limit |
||
239 | ; 0xFDBFFFFF heap max limit |
||
240 | |||
241 | ; 0xF0000000 -> 0xF1FFFFFF PCI-express extended config space |
||
242 | ; 0xFDC00000 -> 0xFDFFFFFF page tables 4Mb |
||
243 | ; 0xFE000000 -> 0xFFFFFFFF LFB 32Mb |
||
244 | ; 0xFE000000 -> 0xFE7FFFFF application available LFB 8Mb |
||
245 | ; 0xFE800000 -> 0xFFFFFFFF kernel LFB part 24 Mb-> |
||
246 |