Subversion Repositories Kolibri OS

Rev

Rev 33 | Rev 69 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 33 Rev 66
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:9020     8bytes pci data
17
;   0:9020     8bytes pci data
18
;   0:9030     byte   VRR start enabled 1, 2-no
18
;   0:9030     byte   VRR start enabled 1, 2-no
19
;   0:9031     word   IDEContrRegsBaseAddr
19
;   0:9031     word   IDEContrRegsBaseAddr
20
;
20
;
21
;
21
;
22
;   Runtime:
22
;   Runtime:
23
;
23
;
24
;   0000  ->   1FFF   window_data   - 256 entries
24
;   0000  ->   1FFF   window_data   - 256 entries
25
;
25
;
26
;         0000 dword  x start
26
;         0000 dword  x start
27
;         0004 dword  y start
27
;         0004 dword  y start
28
;         0008 dword  x size
28
;         0008 dword  x size
29
;         000C dword  y size
29
;         000C dword  y size
30
;         0010 dword  color of work area
30
;         0010 dword  color of work area
31
;         0014 dword  color of grab bar
31
;         0014 dword  color of grab bar
32
;         0018 dword  color of frames
32
;         0018 dword  color of frames
33
;         001C dword  window flags, +30 = window drawn, +31 redraw flag
33
;         001C dword  window flags, +30 = window drawn, +31 redraw flag
34
;
34
;
35
;   2000  ->   2FFF   free
35
;   2000  ->   2FFF   free
36
;
36
;
37
;   3000  ->   4FFF   task list      - 256 entries
37
;   3000  ->   4FFF   task list      - 256 entries
38
;
38
;
39
;         00   dword  process count
39
;         00   dword  process count
40
;         04   dword  no of processes
40
;         04   dword  no of processes
41
;         10   dword  base of running process at 0x3000+
41
;         10   dword  base of running process at 0x3000+
42
;
42
;
43
;         20   dword  application event mask
43
;         20   dword  application event mask
44
;         24   dword  PID - process identification number
44
;         24   dword  PID - process identification number
45
;         2a   word   0, state 3=zombie, 4=terminate
45
;         2a   word   0, state 1,2=suspended 3=zombie, 4=terminate
46
;         2e   byte   window number on screen
46
;         2e   byte   window number on screen
47
;         30   dword  exact position in memory
47
;         30   dword  exact position in memory
48
;         34   dword  counter sum
48
;         34   dword  counter sum
49
;         38   dword  time stamp counter add
49
;         38   dword  time stamp counter add
50
;         3c   dword  cpu usage in cpu timer tics
50
;         3c   dword  cpu usage in cpu timer tics
51
;
51
;
52
;
52
;
53
;   5000  ->   5FFF   save_syscall_data - syscall trace
53
;   5000  ->   5FFF   save_syscall_data - syscall trace
54
;   6000  ->   68FF   free
54
;   6000  ->   68FF   free
55
;   6900  ->   6EFF   saved picture under mouse pointer
55
;   6900  ->   6EFF   saved picture under mouse pointer
56
;
56
;
57
;   6F00  ->   6FFF   free
57
;   6F00  ->   6FFF   free
58
;
58
;
59
;   7000  ->   7FFF   used CD driver
59
;   7000  ->   7FFF   used CD driver
60
;
60
;
61
;   8000  ->   A3FF   used FLOPPY driver
61
;   8000  ->   A3FF   used FLOPPY driver
62
;
62
;
63
;   A400  ->   A7FF   used active process stack
63
;   A400  ->   A7FF   used active process stack
64
;
64
;
65
;   A800  ->   B0FF   free
65
;   A800  ->   B0FF   free
66
 
66
 
67
;   B100  ->   B2FF   IDT
67
;   B100  ->   B2FF   IDT
68
 
68
 
69
;   B300  ->   BFFF   free
69
;   B300  ->   BFFF   free
70
 
70
 
