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