Subversion Repositories Kolibri OS

Rev

Rev 3168 | Rev 3490 | 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
;
1940 art_zh 6
;  0:7C00->7CFF   boot_code
7
;
1 ha 8
;   0:9000     byte   bits per pixel
9
;   0:9001     word   scanline length
10
;   0:9008     word   vesa video mode
11
;   0:900A     word   X res
12
;   0:900C     word   Y res
13
;   0:9010     byte   mouse port  - not used
14
;   0:9014     dword  Vesa 1.2 pm bank switch
15
;   0:9018     dword  Vesa 2.0 LFB address
16
;   0:901C     byte   0 or 1 : enable MTRR graphics acceleration
17
;   0:901D     byte   not used anymore (0 or 1 : enable system log display)
18
;   0:901E     byte   0 or 1 : enable direct lfb write, paging disabled
346 diamond 19
;   0:901F     byte   DMA write : 1=yes, 2=no
1 ha 20
;   0:9020     8bytes pci data
21
;   0:9030     byte   VRR start enabled 1, 2-no
22
;   0:9031     word   IDEContrRegsBaseAddr
76 mario79 23
;    0x9040 - dword - entry point of APM BIOS
24
;    0x9044 -  word - version (BCD)
25
;    0x9046 -  word - flags
709 diamond 26
;   0:907F     byte   number of BIOS hard disks
27
;   0:9080     Nbytes BIOS hard disks
1103 diamond 28
;   0:9100     word   available physical memory map: number of blocks
29
;   0:9104            available physical memory map: blocks
1 ha 30
;
31
;   Runtime:
32
;
465 serge 33
; 0x00000000 -> 0x7FFFFFFF  application 2Gb
34
 
1172 diamond 35
; 0x80000000 -> 0FFF  physical page zero - do not write
36
;                     (used by int 13h in some configurations)
1 ha 37
;
1172 diamond 38
; 0x80001000 -> 2FFF   window_data   - 256 entries
39
;
1 ha 40
;         0000 dword  x start
41
;         0004 dword  y start
42
;         0008 dword  x size
43
;         000C dword  y size
44
;         0010 dword  color of work area
45
;         0014 dword  color of grab bar
46
;         0018 dword  color of frames
47
;         001C dword  window flags, +30 = window drawn, +31 redraw flag
48
;
49
;   3000  ->   4FFF   task list      - 256 entries
50
;
51
;         00   dword  process count
52
;         04   dword  no of processes
53
;         10   dword  base of running process at 0x3000+
54
;
55
;         20   dword  application event mask
56
;         24   dword  PID - process identification number
115 poddubny 57
;         2a   byte   slot state: 0=running, 1,2=suspended
58
;                        3=zombie, 4=terminate,
59
;                        5=waiting for event, 9 = not used
1 ha 60
;         2e   byte   window number on screen
61
;         30   dword  exact position in memory
62
;         34   dword  counter sum
63
;         38   dword  time stamp counter add
64
;         3c   dword  cpu usage in cpu timer tics
65
;
66
;
1941 art_zh 67
;   5000  ->   73FF   << FLOPPY buffer (9k)                             - fs/fat12.inc
68
 
69
;   7400  ->   78ff   << IDT for int_0x00..int_0x40 + reserv
70
 
71
;   7900  ->   7EFF   << saved picture under mouse pointer (1k5)
1 ha 72
;
1941 art_zh 73
;   7F00  ->   7FFF   << SB16_Status (256)
1 ha 74
;
1941 art_zh 75
; XX  8000  ->   BFFF   free (16k)  XX
76
; 0x80008000 -> 9FFF   ramdisk fat    (8k)
77
; 0x8000A000 -> BFFF   floppy  fat    (8k)
8 poddubny 78
 
1 ha 79
;   C000  ->   C3FF   window stack C000 no of windows - all in words
80
;   C402  ->   C7FF   window position in stack
81
;   D000  ->   D1FF   FDC controller
82
;   D200  ->   D3FF   FDC controller for Fat12
3487 art_zh 83
;                     - D201..D2A1 cleaned in fdc.init (fs/fdc.inc)
1388 art_zh 84
;   D400  ->   DFFF   free (3k)
1941 art_zh 85
 
86
;   E000  ->   F9FF   free (6k5)
87
 
88
;   FA00  byte        no of keys in buffer
89
;   FA01  byte        'buffer'
90
;   FA02  ->   FAFF   reserved for keys
91
 
92
;   FB00  byte        no of buttons in buffer
93
;   FB01  dword       'buffer'
94
;   FB02  ->   FBFF   reserved for buttons
95
 
96
 
1 ha 97
;   FC00  ->   FCFE   com1/ps2 buffer
98
;   FCFF              com1/ps2 buffer count starting from FC00
1941 art_zh 99
 