71
;   C000  ->   C3FF   window stack C000 no of windows - all in words
71
;   C000  ->   C3FF   window stack C000 no of windows - all in words
72
;   C402  ->   C7FF   window position in stack
72
;   C402  ->   C7FF   window position in stack
73
;   D000  ->   D1FF   FDC controller
73
;   D000  ->   D1FF   FDC controller
74
;   D200  ->   D3FF   FDC controller for Fat12
74
;   D200  ->   D3FF   FDC controller for Fat12
75
;   D400  ->   DFFF   free
75
;   D400  ->   DFFF   free
76
;   E000  byte        multitasking started
76
;   E000  byte        multitasking started
77
;   E020  dword       putpixel address
77
;   E020  dword       putpixel address
78
;   E024  dword       getpixel address
78
;   E024  dword       getpixel address
79
;   E030  dword       Vesa 1.2 pm bank switch address
79
;   E030  dword       Vesa 1.2 pm bank switch address
80
;   F200  dword       mousepicture -pointer
80
;   F200  dword       mousepicture -pointer
81
;   F204  dword       mouse appearance counter
81
;   F204  dword       mouse appearance counter
82
;   F300  dword       x & y temp for windowmove
82
;   F300  dword       x & y temp for windowmove
83
;   F400  byte        no of keys in buffer
83
;   F400  byte        no of keys in buffer
84
;   F401  byte        'buffer'
84
;   F401  byte        'buffer'
85
;   F402  ->   F4FF   reserved for keys
85
;   F402  ->   F4FF   reserved for keys
86
;   F500  byte        no of buttons in buffer
86
;   F500  byte        no of buttons in buffer
87
;   F501  dword       'buffer'
87
;   F501  dword       'buffer'
88
;   F502  ->   F5FF   reserved for buttons
88
;   F502  ->   F5FF   reserved for buttons
89
;   F600  dword       tsc / second
89
;   F600  dword       tsc / second
90
;   F604  byte        mouse port: 1 ps2, 2 com1, 3 com2
90
;   F604  byte        mouse port: 1 ps2, 2 com1, 3 com2
91
;   FB00  ->   FB0F   mouse memory 00 chunk count - FB0A-B x - FB0C-D y
91
;   FB00  ->   FB0F   mouse memory 00 chunk count - FB0A-B x - FB0C-D y
92
;   FB10  ->   FB17   mouse color mem
92
;   FB10  ->   FB17   mouse color mem
93
;   FB21              x move
93
;   FB21              x move
94
;   FB22              y move
94
;   FB22              y move
95
;   FB28              high bits temp
95
;   FB28              high bits temp
96
;   FB30              color temp
96
;   FB30              color temp
97
;   FB40  byte        buttons down
97
;   FB40  byte        buttons down
98
;   FB44  byte        0 mouse down -> do not draw
98
;   FB44  byte        0 mouse down -> do not draw
99
;   FB4A  ->   FB4D   FB4A-B x-under - FB4C-D y-under
99
;   FB4A  ->   FB4D   FB4A-B x-under - FB4C-D y-under
100
;   FBF1  byte        bits per pixel
100
;   FBF1  byte        bits per pixel
101
;   FC00  ->   FCFE   com1/ps2 buffer
101
;   FC00  ->   FCFE   com1/ps2 buffer
102
;   FCFF              com1/ps2 buffer count starting from FC00
102
;   FCFF              com1/ps2 buffer count starting from FC00
103
;   FE00  dword       screen x size
103
;   FE00  dword       screen x size
104
;   FE04  dword       screen y size
104
;   FE04  dword       screen y size
105
;   FE08  dword       screen y multiplier
105
;   FE08  dword       screen y multiplier
106
;   FE0C  dword       screen mode
106
;   FE0C  dword       screen mode
107
;   FE10  dword       entries in hd cache
107
;   FE10  dword       entries in hd cache
108
;   FE80  dword       address of LFB in physical
108
;   FE80  dword       address of LFB in physical
109
;   FE84  dword       address of applications memory start in physical
109
;   FE84  dword       address of applications memory start in physical
110
;   FE88  dword       address of button list
110
;   FE88  dword       address of button list
111
;   FE8C  dword       memory to use
111
;   FE8C  dword       memory to use
112
;   FF00  byte        1 = system shutdown request
112
;   FF00  byte        1 = system shutdown request
113
;   FF01  dword       if >1 then activate process
113
;   FF01  dword       if >1 then activate process
114
;   FFF0  byte        1 = redraw background request from app
114
;   FFF0  byte        1 = redraw background request from app
115
;   FFF1  byte        1 = diskette int occur
115
;   FFF1  byte        1 = diskette int occur
116
;   FFF2              write and read bank in screen
116
;   FFF2              write and read bank in screen
117
;   FFF4  byte        0 if first mouse draw & do not return picture under
117
;   FFF4  byte        0 if first mouse draw & do not return picture under
118
;   FFF5  byte        1 do not draw pointer
118
;   FFF5  byte        1 do not draw pointer
119
;   FFFF  byte        do not change task for 1/100 sec.
119
;   FFFF  byte        do not change task for 1/100 sec.
120
;
120
;
121
;  10000  ->  3DBFF   kernel, 32-bit run-time code (up to 183 Kb)
121
;  10000  ->  3DBFF   kernel, 32-bit run-time code (up to 183 Kb)
122
;  3DC00  ->  3EBFF   stack at boot time (4Kb)
122
;  3DC00  ->  3EBFF   stack at boot time (4Kb)
123
;  3EC00  ->  3F5FF   basic text font II
123
;  3EC00  ->  3F5FF   basic text font II
124
;  3F600  ->  3FFFF   basic text font I
124
;  3F600  ->  3FFFF   basic text font I
125
;  40000  ->  4FFFF   data of retrieved disks and partitions (Mario79)
125
;  40000  ->  4FFFF   data of retrieved disks and partitions (Mario79)
126
 
