Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
454 | trolly | 1 | ; SET UP OS TASK |
2 | |||
3 | mov esi,boot_setostask |
||
4 | call boot_log |
||
5 | |||
6 | ; mov eax, fpu_data |
||
7 | ; mov dword [SLOT_BASE+APPDATA.fpu_state], eax |
||
8 | ; mov dword [SLOT_BASE+APPDATA.fpu_handler], 0 |
||
9 | ; mov dword [SLOT_BASE+APPDATA.sse_handler], 0 |
||
10 | |||
11 | ; name for OS/IDLE process |
||
12 | |||
13 | mov dword [SLOT_BASE+256+APPDATA.app_name], dword 'OS/I' |
||
14 | mov dword [SLOT_BASE+256+APPDATA.app_name+4], dword 'DLE ' |
||
15 | mov edi, [os_stack] |
||
16 | mov dword [SLOT_BASE+256+APPDATA.pl0_stack], edi |
||
17 | add edi, RING0_STACK_SIZE |
||
18 | mov dword [SLOT_BASE+256+APPDATA.fpu_state], edi |
||
19 | |||
20 | mov esi, fpu_data |
||
21 | mov ecx, 512/4 |
||
22 | cld |
||
23 | rep movsd |
||
24 | |||
25 | mov dword [SLOT_BASE+256+APPDATA.fpu_handler], 0 |
||
26 | mov dword [SLOT_BASE+256+APPDATA.sse_handler], 0 |
||
27 | |||
28 | mov ebx, [def_cursor] |
||
29 | mov dword [SLOT_BASE+256+APPDATA.cursor], ebx |
||
30 | |||
31 | mov ebx, SLOT_BASE+256+APP_OBJ_OFFSET |
||
32 | mov dword [SLOT_BASE+256+APPDATA.fd_obj], ebx |
||
33 | mov dword [SLOT_BASE+256+APPDATA.bk_obj], ebx |
||
34 | |||
35 | ; task list |
||
36 | mov [TASK_DATA+TASKDATA.wnd_number], 1 ; on screen number |
||
37 | mov [TASK_DATA+TASKDATA.pid], 1 ; process id number |
||
38 | mov [TASK_DATA+TASKDATA.mem_start], 0 ; process base address |
||
39 | |||
40 | mov edi,tss_data+tss_step |
||
41 | mov ecx, (tss_step)/4 |
||
42 | xor eax, eax |
||
43 | cld |
||
44 | rep stosd |
||
45 | |||
46 | mov edi,tss_data+tss_step |
||
47 | mov [edi+TSS._ss0], os_data |
||
48 | mov eax,cr3 |
||
49 | mov [edi+TSS._cr3],eax |
||
50 | mov [edi+TSS._eip],osloop |
||
51 | mov [edi+TSS._eflags],dword 0x11202 ; sti and resume |
||
52 | mov eax, [os_stack] |
||
53 | add eax, RING0_STACK_SIZE |
||
54 | mov [edi+TSS._esp], eax |
||
55 | mov [edi+TSS._cs],os_code |
||
56 | mov [edi+TSS._ss],os_data |
||
57 | mov [edi+TSS._ds],os_data |
||
58 | mov [edi+TSS._es],os_data |
||
59 | mov [edi+TSS._fs],os_data |
||
60 | mov [edi+TSS._gs],os_data |
||
61 | |||
62 | mov ax,tss0 |
||
63 | ltr ax |