1388 art_zh 100
;   FD00  ->   FDFF   free (256)
1941 art_zh 101
 
102
;   FE00  ->   FE0F   mouse memory 00 chunk count, that includes:
103
;   FE08 word       -- mouse H-scroll
104
;   FE0A word       -- mouse x
105
;   FE0C word         -- mouse y
106
;   FE0E word       -- mouse V-scroll
107
 
108
;   FE10  ->   FB17   mouse color mem
109
;   FE21              x move
110
;   FE22              y move
111
;   FE28              high bits temp
112
;   FE30              color temp
113
;   FE40  byte        buttons down
114
;   FE44  byte        0 mouse down -> do not draw
115
;   FE4A  ->   FE4D   FE4A-B x-under - FE4C-D y-under
116
 
117
;   FEB8  dword       putpixel address
118
;   FEBC  dword       getpixel address
119
;   FEC1  byte        bits per pixel
120
;   FEC4  dword       mouse appearance counter
121
;   FEC8  dword       x & y temp for windowmove
122
;   FECC  dword       tsc / second
123
 
124
;   FED0  dword       screen x size
125
;   FED4  dword       screen y size
126
;   FED8  dword       screen y multiplier
127
;   FEDC  dword       screen mode
128
 
129
;   FEE4  dword       PCIe extended (memory-mappable) config space - physical address
130
;   FEE8  dword       PCIe extended config space limit
131
;   FEEC  word        number of 4M-pages needed to map PCIe config space
132
;   FEEE  word        PCIe bus range (power-ow-two Mbytes)
133
 
134
;   FEF0  dword       physical address of user-accessible static system buffer
135
;   FEF4  dword       physical address of LFB
136
;   FEF8  dword       address of button list
137
;   FEFC  dword       memory to use
1 ha 138
;   FF00  byte        1 = system shutdown request
1388 art_zh 139
;   FF01  byte        task activation request?
1941 art_zh 140
 
141
;   FFE4  ->   FFEF   background info
1393 art_zh 142
;   FFF0  byte        >0 if redraw background request from app
143
;   FFF1  byte        >0 if background changed
1 ha 144
;   FFF2              write and read bank in screen
145
;   FFF4  byte        0 if first mouse draw & do not return picture under
146
;   FFF5  byte        1 do not draw pointer
147
;   FFFF  byte        do not change task for 1/100 sec.
148
;
1941 art_zh 149
; 0x80010000 ->  6CBFF   the kernel (up to 371 Kb)
1683 art_zh 150
;       in the current version:
1899 art_zh 151
;            ->  00B3C   16-bit code end
1707 art_zh 152
;            ->  00C40   16-bit data end
2014 art_zh 153
;            ->  105F0   32-bit code start
154
;            ->  2C889   32-bit code end
155
;            ->  2FC28..end_of_kernel    zero-filled zone after preinit_mem
156
;            ->  33563   uninitialized globals start
157
;            ->  3B752   end_of_kernel
1941 art_zh 158
;            ->  3C000   not used (>200k)
159
; 0x80050000 -> 090000   zero-filled zone after preinit_mem
516 serge 160
; 0x8006CC00 ->  6DBFF   stack at boot time (4Kb)
161
;
162
; 0x8006DC00 ->  6E5FF   basic text font II
163
; 0x8006E600 ->  6Efff   basic text font I
164
; 0x8006F000 ->  6FFFF   main page directory
22 poddubny 165
 
516 serge 166
; 0x80070000 ->  7FFFF   data of retrieved disks and partitions (Mario79)
465 serge 167
; 0x80080000 ->  8FFFF   additional app info, in 256 byte steps - 256 entries
1 ha 168
;
465 serge 169
;         00  11db  name of app running
170
;       0x10 dword  pointer to  fpu save area
171
;       0x14 dword  event count
172
;       0x18 dword  user fpu exceptoins handler
173
;       0x1c dword  user sse exceptions handler
174
;         20 dword  PL0 stack base
175
;         24 dword  user heap base
176
;         28 dword  user heap top
177
;         2c dword  window cursor handle
178
;         30 dword  first event in list
179
;         34 dword  last event in list
180
;         38 dword  first kernel object in list
181
;         3c dword  last kernel object in list
182
;         40 dword  thread esp
183
;         44 dword  io permission map page 0
184
;         48 dword  io permission map page 1
540 victor 185
;         4c dword  debug state: 1= load debug registers
709 diamond 186
;         50 dword  current directory ptr
187
;         54 dword  wait timeout
188
;         58 dword  thread TSS._esp0 (= pl0 stack base + size except for V86)
189
;         5C-7F     unused
1 ha 190
;
465 serge 191
;         80 dword  address of random shaped window area
192
;         84 byte   shape area scale
193
;         88 dword  free
194
;         8C dword  application memory size
195
;         90 dword  window X position save
196
;         94 dword  window Y position save
197
;         98 dword  window X size save
198
;         9C dword  window Y size save
199
;         A0 dword  IPC memory start
200
;         A4 dword  IPC memory size
201
;         A8 dword  event bits: mouse, stack,..
202
;         AC dword  0 or debugger slot
203
;         B0 dword  free
204
;         B4  byte  keyboard mode: 0 = keymap, 1 = scancodes
205
;         B8 dword  physical address of directory table
206
;         BC dword  address of debug event memory
207
;         C0  5 dd  thread debug registers: DR0,DR1,DR2,DR3,DR7
1 ha 208
;
1941 art_zh 209
; 0x80090000 ->  9FFFF   wav device buffer (64k)        ; << SB16Buffer
210
; 0x800A0000 ->  AFFFF   screen access area               << VGA legacy buffer
211
; 0x800B0000 ->  FFFFF   bios rest in peace -area (320k), << purpose unknown
212
; 0x80100000 -> 283FFF   diskette image (1m5)
1683 art_zh 213
 