126
 
127
;  50000  ->  5FFFF   free (64 Kb)
127
;  50000  ->  5FFFF   free (64 Kb)
128
 
128
 
129
;  60000  ->  7FFFF   paging tables
129
;  60000  ->  7FFFF   paging tables
130
;  80000  ->  8FFFF   additional app info, in 256 byte steps - 256 entries
130
;  80000  ->  8FFFF   additional app info, in 256 byte steps - 256 entries
131
;
131
;
132
;           00  11db  name of app running
132
;           00  11db  name of app running
133
;           10 108db  floating point unit save area
133
;           10 108db  floating point unit save area
134
;           7f byte   0= no fpu saved ,  1= fpu saved to 0x10 -> restore
134
;           7f byte   0= no fpu saved ,  1= fpu saved to 0x10 -> restore
135
;           80 dword  address of random shaped window area
135
;           80 dword  address of random shaped window area
136
;           84 byte   shape area scale
136
;           84 byte   shape area scale
137
;           88 dword  used GDT of TSS
137
;           88 dword  used GDT of TSS
138
;           8C dword  application memory size
138
;           8C dword  application memory size
139
;           90 dword  window X position save
139
;           90 dword  window X position save
140
;           94 dword  window Y position save
140
;           94 dword  window Y position save
141
;           98 dword  window X size save
141
;           98 dword  window X size save
142
;           9C dword  window Y size save
142
;           9C dword  window Y size save
143
;           A0 dword  IPC memory start
143
;           A0 dword  IPC memory start
144
;           A4 dword  IPC memory size
144
;           A4 dword  IPC memory size
145
;           A8 dword  event bits: mouse, stack,..
145
;           A8 dword  event bits: mouse, stack,..
146
;
-
 
-
 
146
;           AC dword  0 or debugger slot
147
;           B0 dword  int40 handler in use ; 0 if not in use
147
;           B0 dword  int40 handler in use ; 0 if not in use
148
;           B4  byte  keyboard mode: 0 = keymap, 1 = scancodes
148
;           B4  byte  keyboard mode: 0 = keymap, 1 = scancodes
149
;           B8 dword  physical address of directory table
149
;           B8 dword  physical address of directory table
-
 
150
;           BC dword  address of debug event memory
-
 
