Subversion Repositories Kolibri OS

Rev

Rev 417 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ha 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
43 halyavin 17
   name@struct equ name
1 ha 18
   struc name arg {
19
 }
20
 
21
macro struct_helper name
22
 {
43 halyavin 23
  match xname,name
24
  \{
1 ha 25
   virtual at 0
43 halyavin 26
   xname xname
27
   sizeof.#xname = $ - xname
28
   name equ sizeof.#xname
1 ha 29
   end virtual
43 halyavin 30
  \}
1 ha 31
 }
32
 
33
ends fix } struct_helper name@struct
34
 
41 mikedld 35
;// mike.dld, 2006-29-01 [
1 ha 36
 
41 mikedld 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
 
162 diamond 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
 
373 mikedld 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 }
41 mikedld 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
 
114 mikedld 123
; constants definition
164 serge 124
WSTATE_NORMAL    = 00000000b
114 mikedld 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
 
115 poddubny 135
struc TASKDATA
114 mikedld 136
{
137
  .event_mask  dd ?
138
  .pid	       dd ?
139
	       dw ?
115 poddubny 140
  .state       db ?
141
               db ?
114 mikedld 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
115 poddubny 151
 TASKDATA TASKDATA
114 mikedld 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(?)
164 serge 174
 
175
  .fpu_state       dd ?            ;+16
227 serge 176
  .ev_count        dd ?            ;+20
164 serge 177
  .fpu_handler     dd ?            ;+24
178
  .sse_handler     dd ?            ;+28
357 serge 179
  .pl0_stack       dd ? ;unused    ;+32
172 serge 180
  .heap_base       dd ?            ;+36
181
  .heap_top        dd ?            ;+40
221 serge 182
  .cursor          dd ?            ;+44
354 serge 183
  .fd_ev           dd ?            ;+48
184
  .bk_ev           dd ?            ;+52
281 serge 185
  .fd_obj          dd ?            ;+56
186
  .bk_obj          dd ?            ;+60
420 serge 187
  .saved_esp       dd ?            ;+64
164 serge 188
 
420 serge 189
                   db 60 dup(?)    ;+68
164 serge 190
 
191
  .wnd_shape       dd ?            ;+128
227 serge 192
  .wnd_shape_scale dd ?            ;+132
193
                   dd ?            ;+136
194
  .mem_size        dd ?            ;+140
114 mikedld 195
  .saved_box	   BOX
196
  .ipc_start	   dd ?
197
  .ipc_size	   dd ?
198
  .event_mask	   dd ?
199
  .debugger_slot   dd ?
115 poddubny 200
		   dd ?
114 mikedld 201
  .keyboard_mode   db ?
202
		   db 3   dup(?)
203
  .dir_table	   dd ?
204
  .dbg_event_mem   dd ?
205
  .dbg_regs:
206
  .dbg_regs.dr0    dd ?
207
  .dbg_regs.dr1    dd ?
208
  .dbg_regs.dr2    dd ?
209
  .dbg_regs.dr3    dd ?
210
  .dbg_regs.dr7    dd ?
211
  .wnd_caption	   dd ?
212
  .wnd_clientbox   BOX
213
}
214
virtual at 0
215
 APPDATA APPDATA
216
end virtual
217
 
41 mikedld 218
;// mike.dld, 2006-29-01 ]
219
 
220
 
1 ha 221
; Core functions
114 mikedld 222
include "core/sync.inc"     ; macros for synhronization objects
1 ha 223
include "core/sys32.inc"    ; process management
224
include "core/sched.inc"    ; process scheduling
225
include "core/syscall.inc"  ; system call
214 serge 226
include "core/fpu.inc"      ; all fpu/sse support
164 serge 227
include "core/memory.inc"
214 serge 228
include "core/heap.inc"     ; kernel and app heap
276 serge 229
include "core/malloc.inc"   ; small kernel heap
164 serge 230
include "core/taskman.inc"
231
include "core/dll.inc"
232
include "core/exports.inc"
1 ha 233
 
234
; GUI stuff
235
include "gui/window.inc"
236
include "gui/event.inc"
237
include "gui/font.inc"
238
include "gui/button.inc"
239
 
240
; shutdown
241
 
242
; file system
243
 
244
include "fs/fs.inc"       ; syscall
245
include "fs/fat32.inc"    ; read / write for fat32 filesystem
256 diamond 246
include "fs/ntfs.inc"     ; read / write for ntfs filesystem
1 ha 247
include "fs/fat12.inc"    ; read / write for fat12 filesystem
70 mario79 248
include "blkdev/rd.inc"   ; ramdisk read /write
73 diamond 249
include "fs/fs_lfn.inc"    ; syscall, version 2
87 mario79 250
include "fs/iso9660.inc"  ; read for iso9660 filesystem CD
1 ha 251
 
252
; sound
253
 
254
include "sound/sb16.inc"     ; playback for Sound Blaster 16
255
include "sound/playnote.inc" ; player Note for Speaker PC
256
 
257
; display
258
 
259
include "video/vesa12.inc"   ; Vesa 1.2 functions
260
include "video/vesa20.inc"   ; Vesa 2.0 functions
261
include "video/vga.inc"      ; VGA 16 color functions
221 serge 262
include "video/cursors.inc"  ; cursors functions
1 ha 263
 
264
; Network Interface & TCPIP Stack
265
 
266
include "network/stack.inc"
413 serge 267
 
417 serge 268
include "drivers/uart.inc"
1 ha 269
 
413 serge 270
 
1 ha 271
; Mouse pointer
272
 
273
include "gui/mouse.inc"
274
 
275
; Window skinning
276
 
277
include "gui/skincode.inc"
278
 
279
; Pci functions
280
 
281
include "bus/pci/pci32.inc"
282
 
283
; Floppy drive controller
284
 
285
include "blkdev/fdc.inc"
286
include "blkdev/flp_drv.inc"
287
 
160 diamond 288
; HD drive controller
289
include "blkdev/hd_drv.inc"
290
 
1 ha 291
; CD drive controller
292
 
293
include "blkdev/cdrom.inc"
87 mario79 294
include "blkdev/cd_drv.inc"
1 ha 295
 
296
; Character devices
297
 
298
include "hid/keyboard.inc"
33 mario79 299
include "hid/mousedrv.inc"
1 ha 300
 
301
; setting date,time,clock and alarm-clock
302
 
303
include "hid/set_dtc.inc"
304
 
305
;% -include