1941 art_zh 214
; 0x80284000 -> HEAP_BASE zero-filled zone after preinit_mem
1 ha 215
;
1941 art_zh 216
; 0x80284000 -> 28BFFF   HDD DMA AREA   (32k)
1388 art_zh 217
; 0x8028C000 -> 297FFF   free (48k)
1 ha 218
;
1388 art_zh 219
; 0x80298000 -> 29ffff   auxiliary table for background smoothing code (32k)
555 diamond 220
;
1941 art_zh 221
; 0x802A0000 -> 2Bffff   free (128k)
222
; 0x80328000 -> 32FFFF   !vrr driver      (32k)
223
 
224
 
225
; 0x80338000 -> 338FFF draw data     - 256 entries (4k)
226
;         00   dword  draw limit - x start
227
;         04   dword  draw limit - y start
228
;         08   dword  draw limit - x end
229
;         0C   dword  draw limit - y end
230
; 0x80339000 -> 3BFFF3   free (12k)
231
 
1388 art_zh 232
; 0x802C0000 -> 2C3fff   button info (8k)
465 serge 233
;
234
;       0000 word    number of buttons
1 ha 235
;        first button entry at 0x10
465 serge 236
;       +0000 word   process number
237
;       +0002 word   button id number : bits 00-15
238
;       +0004 word   x start
239
;       +0006 word   x size
240
;       +0008 word   y start
241
;       +000A word   y size
242
;       +000C word   button id number : bits 16-31
1 ha 243
;
1388 art_zh 244
; 0x802C4000 -> 2CFFFF   free (48k)
22 poddubny 245
;
1388 art_zh 246
; 0x802D0000 -> 2DFFFF   reserved port area (64k)
1 ha 247
;
465 serge 248
;       0000 dword   no of port areas reserved
249
;       0010 dword   process id
250
;            dword   start port
251
;            dword   end port
252
;            dword   0
1 ha 253
;
1941 art_zh 254
; 0x80370000 -> 37FFFF   irq data area   (64k)
255
; 0x80380000 -> 38FFFF   low memory save (64k)
1 ha 256
;
1941 art_zh 257
; 0x80390000 -> 3AFFFF   tcp memory       (128k)
258
; 0x803B0000 -> 3B7FFF   tcp memory       (32k)
513 serge 259
 
1941 art_zh 260
; 0x803B8000 -> 3BFFFF   skin data              (32k)
513 serge 261
 
1941 art_zh 262
; 0x803C0000             page map     (length b = memsize shr 15)
263
; 0x803C0000 + b         start of static pagetables
1487 art_zh 264
 
265
; 0x803FFFFF <- no direct address translation beyond this point
1941 art_zh 266
; =============================================================
1487 art_zh 267
 
1941 art_zh 268
; 0x805FF000 -> 5FFF80   TSS
1487 art_zh 269
; 0x80600000 -> 601FFF   i/o maps
270
 
3168 art_zh 271
; 0x80800000 ->827FFFFF  kernel heap
1 ha 272
 
1487 art_zh 273
; 0xF0000000 -> 0xF1FFFFFF  PCI-express extended config space
1508 art_zh 274
; 0xFD000000 -> 0xFD3FFFFF  static system buffer 4Mb
465 serge 275
; 0xFDC00000 -> 0xFDFFFFFF  page tables 4Mb
276
; 0xFE000000 -> 0xFFFFFFFF  LFB 32Mb
277
; 0xFE000000 -> 0xFE7FFFFF  application available LFB 8Mb
278
; 0xFE800000 -> 0xFFFFFFFF  kernel LFB part 24 Mb
1 ha 279