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