151
;           C0  5 dd  thread debug registers: DR0,DR1,DR2,DR3,DR7
150
;
152
;
151
;  90000  ->  9FFFF   tmp
153
;  90000  ->  9FFFF   tmp
152
;  A0000  ->  AFFFF   screen access area
154
;  A0000  ->  AFFFF   screen access area
153
;  B0000  ->  FFFFF   bios rest in peace -area
155
;  B0000  ->  FFFFF   bios rest in peace -area
154
; 100000  -> 27FFFF   diskette image
156
; 100000  -> 27FFFF   diskette image
155
; 280000  -> 281FFF   ramdisk fat
157
; 280000  -> 281FFF   ramdisk fat
156
; 282000  -> 283FFF   floppy  fat
158
; 282000  -> 283FFF   floppy  fat
157
;
159
;
158
; 284000  -> 29FFFF   free (112 Kb)
160
; 284000  -> 29FFFF   free (112 Kb)
159
;
161
;
160
; 2A0000  -> 2B00ff   wav device data
162
; 2A0000  -> 2B00ff   wav device data
161
; 2C0000  -> 2C3fff   button info
163
; 2C0000  -> 2C3fff   button info
162
;
164
;
163
;        0000 word    number of buttons
165
;        0000 word    number of buttons
164
;        first button entry at 0x10
166
;        first button entry at 0x10
165
;        +0000 word   process number
167
;        +0000 word   process number
166
;        +0002 word   button id number : bits 00-15
168
;        +0002 word   button id number : bits 00-15
167
;        +0004 word   x start
169
;        +0004 word   x start
168
;        +0006 word   x size
170
;        +0006 word   x size
169
;        +0008 word   y start
171
;        +0008 word   y start
170
;        +000A word   y size
172
;        +000A word   y size
171
;        +000C word   button id number : bits 16-31
173
;        +000C word   button id number : bits 16-31
172
;
174
;
173
; 2C4000  -> 2CFFFF   free (48Kb)
175
; 2C4000  -> 2CFFFF   free (48Kb)
174
;
176
;
175
; 2D0000  -> 2DFFFF   reserved port area
177
; 2D0000  -> 2DFFFF   reserved port area
176
;
178
;
177
;     0000   dword    no of port areas reserved
179
;     0000   dword    no of port areas reserved
178
;     0010   dword    process id
180
;     0010   dword    process id
179
;            dword    start port
181
;            dword    start port
180
;            dword    end port
182
;            dword    end port
181
;            dword    0
183
;            dword    0
182
;
184
;
183
; 2E0000  -> 2EFFFF   irq data area
185
; 2E0000  -> 2EFFFF   irq data area
184
; 2F0000  -> 2FFFFF   low memory save
186
; 2F0000  -> 2FFFFF   low memory save
185
;
187
;
186
; 300000  -> 45FFFF   background image, max 1,375 M
188
; 300000  -> 45FFFF   background image, max 1,375 M
187
;
189
;
188
; 460000  -> 5FFFFF   display info
190
; 460000  -> 5FFFFF   display info
189
;
191
;
190
; 600000  -> 6FFFFF   hd cache
192
; 600000  -> 6FFFFF   hd cache
191
;
193
;
192
; 700000  -> 71ffff   tcp memory       (128 kb)
194
; 700000  -> 71ffff   tcp memory       (128 kb)
193
; 720000  -> 75ffff   free (256 kb)
195
; 720000  -> 75ffff   free (256 kb)
194
;
196
;
195
; 760000  -> 76ffff   !vrr driver
197
; 760000  -> 76ffff   !vrr driver
196
; 770000  -> 777fff   tcp memory       ( 32 kb)
198
; 770000  -> 777fff   tcp memory       ( 32 kb)
197
;
199
;
198
; 778000  -> 77ffff   window skinning  ( 32 kb)
200
; 778000  -> 77ffff   window skinning  ( 32 kb)
199
; 780000  -> 7fffff   free (512 Kb)
201
; 780000  -> 7fffff   free (512 Kb)
200
;
202
;
201
; 800000  -> BFFFFF   mapped to LFB
203
; 800000  -> BFFFFF   mapped to LFB
202
;
204
;
203
;
205
;
204
; C00000  -> C01FFF   draw_data   - 256 entries
206
; C00000  -> C01FFF   draw_data   - 256 entries
205
;
207
;
206
;         00   dword  draw limit - x start
208
;         00   dword  draw limit - x start
207
;         04   dword  draw limit - y start
209
;         04   dword  draw limit - y start
208
;         08   dword  draw limit - x end
210
;         08   dword  draw limit - x end
209
;         0C   dword  draw limit - y end
211
;         0C   dword  draw limit - y end
210
;
212
;
211
; C02000  -> C02fff   free (4 Kb)
213
; C02000  -> C02fff   free (4 Kb)
212
;
214
;
213
; C03000  -> D02fff   sysint_stack_data
215
; C03000  -> D02fff   sysint_stack_data
214
;                     - ring0 stacks for ring3 processes
216
;                     - ring0 stacks for ring3 processes
215
;                     - used for interrupt handling
217
;                     - used for interrupt handling
216
;                     - 256 entries * 4096 step
218
;                     - 256 entries * 4096 step
217
;
219
;
218
; D03000  -> D1ffff   free (116 Kb)
220
; D03000  -> D1ffff   free (116 Kb)
219
;
221
;
220
; D20000  -> F28000   TSS and IO map for (8192*8)=65536 ports
222
; D20000  -> F28000   TSS and IO map for (8192*8)=65536 ports
221
;                     (128+8192)*256 = 557956 = 0x88000
223
;                     (128+8192)*256 = 557956 = 0x88000
222
;
224
;
223
; 1000000 -> 3FFFFFF  for applications
225
; 1000000 -> 3FFFFFF  for applications
224
;
226
;