Rev 2 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | ha | 1 | ; |
2 | ; MEMORY MAP |
||
3 | ; |
||
4 | ; Boot: |
||
5 | ; |
||
6 | ; 0:9000 byte bits per pixel |
||
7 | ; 0:9001 word scanline length |
||
8 | ; 0:9008 word vesa video mode |
||
9 | ; 0:900A word X res |
||
10 | ; 0:900C word Y res |
||
11 | ; 0:9010 byte mouse port - not used |
||
12 | ; 0:9014 dword Vesa 1.2 pm bank switch |
||
13 | ; 0:9018 dword Vesa 2.0 LFB address |
||
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) |
||
16 | ; 0:901E byte 0 or 1 : enable direct lfb write, paging disabled |
||
17 | ; 0:9020 8bytes pci data |
||
18 | ; 0:9030 byte VRR start enabled 1, 2-no |
||
19 | ; 0:9031 word IDEContrRegsBaseAddr |
||
20 | ; |
||
21 | ; |
||
22 | ; Runtime: |
||
23 | ; |
||
24 | ; 0000 -> 2FFF window_data - 256 entries |
||
25 | ; |
||
26 | ; 0000 dword x start |
||
27 | ; 0004 dword y start |
||
28 | ; 0008 dword x size |
||
29 | ; 000C dword y size |
||
30 | ; 0010 dword color of work area |
||
31 | ; 0014 dword color of grab bar |
||
32 | ; 0018 dword color of frames |
||
33 | ; 001C dword window flags, +30 = window drawn, +31 redraw flag |
||
34 | ; |
||
35 | ; 3000 -> 4FFF task list - 256 entries |
||
36 | ; |
||
37 | ; 00 dword process count |
||
38 | ; 04 dword no of processes |
||
39 | ; 10 dword base of running process at 0x3000+ |
||
40 | ; |
||
41 | ; 20 dword application event mask |
||
42 | ; 24 dword PID - process identification number |
||
43 | ; 2a word 0, state 3=zombie, 4=terminate |
||
44 | ; 2e byte window number on screen |
||
45 | ; 30 dword exact position in memory |
||
46 | ; 34 dword counter sum |
||
47 | ; 38 dword time stamp counter add |
||
48 | ; 3c dword cpu usage in cpu timer tics |
||
49 | ; |
||
50 | ; -> delete -> 5000 -> AFFF free |
||
51 | ; |
||
52 | ;!!! |
||
53 | ; 5000 -> 5FFF save_syscall_data - syscall trace |
||
54 | ; 6000 -> 63FF reg1 array - for i40 (first parts of saved TSS descriptor) |
||
55 | ; 6400 -> 67FF reg2 array - same thing, second part |
||
56 | ; 6800 -> 68FF used i40 (1 if used, 0 if free), first element not used |
||
57 | ; 6900 -> 6EFF saved picture under mouse pointer |
||
58 | ; |
||
59 | ; 6F00 -> 7FFF i38 stack (4,25Kb) |
||
60 | ; |
||
61 | ; 8000 -> A3FF used FLOPPY driver |
||
62 | ; |
||
63 | ; A400 -> AFFF free |
||
64 | ; |
||
65 | ; B000 -> B005 jump address for irq0 (task switch) |
||
66 | ; B008 -> B00B count of ticks remaining to updating CPU usage info |
||
67 | ; |
||
68 | ; B060 -> B07F fpu error handler's stack |
||
69 | ; B080 -> B0FF fpu_tss -> temporary TSS for FPU context switching |
||
70 | ; B100 -> B2FF IDT |
||
71 | ; B300 -> BAFF tasknum array - for i40 handler |
||
72 | ; BB00 -> BEFF free |
||
73 | ;!!! |
||
74 | |||
75 | ; BF00 -> BFFF bytes, 1 if process running/memory in use |
||
76 | ; C000 -> C3FF window stack C000 no of windows - all in words |
||
77 | ; C402 -> C7FF window position in stack |
||
78 | ; D000 -> D1FF FDC controller |
||
79 | ; D200 -> D3FF FDC controller for Fat12 |
||
80 | ; D400 -> DFFF free |
||
81 | ; E000 byte multitasking started |
||
82 | ; E004 dword save for boot mem 0x24 |
||
83 | ; E010 dword pm bank switch address |
||
84 | ; E014 dword window multiplier |
||
85 | ; E020 dword putpixel address |
||
86 | ; E024 dword getpixel address |
||
87 | ; E030 dword Vesa 1.2 pm bank switch address |
||
88 | ; F000 dword hd partition 1 start |
||
89 | ; F004 dword root start at partition 1 |
||
90 | ; F008 dword root start at hd |
||
91 | ; F100 byte 1=only os draw on screen |
||
92 | ; F200 dword mousepicture -pointer |
||
93 | ; F204 dword mouse appearance counter |
||
94 | ; F300 dword x & y temp for windowmove |
||
95 | ; F400 byte no of keys in buffer |
||
96 | ; F401 byte 'buffer' |
||
97 | ; F402 -> F4FF reserved for keys |
||
98 | ; F500 byte no of buttons in buffer |
||
99 | ; F501 dword 'buffer' |
||
100 | ; F502 -> F5FF reserved for buttons |
||
101 | ; F600 dword tsc / second |
||
102 | ; F604 byte mouse port: 1 ps2, 2 com1, 3 com2 |
||
103 | ; FB00 -> FB0F mouse memory 00 chunk count - FB0A-B x - FB0C-D y |
||
104 | ; FB10 -> FB17 mouse color mem |
||
105 | ; FB21 x move |
||
106 | ; FB22 y move |
||
107 | ; FB28 high bits temp |
||
108 | ; FB30 color temp |
||
109 | ; FB40 byte buttons down |
||
110 | ; FB44 byte 0 mouse down -> do not draw |
||
111 | ; FB4A -> FB4D FB4A-B x-under - FB4C-D y-under |
||
112 | ; FBF0 byte multiplied window |
||
113 | ; FBF1 byte bits per pixel |
||
114 | ; FC00 -> FCFE com1/ps2 buffer |
||
115 | ; FCFF com1/ps2 buffer count starting from FC00 |
||
116 | ; FDF0 -> FDF3 timer tick inc every 1/100 sec 4 bytes |
||
117 | ; FE00 dword screen x size |
||
118 | ; FE04 dword screen y size |
||
119 | ; FE08 dword screen y multiplier |
||
120 | ; FE0C dword screen mode |
||
121 | ; FE10 dword entries in hd cache |
||
122 | ; FE80 dword address of LFB in physical |
||
123 | ; FE84 dword address of applications memory start in physical |
||
124 | ; FE88 dword address of button list |
||
125 | ; FE8C dword memory to use |
||
126 | ; FF00 byte 1 = system shutdown request |
||
127 | ; FF01 dword if >1 then activate process |
||
128 | ; FFF0 byte 1 = redraw background request from app |
||
129 | ; FFF1 byte 1 = diskette int occur |
||
130 | ; FFF2 write and read bank in screen |
||
131 | ; FFF4 byte 0 if first mouse draw & do not return picture under |
||
132 | ; FFF5 byte 1 do not draw pointer |
||
133 | ; FFFF byte do not change task for 1/100 sec. |
||
134 | ; |
||
135 | ; 10000 -> 1FFFF 32 bit os |
||
136 | ; 20000 -> 2FFFF 32 bit stack |
||
137 | ; 30000 -> 36FFF basic text font II |
||
138 | ; 37000 -> 3BFFF basic text font I |
||
139 | ; 40000 -> 4FFFF data of retrieved disks and partitions (Mario79) |
||
140 | ; 50000 -> 500FF TSS of scheduler |
||
141 | ; 51000 -> 54000 esp0,esp1,esp2 |
||
142 | ; 5F000 -> 5FFFF schedulers stack |
||
143 | ; 60000 -> 7FFFF paging tables |
||
144 | ; 80000 -> 8FFFF additional app info, in 256 byte steps - 256 entries |
||
145 | ; |
||
146 | ; 00 11db name of app running |
||
147 | ; 10 108db floating point unit save area |
||
148 | ; 7f byte 0= no fpu saved , 1= fpu saved to 0x10 -> restore |
||
149 | ; 80 dword address of random shaped window area |
||
150 | ; 84 byte shape area scale |
||
151 | ; 88 dword used GDT of TSS |
||
152 | ; 8C dword application memory size |
||
153 | ; 90 dword window X position save |
||
154 | ; 94 dword window Y position save |
||
155 | ; 98 dword window X size save |
||
156 | ; 9C dword window Y size save |
||
157 | ; A0 dword IPC memory start |
||
158 | ; A4 dword IPC memory size |
||
159 | ; A8 dword event bits: mouse, stack,.. |
||
160 | ; |
||
161 | ; B0 dword int40 handler in use ; 0 if not in use |
||
162 | ; B4 byte keyboard mode: 0 = keymap, 1 = scancodes |
||
163 | ; |
||
164 | ; 90000 -> 9FFFF tmp |
||
165 | ; A0000 -> AFFFF screen access area |
||
166 | ; B0000 -> FFFFF bios rest in peace -area |
||
167 | ; 100000 -> 27FFFF diskette image |
||
168 | ; 280000 -> 281FFF ramdisk fat |
||
169 | ; 282000 -> 283FFF floppy fat |
||
170 | ; |
||
171 | ; 284000 -> 28FFFF free |
||
172 | ; |
||
173 | ; 290000 -> 297FFF TSS's of interrupts |
||
174 | ; 298000 -> 29FFFF TSS's of SYSTEM interrupts - 256 entries |
||
175 | ; 2A0000 -> 2B00ff wav device data |
||
176 | ; 2C0000 -> 2C3fff button info |
||
177 | ; |
||
178 | ; 0000 word number of buttons |
||
179 | ; first button entry at 0x10 |
||
180 | ; +0000 word process number |
||
181 | ; +0002 word button id number : bits 00-15 |
||
182 | ; +0004 word x start |
||
183 | ; +0006 word x size |
||
184 | ; +0008 word y start |
||
185 | ; +000A word y size |
||
186 | ; +000C word button id number : bits 16-31 |
||
187 | ; |
||
188 | ; 2D0000 -> 2DFFFF reserved port area |
||
189 | ; |
||
190 | ; 0000 dword no of port areas reserved |
||
191 | ; 0010 dword process id |
||
192 | ; dword start port |
||
193 | ; dword end port |
||
194 | ; dword 0 |
||
195 | ; |
||
196 | ; 2E0000 -> 2EFFFF irq data area |
||
197 | ; 2F0000 -> 2FFFFF low memory save |
||
198 | ; |
||
199 | ; 300000 -> 45FFFF background image, max 1 M |
||
200 | ; |
||
201 | ; 460000 -> 5FFFFF display info |
||
202 | ; |
||
203 | ; 600000 -> 6FFFFF hd cache |
||
204 | ; |
||
205 | ; 700000 -> 71ffff tcp memory (128 kb) |
||
206 | ; 720000 -> 75ffff interrupt stacks (256 kpl * 1024) |
||
207 | ; |
||
208 | ; 760000 -> 76ffff !vrr driver |
||
209 | ; 770000 -> 777fff tcp memory ( 32 kb) |
||
210 | ; |
||
211 | ; 778000 -> 77ffff window skinning ( 32 kb) |
||
212 | ; 780000 -> 7fffff free |
||
213 | ; |
||
214 | ; 800000 -> BFFFFF mapped to LFB |
||
215 | ; |
||
216 | ; C00000 -> DFFFFF * Application information |
||
217 | ; |
||
218 | ; C00000 -> C01FFF draw_data - 256 entries |
||
219 | ; |
||
220 | ; 00 dword draw limit - x start |
||
221 | ; 04 dword draw limit - y start |
||
222 | ; 08 dword draw limit - x end |
||
223 | ; 0C dword draw limit - y end |
||
224 | ; 1C dword app int vector |
||
225 | ; |
||
226 | ; C03000 -> D11fff sysint_stack_data |
||
227 | ; - system interrupt stacks |
||
228 | ; - 256 entries * 4096 step |
||
229 | ; |
||
230 | ; D20000 -> DA8000 TSS and IO map for (2048*8)=16384 ports |
||
231 | ; (128+2048)*256 = 557956 = 0x88000 |
||
232 | ; |
||
233 | ; 1000000 -> 3FFFFFF for applications |
||
234 | ; |
||
235 |