Subversion Repositories Kolibri OS

Rev

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