Subversion Repositories Kolibri OS

Rev

Rev 1 | Rev 6 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.  
  236.  
  237.  
  238.  
  239.  
  240.