Subversion Repositories Kolibri OS

Rev

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

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;                                                            ;;
  3. ;; KERNEL32.INC                                               ;;
  4. ;;                                                            ;;
  5. ;; Included 32 bit kernel files for MenuetOS                  ;;
  6. ;;                                                            ;;
  7. ;; This file is kept separate as it will be easier to         ;;
  8. ;; maintain and compile with an automated SETUP program       ;;
  9. ;; in the future.                                             ;;
  10. ;;                                                            ;;
  11. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  12.  
  13. ; structure definition helper
  14. macro struct name, [arg]
  15.  {
  16.   common
  17.    name@struct equ name
  18.    struc name arg {
  19.  }
  20.  
  21. macro struct_helper name
  22.  {
  23.   match xname,name
  24.   \{
  25.    virtual at 0
  26.    xname xname
  27.    sizeof.#xname = $ - xname
  28.    name equ sizeof.#xname
  29.    end virtual
  30.   \}
  31.  }
  32.  
  33. ends fix } struct_helper name@struct
  34.  
  35. ;// mike.dld, 2006-29-01 [
  36.  
  37. ; macros definition
  38. macro diff16 title,l1,l2
  39. {
  40.   local s,d
  41.   s = l2-l1
  42.   display title,': 0x'
  43.   repeat 8
  44.     d = 48 + s shr ((8-%) shl 2) and $0F
  45.     if d > 57
  46.       d = d + 65-57-1
  47.     end if
  48.     display d
  49.   end repeat
  50.   display 13,10
  51. }
  52.  
  53. ; \begin{diamond}[29.09.2006]
  54. ; may be useful for kernel debugging
  55. ; example 1:
  56. ;       dbgstr 'Hello, World!'
  57. ; example 2:
  58. ;       dbgstr 'Hello, World!', save_flags
  59. macro dbgstr string*, f
  60. {
  61. local a
  62. iglobal_nested
  63. a db 'K : ',string,13,10,0
  64. endg_nested
  65. if ~ f eq
  66.         pushfd
  67. end if
  68.         push    esi
  69.         mov     esi, a
  70.         call    sys_msg_board_str
  71.         pop     esi
  72. if ~ f eq
  73.         popfd
  74. end if
  75. }
  76. ; \end{diamond}[29.09.2006]
  77.  
  78. struc db [a] { common . db a
  79.   if ~used .
  80.     display 'not used db: ',`.,13,10
  81.   end if }
  82. struc dw [a] { common . dw a
  83.   if ~used .
  84.     display 'not used dw: ',`.,13,10
  85.   end if }
  86. struc dd [a] { common . dd a
  87.   if ~used .
  88.     display 'not used dd: ',`.,13,10
  89.   end if }
  90. struc dp [a] { common . dp a
  91.   if ~used .
  92.     display 'not used dp: ',`.,13,10
  93.   end if }
  94. struc dq [a] { common . dq a
  95.   if ~used .
  96.     display 'not used dq: ',`.,13,10
  97.   end if }
  98. struc dt [a] { common . dt a
  99.   if ~used .
  100.     display 'not used dt: ',`.,13,10
  101.   end if }
  102.  
  103. struc RECT {
  104.   .left   dd ?
  105.   .top    dd ?
  106.   .right  dd ?
  107.   .bottom dd ?
  108. }
  109. virtual at 0
  110.  RECT RECT
  111. end virtual
  112.  
  113. struc BOX {
  114.   .left   dd ?
  115.   .top    dd ?
  116.   .width  dd ?
  117.   .height dd ?
  118. }
  119. virtual at 0
  120.  BOX BOX
  121. end virtual
  122.  
  123. ; constants definition
  124. WSTATE_NORMAL    = 00000000b
  125. WSTATE_MAXIMIZED = 00000001b
  126. WSTATE_MINIMIZED = 00000010b
  127. WSTATE_ROLLEDUP  = 00000100b
  128.  
  129. WSTATE_REDRAW    = 00000001b
  130. WSTATE_WNDDRAWN  = 00000010b
  131.  
  132. WSTYLE_HASCAPTION     = 00010000b
  133. WSTYLE_CLIENTRELATIVE = 00100000b
  134.  
  135. struc TASKDATA
  136. {
  137.   .event_mask  dd ?
  138.   .pid         dd ?
  139.                dw ?
  140.   .state       db ?
  141.                db ?
  142.                dw ?
  143.   .wnd_number  db ?
  144.                db ?
  145.   .mem_start   dd ?
  146.   .counter_sum dd ?
  147.   .counter_add dd ?
  148.   .cpu_usage   dd ?
  149. }
  150. virtual at 0
  151.  TASKDATA TASKDATA
  152. end virtual
  153.  
  154. ; structures definition
  155. struc WDATA {
  156.   .box             BOX
  157.   .cl_workarea     dd ?
  158.   .cl_titlebar     dd ?
  159.   .cl_frames       dd ?
  160.   .reserved        db ?
  161.   .fl_wstate       db ?
  162.   .fl_wdrawn       db ?
  163.   .fl_redraw       db ?
  164. }
  165. virtual at 0
  166.  WDATA WDATA
  167. end virtual
  168. label WDATA.fl_wstyle byte at 0x13
  169.  
  170. struc APPDATA
  171. {
  172.   .app_name        db 11  dup(?)
  173.                    db 5   dup(?)
  174.  
  175.   .fpu_state       dd ?            ;+16
  176.   .ev_count        dd ?            ;+20
  177.   .fpu_handler     dd ?            ;+24
  178.   .sse_handler     dd ?            ;+28
  179.                    dd ? ;unused    ;+32
  180.   .heap_base       dd ?            ;+36
  181.   .heap_top        dd ?            ;+40
  182.   .cursor          dd ?            ;+44
  183.   .fd_ev           dd ?            ;+48
  184.   .bk_ev           dd ?            ;+52
  185.   .fd_obj          dd ?            ;+56
  186.   .bk_obj          dd ?            ;+60
  187.  
  188.                    db 64 dup(?)    ;+64
  189.  
  190.   .wnd_shape       dd ?            ;+128
  191.   .wnd_shape_scale dd ?            ;+132
  192.                    dd ?            ;+136
  193.   .mem_size        dd ?            ;+140
  194.   .saved_box       BOX
  195.   .ipc_start       dd ?
  196.   .ipc_size        dd ?
  197.   .event_mask      dd ?
  198.   .debugger_slot   dd ?
  199.                    dd ?
  200.   .keyboard_mode   db ?
  201.                    db 3   dup(?)
  202.   .dir_table       dd ?
  203.   .dbg_event_mem   dd ?
  204.   .dbg_regs:
  205.   .dbg_regs.dr0    dd ?
  206.   .dbg_regs.dr1    dd ?
  207.   .dbg_regs.dr2    dd ?
  208.   .dbg_regs.dr3    dd ?
  209.   .dbg_regs.dr7    dd ?
  210.   .wnd_caption     dd ?
  211.   .wnd_clientbox   BOX
  212. }
  213. virtual at 0
  214.  APPDATA APPDATA
  215. end virtual
  216.  
  217. ;// mike.dld, 2006-29-01 ]
  218.  
  219.  
  220. ; Core functions
  221. include "core/sync.inc"     ; macros for synhronization objects
  222. include "core/sys32.inc"    ; process management
  223. include "core/sched.inc"    ; process scheduling
  224. include "core/syscall.inc"  ; system call
  225. include "core/fpu.inc"      ; all fpu/sse support
  226. include "core/memory.inc"
  227. include "core/heap.inc"     ; kernel and app heap
  228. include "core/malloc.inc"   ; small kernel heap
  229. include "core/taskman.inc"
  230. include "core/dll.inc"
  231. include "core/exports.inc"
  232.  
  233. ; GUI stuff
  234. include "gui/window.inc"
  235. include "gui/event.inc"
  236. include "gui/font.inc"
  237. include "gui/button.inc"
  238.  
  239. ; shutdown
  240.  
  241. include "boot/shutdown.inc" ; shutdown or restart
  242.  
  243. ; file system
  244.  
  245. include "fs/fs.inc"       ; syscall
  246. include "fs/fat32.inc"    ; read / write for fat32 filesystem
  247. include "fs/ntfs.inc"     ; read / write for ntfs filesystem
  248. include "fs/fat12.inc"    ; read / write for fat12 filesystem
  249. include "blkdev/rd.inc"   ; ramdisk read /write
  250. include "fs/fs_lfn.inc"    ; syscall, version 2
  251. include "fs/iso9660.inc"  ; read for iso9660 filesystem CD
  252.  
  253. ; sound
  254.  
  255. include "sound/sb16.inc"     ; playback for Sound Blaster 16
  256. include "sound/playnote.inc" ; player Note for Speaker PC
  257.  
  258. ; display
  259.  
  260. include "video/vesa12.inc"   ; Vesa 1.2 functions
  261. include "video/vesa20.inc"   ; Vesa 2.0 functions
  262. include "video/vga.inc"      ; VGA 16 color functions
  263. include "video/cursors.inc"  ; cursors functions
  264.  
  265. ; Network Interface & TCPIP Stack
  266.  
  267. include "network/stack.inc"
  268.  
  269. ; Mouse pointer
  270.  
  271. include "gui/mouse.inc"
  272.  
  273. ; Window skinning
  274.  
  275. include "gui/skincode.inc"
  276.  
  277. ; Pci functions
  278.  
  279. include "bus/pci/pci32.inc"
  280.  
  281. ; Floppy drive controller
  282.  
  283. include "blkdev/fdc.inc"
  284. include "blkdev/flp_drv.inc"
  285.  
  286. ; HD drive controller
  287. include "blkdev/hd_drv.inc"
  288.  
  289. ; CD drive controller
  290.  
  291. include "blkdev/cdrom.inc"
  292. include "blkdev/cd_drv.inc"
  293.  
  294. ; Character devices
  295.  
  296. include "hid/keyboard.inc"
  297. include "hid/mousedrv.inc"
  298.  
  299. ; setting date,time,clock and alarm-clock
  300.  
  301. include "hid/set_dtc.inc"
  302.  
  303. ;% -include
  304.